linux在线预览pdf文件开发思路
准备:swftools,flexpaper
基本思路:
1,将pdf文件转化成swf文件
2,使用flexpaper预览swf文件
主要代码:
1,在linux中安装swftools.官网下载swftools 安装包,解压
2,./configure --prefix=安装路径
make install
执行完之后,执行pdf2swf -help 如果显示。说明安装成功
如果执行pdf2swf -help 显示commond not find 的话,可能需要配置swftools的环境变量,具体配置请百度^_^
3.在java中调用linux shell 将pdf 转化成swf
String [] cmd={"/bin/sh","-c","pdf2swf "+要转化的文件路径/文件名称.pdf+" "+ 转化后的文件路径/文件名称.swf}; Process pro = Runtime.getRuntime().exec(cmd); dealWith(pro);
pro.waitFor();//等待子进程的结束,子进程就是系统调用文件转换这个新进程
dealWith()是个方法了,里面可以打印执行过程
private void dealWith(final Process pro){
// 下面是处理堵塞的情况
try {
new Thread(){
public void run(){
BufferedReader br1 = new BufferedReader(new InputStreamReader(pro.getInputStream()));
System.out.println("********************"+br1);
String text;
try {
while ( (text = br1.readLine()) != null) {
System.out.println("==================="+text);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
} catch (Exception e) {
e.printStackTrace();
} try {
new Thread(){
public void run(){
BufferedReader br2 = new BufferedReader(new InputStreamReader(pro.getErrorStream()));//这定不要忘记处理出理时产生的信息,不然会堵塞不前的
System.out.println("#########################"+br2);
String text;
try {
while( (text = br2.readLine()) != null){
System.err.println("------------------"+text);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
} catch (Exception e) {
e.printStackTrace();
}
}
4.jsp中,
引入flexpaper的class 和js
<link rel="stylesheet" type="text/css" href="${ctx}/pages/flexPaper/css/flexpaper.css" />
<script src="${ctx}/pages/flexPaper/js/flexpaper.js" charset="UTF-8"></script>
<script src="${ctx}/pages/flexPaper/js/flexpaper_handlers.js" charset="UTF-8"></script>
<div id="documentViewer" class="flexpaper_viewer" style="width:770px;height:500px;"></div>
$('#documentViewer').FlexPaperViewer(
{ config : {
SWFFile : fileURL,
Scale : 0.6,
ZoomTransition : 'easeOut',
ZoomTime : 0.5,
ZoomInterval : 0.2,
FitPageOnLoad : true,
FitWidthOnLoad : false,
FullScreenAsMaxWindow : false,
ProgressiveLoading : false,
MinZoomSize : 0.2,
MaxZoomSize : 5,
SearchMatchAll : false,
InitViewMode : 'Portrait',
RenderingOrder : 'flash',
StartAtPage : '', ViewModeToolsVisible : true,
ZoomToolsVisible : true,
NavToolsVisible : true,
CursorToolsVisible : true,
SearchToolsVisible : true,
WMode : 'window',
localeChain: 'en_US'
}}
);
以上为主要实现代码。flexpaper的使用可以参考官方下载包,将官方下载包直接丢到tomcat中是可以运行的。
-------------------------------------------------------------------------------------------------------------------------------------------
先写这么多,再次感谢伟大的各界网友和IT同行,提供的各种资料给我与莫大的帮助。thank you!
linux在线预览pdf文件开发思路的更多相关文章
- 用pdf.js实现在移动端在线预览pdf文件
用pdf.js实现在移动端在线预览pdf文件1.下载pdf.js 官网地址:https://mozilla.github.io/pdf.js/ 2.配置 下载下来的文件包,就是一个demo ...
- 使用pdfjs插件在线预览PDF文件
前言 本文介绍在html中使用 pdfjs插件在线预览PDF文件的方法. 实现步骤 下载 pdfjs 并引入项目中 到PDFJS官网 http://mozilla.github.io/pdf.js/g ...
- jquery在线预览PDF文件,打开PDF文件(向下兼容ie8、ie7)
最主要的是使用到了一个jquery的插件jquery.media.js,使用这个插件就很容易实现了. 核心代码 <!DOCTYPE html PUBLIC "-//W3C//DTD X ...
- SpringBoot在线预览PDF文件(引用pdf.js工具)
本项目Demo使用了PDF.js插件实现PDF在线阅读功能PDF.js插件下载地址 实测能用! 1.创建SpringBoot项目,目录结构如下: 2.进行项目配置: pom.xml: <proj ...
- php在线预览pdf文件
话不多说,直接上代码 <?php public function read_pdf($file) { if(strtolower(substr(strrchr($file,'.'),1)) != ...
- 四十二、在线预览pdf文件
//文档在线观看 checkWoc(type, id, taskId, smsId, stsId) { if(type == "zip" || type == "7z&q ...
- 文档控件NTKO OFFICE 详细使用说明之预览PDF文件(禁止打印、下载、另存为、防抓包下载)
1.在线预览PDF文件(禁止打印.下载.复制.另存为) (1) 运行环境 ① 浏览器:支持IE7-IE11(平台版本还支持Chrome和Firefox) ② IE工具栏-Internet 选项:将ww ...
- 网页中动态嵌入PDF文件/在线预览PDF内容https://www.cnblogs.com/xgyy/p/6119459.html
#网页中动态嵌入PDF文件/在线预览PDF内容# 摘要:在web开发时我们有时会需要在线预览PDF内容,在线嵌入pdf文件: 问题1:如何网页中嵌入PDF: 在网页中: 常用的几种PDF预览代码片段如 ...
- #网页中动态嵌入PDF文件/在线预览PDF内容#
摘要:在web开发时我们有时会需要在线预览PDF内容,在线嵌入pdf文件: 问题1:如何网页中嵌入PDF: 在网页中: 常用的几种PDF预览代码片段如下: 代码片段1: 1 <object ty ...
随机推荐
- angular实现select的ng-options4
ng实现简单的select <div ng-controller="ngSelect"> <select ng-model="vm.selectVal& ...
- php获取Linux网卡信息
$data = exec("/sbin/ifconfig"); var_dump($data); 注意:有时候这种方式获取不到,应该是权限问题 在/var/rootP文件中添加ro ...
- Android media媒体库分析之:MediaProvider
在做Android媒体应用程序时(Audio.Image.Video)需要对Android的媒体提供者(MediaProvider)做详细的分析,下面记录一下我的收获: 一.获取MediaProvid ...
- DLL、lib等链接库文件的使用
由于遇见过多次动态链接库的使用,自己也写过DLL,每次都要费好大劲去配置,现在就简单的总结一下,争取以后少走弯路! 一般都会有三个文件: .h 头文件 .lib 静态链接库 .dll 动态链接库 ...
- android-------手写签名系统的设计与实现之实现画笔设置
引自:http://www.xuebuyuan.com/1754358.html 既然我们实现了画布和画笔,也实现了手写,为了提高可用性,我们增加了对画笔风格的设置功能,这样就可以根据自己的需要选择画 ...
- android脚步---跟随手指动的小球
这次的学习主要是在包里面除自动生成的mainactivity.java之外,再新建一个class, DrawView,在mainactivity里面调用DrawView. 在DrawView里面主要是 ...
- CenOS 用PF_RING优化Snort
0.优化顺序 安装PF_RING的kernel模块 安装PF_RING的用户态库 安装Snort的DAQ 安装PF_RING的pfring-daq-module 安装snort 安装PF_RING-a ...
- angular指令系列---多行文本框自动高度
angular.module('MyApp') .directive('autoTextare', ['$timeout', function ($timeout) { return { restri ...
- tinkphp5.0 traits 的引入
Traits引入 ThinkPHP 5.0开始采用trait功能(PHP5.4+)来作为一种扩展机制,可以方便的实现一个类库的多继承问题. trait是一种为类似 PHP 的单继承语言而准备的代码复用 ...
- CodeForces 610C Harmony Analysis
构造 #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> us ...