SWF在线绘本批量制作高质量PDF的新方法(重点在批量制作)

2012-12-21  未来决定...

 
 
 

含笑 发表于 2012-12-10 13:51 
请教楼主,如何进行压制?是用什么软件吗?

虚拟装载DVD后
DVDdcrypter分割提取VOB
dgindex制作工程文件和分轨
Megui+avs压制
mmg封包

具体的教程和软件,TLF小组出过一个打包文件,全在里面了

字幕的话各种情况提取办法不同,图片字幕用subrip来ocr,cc字幕直接用ccextractor提,有必要时再用subtitle workshop调时间轴

 

含笑 发表于 2012-12-10 15:49 
彻底晕了,这么麻烦,看来不是我这行外人能做得了的,谢谢楼主这么耐心详细的解答,先记下来,等有时间了再 ...

我也是学了没多久的。这么搞是麻烦点,但是比那种傻瓜式软件压出来的效果好。

花上个把小时把TLF的教程阅读并操练一遍,基本就会了。其中相对麻烦一点的是反交错和场序的设置,往往每张DVD都不一样,同一张DVD中的不同片段也不一定一样,每段都要换各种算法一帧一帧地试验效果。

最近出了个Media Coder的软件,似乎比Megui更简单,但是我想借用TLF的MiniSD参数模板来压(因为太具体的参数很复杂,我也没时间去仔细研究),所以还是用久经考验的老办法了。

 
 
对于很多国外的在线绘本的网站,可以收集到SWF格式的文件,然后制作PDF格式的绘本,最终实现打印。
对于如何利用SWF文件,制作出高质量的PDF绘本,论坛里主要有两种方法:

第一种方式是【漠子】的方法,我把它叫做【M方法】:
如何用firefox下载FLASH,并制作成PDF文件~案例:培生官网+OXFORD官网
http://www.ebama.net/forum.php?mod=viewthread&tid=24532&fromuid=24025

第二种方法是【jsjyh】的方法,我把它叫做【Y方法】:
国外SWF在线绘本如何制作高质量的PDF文件教程
http://www.ebama.net/forum.php?mod=viewthread&tid=28686&fromuid=24025

这两种方法在2011年8月就已经发布,成为论坛里制作PDF书本的经典方法,许多爸妈都是因此受到启蒙,并经过实践,最终能自己制作PDF书本的。我也是其中的一位受益者,用这些方法制作了许许多多的PDF书本,特别向两位前辈表示衷心的感谢!

我这里要提出的第三种方法,是一种不同于上述两种方法的新方法,我把它叫做【H方法】。这种方法最大的优点是能真正做到批量地把SWF文件转换为JPG文件,继而制作出PDF文件,并且整个过程不会出现异常页面,制作出来的PDF的质量可以自己选择。我在此对这种方法做一个简单的论述,并比较一下三种方法的优缺点、适用场合以及注意事项。

(一)用到的软件
1、核心软件:SWFTOJPG.EXE,大小只有571KB,单文件绿色免安装版本,帖子最后提供下载。
2、Adobe Acrobat软件,我用的版本是Adobe Acrobat X Pro,论坛已有下载链接,本帖不再提供下载。

(二)制作过程
1、这里以已经收集到SWF文件为起点。至于怎样收集SWF文件,M方法和Y方法的链接里已有详细的叙述。这里以《Pardon That Turkey》这本书为例讲述制作的过程,在Y方法中,jsjyh也是以这本书为例论述的,大家最后可以比较一下Y和H方法制作出来的这本书的区别,这本书也在帖子最后提供下载。收集到的《Pardon That Turkey》的SWF文件如下:
<ignore_js_op>

2、用SWFTOJPG软件把SWF格式的文件转换为JPG格式的图形文件,这是关键核心的一步。
<ignore_js_op> 
①把SWF文件全部拷贝到一个文件夹中,这个文件夹只存放这些SWF文件,不要存放其它无关的文件。图中我把SWF文件全部拷贝到TMP文件夹中,并点击【选择FLASH文件夹】选中TMP文件夹。
②点击【选择缩略图文件夹】,选择生成的JPG图片的存放文件夹,图中我把生成的JPG图片也存放在TMP文件夹中,当然也可以选择不同的文件夹。
③核心:选择【指定宽度】和【指定高度】,就是选择生成的JPG图片的点阵数目,这个数值决定了最后生成PDF文件的质量和大小,可以根据自己的需要来选择,这里提供一些数据供大家参考,如果打印机以300DPI的精度来打印的话:
       A4纸:297×210毫米,即11.692×8.267英寸,需要3508×2480点。
       A5纸:210×148毫米,即8.267×5.827英寸,需要2480×1748点。
      实际书本的高宽比和A4纸的高宽比一般不会一样,自己看情况选择点数吧。      
      这里【指定宽度】和【指定高度】的点数也可以随意填写一个数值,一般选择2000点质量已经是很好了,图中例子我选择了3000点。
      对于页数少的书本,建议【指定宽度】和【指定高度】选择同样大小的数值,生成PDF后一次裁切白边就好,这样简单。
      对于页数非常多的书本,比如有900页,生成PDF后再裁切白边的话,如果机器比较旧,裁切会比较慢,也可以采用下面的方法来选择【指定宽度】和【指定高度】:先把1个SWF文件用SWFTOJPG转换成JPG图片,或者用jsjyh的Y方法来制作1页,裁切好白边,记录好裁切白边后的实际书本的高度和宽度的比例,比如高宽比是1.48,【指定高度】填写3000时,【指定宽度】就填写3000÷1.48=2027,这样用SWFTOJPG软件生成的JPG图片的高宽比就是1.48,和实际书本的高宽比一样,最后生成PDF时就没有白边,也就不用再去裁切白边了。
④文件名前缀,可以把书名写进去,也可以不写,随意吧。
⑤指定帧,不用修改了,就选100吧。
⑥选择SWF文件所在的文件夹后,SWF文件列表就会出现在这个窗口,文件顺序不需要理会。

3、点击【执行操作】,软件界面下方会有一进度条出现,如果文件数量太多,会比较慢,对于比较老的机器要耐心等待。我试过800多页的书本,800多个文件一次转换,也很顺利的完成。最后在指定文件夹生成对应的JPG图片文件,如下图:
<ignore_js_op>

4、运行Adobe Acrobat软件,选择【将文件合并为PDF】,选择【添加文件】
<ignore_js_op>

<ignore_js_op>

5、添加文件时,看到的JPG图片文件的列表顺序是正确的,但是如果全选,添加后的文件列表顺序是不对的,比如2会在19的后面,3会在29的后面,9会在89的后面,所以这里最好先选择一位数1-9,再选择两位数10-99,再选择三位数100-999,再选择四位数1000-9999,如果有这么多页的话。
<ignore_js_op>

<ignore_js_op>

<ignore_js_op>

6、点击【合并文件】,合并后产生一个新的PDF文件,可能会有白边,就必须裁切白边,裁切白边可以用Adobe Acrobat自带的功能裁切,也可以用插件来裁切,也可以用其他方法,看自己习惯吧。如果在【指定宽度】和【指定高度】的选择上选定了和实际书本高宽比一样比例的点数,就不会有白边了;或者,如果【指定宽度】和【指定高度】选择一样的数值,刚好实际书本是正方形的,也不会有白边了。对于页数很多的PDF文件,建议裁切白边前,先保存一下文件。
<ignore_js_op>

7、输入书本的文件名,保存文件。
<ignore_js_op>

至此,一本PDF书本就制作完成了,虽然写了有一些文字,其实过程是非常简单的,主要就是第2步,后面的步骤,包括合并JPG文件和裁切白边,其实都是大家早已熟知的操作。

(三)3种方法制作PDF的思路:
<ignore_js_op>
M方法:打开Acrobat导入所有SWF,利用PDF Printer直接生成最终PDF。思路很简单、很直接、很理想,但实际操作中却困难重重,有“欲速而不达”的感觉。
Y方法:分两步,首先用FlashPlayer(或类似软件)打开一个SWF,利用PDF Printer生成一个PDF,不断循环操作,把所有SWF全部都转换为PDF;然后用Acrobat把所有单个的PDF合并成最终PDF。这种方法卡在第一步,一个一个地把SWF转换为PDF致使效率极低,制作需要极大的耐心,如果这一步能实现批量处理,这种方法将极为完美,因为只有这种方法保留了SWF中文字的矢量信息。
H方法:分两步,首先用SwfToJpg软件把所有SWF转换为对应的JPG;然后用Acrobat把所有JPG合并成最终PDF。

(四)3种方法做一个比较:

比较项目 M方法 Y方法 H方法
1.  SWF文字为矢量 点阵 矢量 点阵
2.  SWF文字为点阵 点阵 点阵 点阵
3.  能否批量转换 有限制 不能 真正的批量转换
4.  异常页面(有时) 比例变形 有白框 没有异常
5.  PDF质量,大小 一般
6.  PDF质量是否可选 可选余地小 可选余地小 任意可选
7.  制作时间长短
8. PDF Printer 需要 需要 不需要
9.  电脑性能要求 要求太高 要求小 要求一般
解释一下(以下1-9点说明,对应上表的1-9点):
1. 如果SWF的文字是矢量描述,Y方法制作出来的PDF的文字也是矢量描述的,这是Y方法最具价值的地方,M方法和H方法都无法做到这一点。矢量描述的字体,无论放大多少倍,字体的边缘都是平滑无锯齿的。对于文字是矢量描述的PDF,千万不要分解为JPG图片,再合并为PDF,这样分解再合并的结果,文字的矢量描述就会消失,变成点阵描述了。牛津和培生网站的书本,SWF的文字都是采用矢量描述的(不知有无例外)。
2. 如果SWF的文字没有采用矢量描述,就是说文字也是和图形一样采用点阵描述的,这样的话,即使采用Y方法,制作出来的PDF里的字体也不可能是矢量描述,而只能是点阵描述,对于这种SWF文件,Y方法就没有优势了。加州分级读物的SWF的文字都是采用点阵描述的(好像没有例外)。
3. Y方法的最大缺点就是不能批量转换,只能一个文件一个文件地转换,对于页数多的书本,简直是噩梦哦。M方法说是能批量转换,但是限制太多,导致批量转换的效果大打折扣:一是导入SWF文件时,每个文件都要点一下鼠标(这个问题解决没有啊?),而且每导入一个文件都有停顿;二是导入SWF后,要点“黑色小三角形”,否则质量太差,这一步骤过于占用内存,致使要分批处理,一旦分批处理,将会很麻烦。
4. M方法会产生异常页面,书本比例变形,Y方法则会出现白框,如果一本书产生几页这种异常页面,处理起来非常耗时费力而且困难,甚至难以处理,如果是一本900页的教科书,里面有几页异常页面,那是非常麻烦的事,我在制作Journeys教科书的过程中,为了处理这些异常页面,耗费了大量的时间和精力。H方法,到目前为止,没有发现有异常页面的出现,有待考证吧。
5. M方法制作出来的PDF质量一般,Y方法制作出来的PDF质量很好,如果选择A4纸质量,真的能满足A4面幅的打印要求,加上如果文字是矢量描述的,打印质量会非常好。H方法如果选择高度和宽度的点数达到3508点,也能满足打印A4面幅的要求,其实在实际打印过程中,不需要3508点,打印A4面幅的质量也是很不错的。文件大小方面,如果Y方法和H方法都输出3000多点,一般情况下H方法制作出来的PDF文件还是小一些,文字越多的SWF,Y方法制作出来的PDF越大,比如教科书之类的。M方法似乎还不能输出3000点以上的PDF,文件大小相对较小。
6. M方法和Y方法选择输出质量的选项很少,其实是受限于PDF Printer的功能多少。H方法由于是输入高度和宽度的点数的,因此是任意可选的。
7. Y方法是一个文件一个文件地处理,M方法实际操作中受诸多条件限制很难做到真正的批量处理,制作效率都不高。只有H方法,令人眼前一亮,制作书本的时间大大地缩短。我在制作Journeys学生用书的过程中,一本800多页的书本,用Y方法制作,连续点击鼠标敲打键盘5个多小时,实在是麻木啊,一般制作800多页的书本,都是分开几天或者十几天来完成的,因为实在太枯燥了,很难坚持连续地工作。而用H方法制作这本800多页的课本,只用了10分钟就顺利完成了,而且选择的高度宽度都是3000点的高质量(宽度在裁切后没有3000点了)。
8. M和Y方法都要使用PDF Printer,其本质是利用PDF Printer生成PDF文件,所以使用M和Y方法制作PDF书本前,要先安装PDF Printer,并学会使用它。H方法无需用到PDF Printer。
9. M方法对电脑要求太高了,特别是页数太多的书本,几乎难以完成。Y方法由于是一个文件一个文件地处理,因此对电脑的要求是最低的。H方法对电脑要求不是很高,如果页数很多,转换时可能会要等待一段时间,如果页数实在太多,分开两到三次来转换也是可行的。

总结:
1、一般情况下,H方法能胜任绝大部分SWF制作PDF书本的工作,批量处理、简单快捷、稳定高效。
2、如果SWF的文字是矢量描述,又希望PDF能保留文字的矢量信息,只能选择Y方法,这也是Y方法最具价值的优点。
3、如果SWF的文字是点阵描述,即使Y方法制作的PDF也不能新产生矢量信息,应该选择H方法。
4、对于页数太多的书本,使用M和Y方法都极其辛苦,采用H方法能节省太多太多的时间,而且产生的PDF质量有保证,无异常页面,实属最佳方法。
5、H方法也不是万能的,有些特殊的SWF文件,H方法也处理不了,如加州分级读物带控制按钮的SWF文件。

欢迎大家指正,提供更好的软件或者提出优化的方案。
向一直致力于研究由SWF制作PDF书本的前辈们致敬!向参与讨论和实践的爸妈们致敬!

------------------------------------------------------------------------------------

SWFTOJPG软件 和 用H方法制作的《Pardon That  Turkey》的PDF下载链接:
http://pan.baidu.com/share/link?shareid=24987&uk=2399799060

SWF在线绘本批量制作高质量PDF的新方法(重点在批量制作)的更多相关文章

  1. 使用firbug调试程序写更高质量的代码设置方法

    在搜狐浏览器内输入about:config 在搜索栏中输入:strict 双击javascript.options.strict,将值变为true

  2. 如何编写高质量的 JS 函数(2) -- 命名/注释/鲁棒篇

    本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/sd2oX0Z_cMY8_GvFg8pO4Q作者:杨昆 上篇<如何编写高质量的 JS 函数 ...

  3. 【伯乐在线】100个高质量Java开发者博客

    本文由 ImportNew - 夏千林 翻译自 programcreek.欢迎加入翻译小组.转载请见文末要求. ImportNew注:原文中还没有100个.作者希望大家一起来推荐高质量的Java开发博 ...

  4. C#制作高仿360安全卫士窗体<二>

    继上次C#制作高仿360安全卫士窗体<一>发布之后响应还不错,我的博客放肆雷特也来了不少的新朋友,在这里先谢谢大家的支持!我自己也反复看了一下觉得对不起大家,写的非常乱而且很少文字介绍.在 ...

  5. C#制作高仿360安全卫士窗体2

    C#制作高仿360安全卫士窗体 继上次C#制作高仿360安全卫士窗体<一>发布之后响应还不错,我的博客放肆雷特也来了不少的新朋友,在这里先谢谢大家的支持!我自己也反复看了一下觉得对不起大家 ...

  6. 您的下个中文网站可以使用的5个高质量中文Webfont

    你有没有考虑为什么中文网站的版式风格不像大多数现代英文网站那样丰富?您想了解如何让您的下一个中文网站项目更吸引用户的眼球么?继续往下读吧…… 根据Smashing Magazine进行的一项调查显示  ...

  7. 《Offer一箩筐》一份高质量「简历」撰写指南,望打扰!!

    「MoreThanJava」 宣扬的是 「学习,不止 CODE」. 如果觉得 「不错」 的朋友,欢迎 「关注 + 留言 + 分享」,文末有完整的获取链接,您的支持是我前进的最大的动力! Hi~ 这里是 ...

  8. 高质量C++/C编程指南(林锐)

    推荐-高质量C++/C编程指南(林锐) 版本/状态 作者 参与者 起止日期 备注 V 0.9 草稿文件 林锐   2001-7-1至 2001-7-18 林锐起草 V 1.0 正式文件 林锐   20 ...

  9. HTML Inspector – 帮助你编写高质量的 HTML 代码

    HTML Inspector 是一款代码质量检测工具,帮助你编写更优秀的 HTML 代码.HTML Inspector 使用 JavaScript 编写,运行在浏览器中,是最好的 HTML 代码检测工 ...

随机推荐

  1. 关于apache kylin 安装32位linux办法

    最近公司在使用apache kylin做实时开发访问,但是自己集群是linux32 只能安装JDK32位的受限只能3G多内存,而apachekylin 默认是4G内存,需要JDK64位支持. 解决办法 ...

  2. A20地址线科普【转载】

    1981 年8 月,IBM 公司最初推出的个人计算机IBM PC 使用的CPU 是Intel 8088.在该微机中地址线只有20 根(A0 – A19).在当时内存RAM 只有几百KB 或不到1MB ...

  3. macOS下安装openCV+Xcode配置

    macOS下安装openCV+Xcode配置打开终端 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Hom ...

  4. java使用正则表达式,去除windows系统中文件名的非法路径

    w哦我爬取一个页面,并且把附件下载下来,保存,有的时候文件名,带*号,所以,无法保存 这时候就要删除所有的非法字符 String fileName = resourceName + fileTypt; ...

  5. idea中使用本地jar包

    一个maven项目中使用到了taobao-sdk-java-auto_1455552377940-20160422.jar包,项目是直接导入的jar包而没用用maven的形式导入,导致在idea编辑时 ...

  6. IO流10 --- 缓冲流(字节型)实现非文本文件的复制 --- 技术搬运工(尚硅谷)

    字节型缓冲流,BufferedOutputStream默认缓冲区大小 8192字节byte,满了自动flush() @Test public void test6(){ File srcFile = ...

  7. git中的错误

    ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to 'git@gitee.co ...

  8. 集训队日常训练20180518-DIV1

    A.3583 n根木棍是否能分成相等两堆. 背包dp,首先求和sum,如果为偶数就说明不行,否则考虑做一个sum/2大小的背包. #include<bits/stdc++.h> using ...

  9. P1561 [USACO12JAN]爬山Mountain Climbing

    P1561 [USACO12JAN]爬山Mountain Climbing 题目描述 Farmer John has discovered that his cows produce higher q ...

  10. 解决安装编译工具gcc后无法连接mysql

    在安装编译工具gcc后: yum -y install make gcc g++ gcc-c++ libtool autoconf automake imake mysql-devel libxml2 ...