上一篇文章说道,我的一个Android项目里需要查看word和pdf文档,由于在移动终端转换格式比较费劲,所以我选择在服务器端转换。针对word我选择转换为html,在上一篇文章中已经说得很清楚了,那么这一篇文章我将讲述一下将pdf转换为swf的过程。

为什么要转换成swf呢?其实最开始我想过把pdf转换为html,我用的是xpdf和pdftohtml,虽然转换成功了,但是效果很不理想,先不说有些图片被漏掉了,就算是转换成功的图片和文字的位置和格式都乱七八糟。。而且,有一种pdf,不知道为什么,虽然没有加密,文字和图片也都能复制,但是复制出来的图片是黑乎乎的,就像损坏了似的,综上所述,pdf转html效果不好(不知道为啥好多外国人都评价说:Nice work! thanks之类的...)。

于是我想到将pdf先转为word,再用上一篇的方法转为html,想法挺好,但是我查阅资料只发现了在线pdf转word和一些pdftoword的小软件,无法用到程序中哎。不过我在查找过程中发现Adobe公司除了pdf reader这款免费的pdf阅读软件之外,还有一种收费的阅读软件——Adobe Acrobat。这个软件功能很强大,可以直接把word等office文件转为pdf,更加能够将pdf转为word、excel等office文档,当然,pdf转html也不在话下!可惜的是,我只找到了利用Acrobat API将office文档转为pdf的方法,也许是Acrobat 并没有免费开放pdf转其他格式的接口吧,也许是我没找到,如果哪位朋友找到了,一定告诉我啊!

接下来我又想到了pdf阅读器的实现,我发现好多pdf阅读器都是图片,每一页都是一整张图片,在网上我也发现了很多pdf转为Image的方法,但是每个人都有自己的说法,有的说这种方法好,有的说那种方法好= =,这里有个朋友实现了几乎大部分的pdf转Image方法,并且对各个方法的优缺点进行了对比,地址链接:http://www.cnblogs.com/lqminn/archive/2012/12/11/2813832.html,于是我觉得可能pdf转为图片一直没有一个完善的方法,也许某些方法可以实现,但是说不定哪一次哪一种pdf就会出现乱码,丢失等问题。(当然,如果你能保证你的pdf文档不会很特别,一定不会出现意外问题,选择其中一种方法也是不错的)

于是我最终决定将pdf转为swf,这是因为权衡了以上利弊之后所得出的结果,而且pdf转swf的技术已经很完善了,网上有很多人用到仿百度文库需求的都用到了这个方法,所用工具是SWFTools。下面我将介绍一下pdf转swf的具体过程:

说是用SWFTools,其实只用其中的pdf2swf,“PDF2SWF一个PDF格式的SWF转换器。 每页生成一帧。 使您能够完全格式化的文本,包括表格,公式,在你的Flash动画图形等。 它的基础上的xpdf PDF格式Noonburg解析器从德里克二。”

1.到官网下载SWFTools,据说目前最稳定版本是0.9.1,但是我下的是Development Snapshots的。地址链接:http://www.swftools.org/download.html

2.安装SWFTools.exe,比如我安装到了D:\SWFTools中。

3.在安装目录中新建一个批处理文件,pdf2swf.bat(先新建个txt,在里面编写好批处理命令再另存为pdf2swf.bat)。

pdf2swf.bat内容:

@echo off
set pdf2swfPath=%1
set inputPath=%2
set outputPath=%3
cd /d %pdf2swfPath%
pdf2swf -t -B rfxview.swf %inputPath% -o %outputPath%
exit

Java代码:

public class SwftoolsUtil {
// 要转换的pdf文件路径
private static String INPUT_PATH;
// 转换后的swf文件路径
private static String OUTPUT_PATH;
// pdf2swf.exe的路径
private static String PDF2SWF_PATH = "D:\\SWFTools";
public static void main(String[] args) {
SwftoolsUtil.pdfToSwf("C:\\Users\\無名\\Desktop\\PAD.pdf", "C:\\Users\\無名\\Desktop\\PAD.swf");
}
/**
* PDF转SWF
* @param pdffile PDF文件全路径
* @param swffile 转换后SWF文件存放路径
*/
public static void pdfToSwf(String pdffile, String swffile)
{
INPUT_PATH = pdffile;
OUTPUT_PATH = swffile;
if(checkContentType()==0)
{
toSwf();
}
}
/**
* 检查文件是否是pdf类型的
* @return
*/
private static int checkContentType()
{
String type = INPUT_PATH.substring(INPUT_PATH.lastIndexOf(".") + 1, INPUT_PATH.length())
.toLowerCase();
if (type.equals("pdf")){
System.out.println("*****是pdf文件*****");
return 0;
}
else{
System.out.println("*****非pdf文件*****");
return 9;
}
}
/**
* 调用批处理文件生成swf文件
*/
private static void toSwf() {
if(new File(INPUT_PATH).isFile()){
System.out.println("*****正在转换..*****");
try {
// 调用创建的bat文件进行转换
String cmd = "cmd /c start D:\\SWFTools\\pdf2swf.bat \""
+ PDF2SWF_PATH + "\" \"" + INPUT_PATH + "\" \"" + OUTPUT_PATH + "\"";
System.out.println("cmd: " + cmd);
Runtime.getRuntime().exec(cmd);
System.out.println("*****转换成功*******");
}
catch (Exception e) {
e.printStackTrace();
System.out.println("*****转换失败*******");
}
}
else{
System.out.println("*****文件不存在*****");
}
}
}

    Ps:如果有朋友也是要在Android端显示pdf的话,webview是可以加载html和swf的,但是Adobe公司据说将不再支持Android上的flash插件了。所以说,如果你的手机是Android2.X版本,那么应该会在买的时候就预装了flash插件,如果是像我这样的pad系统是Android4.0,那么他不会预装flash插件,需要自己手动安装,这里给出flash player for Android4.X的地址链接:http://as.baidu.com/a/item?docid=2846825&f=web_alad_6 

OK,到此为止,Pdf转Swf的工具类就实现了。希望对大家有所帮助,也希望大家能够多多支持和鼓励我这个咋哇&安卓菜鸟

Java使用SWFTools转换PDF为SWF相关推荐

  1. java使用swfTools将pdf文件转换swf文件

    转载请表明出处 https://blog.csdn.net/Amor_Leo/article/details/89388851 谢谢 java使用swfTools将pdf文件转换swf文件 swfTo ...

  2. java 实现office转换pdf

    环境准备 1.Office(wps无法转换) 2.window服务 3.pom依赖 <!-- PDF-jacob --><dependency><groupId>n ...

  3. Java实现图片转换PDF文件

    文章目录 引入依赖 前端页面 控制层接口 PDF工具类 页面效果 最近因为一些事情,需要将一张简单的图片转换为PDF的文件格式,在网上找了一些工具,但是这些工具不是需要注册账号,就是需要下载软件. 而 ...

  4. 利用swftools将pdf转换为swf小例

    package com.iori.webapp.util; import java.io.BufferedReader; import java.io.IOException; import java ...

  5. java图片转换pdf_Java实现图片转换PDF文件的示例代码

    最近因为一些事情,需要将一张简单的图片转换为PDF的文件格式,在网上找了一些工具,但是这些工具不是需要注册账号,就是需要下载软件. 而对于只是转换一张图片的情况下,这些操作显然是非常繁琐的,所以作者就 ...

  6. 将HTML文件转换为PDF文件(Thymeleaf模板转换,简单解决中文问题, 解决HTML带图片转换PDF文件问题)

    将HTML文件转换为PDF文件 一.导入依赖 <!-- itext生成Pdf --> <dependency><groupId>com.itextpdf</g ...

  7. (五)java实现文档的在线浏览-转换pdf的同时转为swf

    网上资料有很多office文档转为pdf,pdf转为swf,但都是单步转换.关于一起转换的资料比较少. 一起转换有个问题就是转为pdf时,这个转换过程将花费一段时间才能成功,如何控制在pdf转换成功后 ...

  8. aspose html转换pdf,aspose html转pdf java

    aspose html转pdf java [2021-02-01 22:36:08]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace( ...

  9. swftools将PDF转成swf (含中文的pdf注意事项)

    1. 下载swftools:http://www.swftools.org/download.html 下载xpdf xpdf-chinese-simplified 2 . 安装swftools 解压 ...

最新文章

  1. 成为真正的变革型CIO,代价几何?
  2. ncnn tensorrt
  3. TF学习:Tensorflow基础案例、经典案例集合——基于python编程代码的实现
  4. Effective_STL 学习笔记(二十七) 用 distance 和 advance 把 const_iterator 转化成 iterator...
  5. 开源公司被云厂商“寄生”,咋整?
  6. 展示面--存储学习总结于2021年
  7. Android JetPack –导航架构
  8. Error: could not open `C:\Program Files\Java\jre6\lib\i386\jvm.cfg'
  9. Java开发人员能力模型
  10. 发光学类毕业论文文献包含哪些?
  11. 管人用人育人留人之道-海潮效应
  12. 关于平衡组的一个例子
  13. atthesametime啥意思_atthesametime
  14. 我的第一份CUDA代码
  15. C++ 实验二 NO.4 字符串合并:输入两个已经按从小到大顺序排列好的字符串,编写一个合并两个字符串的函数,使合并后的字符串,仍然是从小到大排列。
  16. 华擎计算机主板型号,华擎科技 新闻中心
  17. (企业)注册公众平台步骤---订阅号
  18. GitHub中Organization的Member邀请和clone代码库
  19. Spring Cloud Alibaba - 27 Gateway源码解析
  20. Linux GCC常用命令和ELF文件格式

热门文章

  1. 国际国内云计算发展现状及未来前景
  2. 本地开发申请ssl证书并在宝塔上给网站配置ssl
  3. Excel中金额小写转大写,职场小技能,值得学习
  4. catia 草绘轮廓
  5. 如何在任务管理器结束任务
  6. W5-2465X参数 至强W5-2465X功耗
  7. 百度AI实现m:n人脸搜索
  8. 盘点:十大电磁仿真软件
  9. webbrowser只对浏览器外应用程序以及在_360广告太多?电脑上什么浏览器最干净啊?...
  10. 基于智慧灯杆的行人检测与识别