swftools工具将pdf文件转换为swf文件 文字丢失
开发客户网站时遇到了一个需求,客户要求后台上传pdf文件,前台能以翻书的形式直接访问。
首先想到的是使用js解决,用户访问前端页面时,php将文件路径发送给js,让js呈现出来翻书的效果。在网上百度了一圈也没有找到现成的插件。
于是由某人提供的flash完成,这时就需要将客户在后台上传的pdf文件转换为swf文件才能通过某人提供的flash呈现出来,而且需要pdf的每一页生成一个swf文件,才能出现翻书的效果。这时又由某人提供说,swftools可以完成这个需求,于是迅速百度。
swftools这个工具就不介绍了,因为我也只用到了其中的一小部分功能,而且还是windows版本的......
pdf2swf.exe就是这个工具用来将pdf转换为swf的。命令参数众多,可以“-help”查看。
经过研究,发现只需要两个参数就可以,“-o”,“-help”的解释是“-o , --output file.swf Direct output to file.swf. If file.swf contains '%' (file%.swf), then each page goes to a seperate file.”,正是需要的将pdf每一页生成一个swf文件!!!
还有一个参数,“-t”。
在命令行的具体命令就是“E:\swftools>pdf2swf.exe -o e:\test\d\%.swf -t d:\pdf\127.pdf”,运行结果很顺利,但是又出现了一个新问题,有的swf里文字内容没有了
这样的客户肯定要骂街了啊-_-
百度寻找原因,发现帖子都是一样的......自行百度“swftools中文问题”,大概原因就是因为字体不支持,所以转换的时候出不来。
没办法,只能按照人家说的去尝试一下了,果然还是有效果的,需要下载一个“xpdf-chinese-simplified”,修改文件“add-to-xpdfrc”,下载下来的路径都是写的unix的路径,需要改成windows的,还有在最好加一句“displayCIDFontTT Adobe-GB1 E:\xpdf-chinese-simplified\gkai00mp.ttf”。
这个“gkai00mp.ttf”也是需要下载的,大概应该是个字体库之类的东西吧。
全部搞定以后,在进入命令行,这时输入的命令需要加一个参数了“-s”,这个参数有许多的功能,自行“-help”查阅吧。
命令行的命令此时为“E:\swftools>pdf2swf.exe -o e:\test\d\%.swf -t d:\pdf\127.pdf -s languagedir=e:\xpdf-chinese-simplified”,大概意思就是用这个字体库去解析pdf文件吧。
运行以后,效果很好,没有出现问题,单不知道pdf文件要是出现其它无法识别的字体时需要怎么办......
总结:swftools这个工具还是比较古老的,但是是开源的,这次也只是用到了一部分功能。不知道还有没有其它的比较好用的转换pdf工具。
参考:
1、https://www.cnblogs.com/luckly233/p/5036734.html
SWFTools下载链接: https://pan.baidu.com/s/1gfu7lQz 密码: j5y2
案例2:访问地址:http://blog.csdn.net/nube163/article/details/52495023
问题说明:
使用pdf2swf讲pdf转换成swf,实现在线阅读功能,出现如下问题,原文件如下图
打开后如下图,文字内容丢失:
解决方法:
1、下载xpdf-chinese-simplified
下载链接: https://pan.baidu.com/s/1jHLpn4y 密码: 8i25
2、修改目录下的add-to-xpdfrc文件。将里面的路径设为自己的路径
原文件:
#----- begin Chinese Simplified support package (2011-sep-02)
cidToUnicode Adobe-GB1 /usr/local/share/xpdf/chinese-simplified/Adobe-GB1.cidToUnicode
unicodeMap ISO-2022-CN /usr/local/share/xpdf/chinese-simplified/ISO-2022-CN.unicodeMap
unicodeMap EUC-CN /usr/local/share/xpdf/chinese-simplified/EUC-CN.unicodeMap
unicodeMap GBK /usr/local/share/xpdf/chinese-simplified/GBK.unicodeMap
cMapDir Adobe-GB1 /usr/local/share/xpdf/chinese-simplified/CMap
toUnicodeDir /usr/local/share/xpdf/chinese-simplified/CMap
#fontFileCC Adobe-GB1 /usr/..../gkai00mp.ttf
#----- end Chinese Simplified support package
修改后:
#----- begin Chinese Simplified support package (2011-sep-02)
cidToUnicode Adobe-GB1 C:/SWFTools/xpdf-chinese-simplified/Adobe-GB1.cidToUnicode
unicodeMap ISO-2022-CN C:/SWFTools/xpdf-chinese-simplified/ISO-2022-CN.unicodeMap
unicodeMap EUC-CN C:/SWFTools/xpdf-chinese-simplified/EUC-CN.unicodeMap
unicodeMap GBK C:/SWFTools/xpdf-chinese-simplified/GBK.unicodeMap
cMapDir Adobe-GB1 C:/SWFTools/xpdf-chinese-simplified/CMap
toUnicodeDir C:/SWFTools/xpdf-chinese-simplified/CMap
displayCIDFontTT Adobe-GB1 C:/SWFTools/xpdf-chinese-simplified/CMap/gkai00mp.ttf
#fontFileCC Adobe-GB1 /usr/..../gkai00mp.ttf
#----- end Chinese Simplified support package
注意最后一行的区别,第一种原文件的参数不起作用
3、字体gkai00mp.tff下载地址如下,下载后解压放到xpdf-chinese-simplified\CMap下
http://ftp.gnu.org/gnu/non-gnu/chinese-fonts-truetype/gkai00mp.ttf.gz
或:
链接: https://pan.baidu.com/s/1pKZsmfx 密码: mdyt
4、调用pdf2swf.exe时加参数-s languagedir=C:\\SWFTools\\xpdf-chinese-simplified
资料:http://www.cnblogs.com/qinpeifeng107/archive/2011/08/29/2158879.html
swftools工具将pdf文件转换为swf文件 文字丢失的更多相关文章
- C#的Process类调用第三方插件实现PDF文件转SWF文件
在项目开发过程中,有时会需要用到调用第三方程序实现本系统的某一些功能,例如本文中需要使用到的swftools插件,那么如何在程序中使用这个插件,并且该插件是如何将PDF文件转化为SWF文件的呢?接下来 ...
- 在Ubuntu环境把PPT和Word转换为swf文件
项目需要一个在线浏览文档的功能,于是参照网上的代码写了一份利用Microsoft Office 2010和swftools-2013-04-09-1007.exe转换的程序 思路:调用电脑本机的off ...
- PDF怎么转换为CAD文件?这两种方法你的会
在日常的办公中,我们最常见的文件格式就是PDF格式的,因为PDF文件的安全性是比较高的,可以防止不小心触碰到键盘修改文件内容,而且PDF文件便于进行文件的传输.但是有时候也需要将PDF转换成CAD,那 ...
- APNS .p12文件转换为 .pem文件
1:先用mac的钥匙串工具,把APN的推送证书转换为 .p12文件: 2:在mac的终端下 把.p12文件转换为 .pem文件 openssl pkcs12 -in apns-dev-cert.p12 ...
- 使用VirtualBox把IMG文件转换为VDI文件
使用VirtualBox把IMG文件转换为VDI文件 首先确保已安装VirtualBox. 需要使用的命令: 语法:$ VBoxManage convertdd input.img output.vd ...
- python之模块py_compile用法(将py文件转换为pyc文件)
# -*- coding: cp936 -*- #python 27 #xiaodeng #python之模块py_compile用法(将py文件转换为pyc文件):二进制文件,是由py文件经过编译后 ...
- Python如何实现doc文件转换为docx文件?
Python如何实现doc文件转换为docx文件? 在开发过程中遇到一个关于读写doc和docx的问题: 一个文件夹中有两种文件, 一种为doc结尾, 一种为docx结尾, 需要将这些文件全部重命名. ...
- TensorFlow的checkpoint文件转换为pb文件
由于项目需要,需要将TensorFlow保存的模型从ckpt文件转换为pb文件. import os from tensorflow.python import pywrap_tensorflow f ...
- GIF文件转换为头文件工具
目的: GIF文件转为头文件 举例: 用UE打开GIF文件,如下图所示:图1 test.gif文件将上面文件内容转化为头文件,放到一个数组里面,内容如下:图2 test.h文件 思路: 从上面可知,将 ...
- 将图片文件转换为.py文件
最近用wxpython写了一个脚本,其中要给窗体设置图标文件,需要单独的一个ico文件,这样就比较影响美观,另外打包的时候还要将图标文件一起打包很繁琐.这时候看到wxpython文件有一个工具img2 ...
随机推荐
- WPF textbox实现单击全选
- Windows11 微软提供三种路径 安装程序应用
Windows11 微软提供三种路径 安装程序应用
- hnsw
Hnswlib - fast approximate nearest neighbor search Header-only C++ HNSW implementation with python b ...
- vvv动态组件和keep-alive
<!DOCTYPE html><html> <head> <style> </style> <script src="a.j ...
- Python中变量和对象的关系
变量和对象 Python中一切皆为对象,数字是对象,列表是对象,函数也是对象,任何东西都是对象.而变量是对象的一个引用(也可以称为标签或者名字),对象的操作都是通过引用来完成的. 例如,[]是一个空列 ...
- 有关插槽中scope的问题
暂时不理解
- leetCode 您正在爬楼梯。它需要n步才能到达顶部。每次您可以爬1或2步。您可以通过几种不同的方式登顶?
找抄的,不明白!!! public static int climbStairs(int n) { return climb_Stairs(0, n); } public static int cli ...
- 宝塔面板Nginx开启gzip,提高网站访问速度的方法
这篇文章主要为大家详细介绍了宝塔面板Nginx开启gzip,提高网站访问速度的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴. 最近有用户问小编说在宝塔面板N ...
- Vue3.0 里为什么要用 Proxy API 替代 defineProperty API?
响应式优化. a. defineProperty API 的局限性最大原因是它只能针对单例属性做监听. Vue2.x 中的响应式实现正是基于 defineProperty 中的 descriptor, ...
- windows下解决mysql5中文乱码的问题
1.问题描述:一开始无论是在命令行,还是在mysql的客户端输入中文都会出现 "???" 问题之类的乱码问题: 2.解决办法: 1)cmd 进入mysql ,命令mysql -ur ...