从flashplayer里extract PDF的过程
- 注:大概是大三写的记录
- 试图从源码中找swf地址,失败。
- 这是个页数很多的PDF,每下拉几页都要加载,于是打开chrome F12 network选项卡,看时间轴,找到了最新加载的swf文件
- 发现每一页都是一个单独的swf,而且地址只相差一个序号,于是用迅雷批量下载下来
- 试图用acrobat转换成PDF,失败,因为只能把swf嵌入PDF。想了一下,我想要的其实是把动态的swf变成静止的,根本上来说是变图片
去网上找swf转图片,没有很好的解决方案。最后看到了swf是编译后的文件,只有decompile才能取出其中的资源。
找到了JPEXS Decompiler这个神器,可以免费decomile
软件可以批量打开,并 批量导出某些资源,发现
1. 每个swf有一个frame,直接导出成png是没问题的,放大率选得越高越清晰
2. 每个swf还有很多text资源,内容是用代码描述的位置、格式、内容等,所以理论上应该可以转换成svg或非扫描版PDF
暂时使用导出为PNG的方法,发现都导出到了单独的文件夹,使用网上找的命令行下cp文件的方法不好使,因为每个文件夹里的图片都是重名的:1.png。想了想忽然发现python一个循环就可以完美解决问题:- ```python
from shutil import copyfile
input_template = (r'G:\Study\Finance.Economics\quantitative finance\Time Series'
+ r'\solution manual\pngs\073255627a0bd32dcafe0098e620b7e7-%s.swf'
+ r'\frames\1.png'
)
output_template = (r'G:\Study\Finance.Economics\quantitative finance\Time Series'
+ r'\solution manual\output\solution_page_%s.png')
for i in range(1, 100):
src = input_template % str(i)
dst = output_template % str(i)
try:
copyfile(src, dst)
except IOError, e:
print e
```
1 page links here
WebFrontend
从flashplayer里extract PDF的过程