首页 > 其他分享 >如何制作3层的PDF电子书

如何制作3层的PDF电子书

时间:2023-06-01 14:55:43浏览次数:35  
标签:文字 文件 电子书 插图 图像 PDF OCR 制作

先说一下双层PDF,它是指同时有图像层和文字层的PDF,是相对仅有一个图像层的PDF而言。其优点是既能得到扫描图像的细腻质感,又兼有可搜索可复制文字的便利。

双层PDF的文字层一般由OCR 工具生成。比如一些扫描仪附带软件,以及第三方的OCR软件如 Abbyy。

 

再来说下三层PDF,3层PDF是既要又要还要的产物。既要高保真的插图的质感,又要文字部分黑白分明的清晰锐利,还要文字可搜索可复制。在满足这一切时,文件还得足够小。

核心需求是文件大小,如果不要求文件大小,回到双层PDF即可。

有了需求,再来说说多层PDF的每一层,都对应什么需求,首先是OCR所得之文字层,其它的所有层,都是平衡文件大小与视觉效果的产物。

比如上面单提的一条:文字黑白分明清晰税利,这一条可通过把文字主体处理成黑白图像模式达成,代表软件是 ScanTailor Advanced和老马的

ComicEnhancedPro,主要是通过二值化达到。这一条附带的一项红利: Group4 压缩算法能带来极小的文件尺寸,目前我试验过的针对二值图像的无损压缩算法中,压缩比最高。

 

既有了上面的二值图像,又要看到丰富细腻的插图,而且插图还可能是彩色的。就需要另一个独立的图像来保存彩色的部分。一页内有一幅这样的插图,就把你带到了3层PDF。

如有多幅插图,就自然产生了N>3 层的PDF文件了。

多张彩色插图自然可以保存在同一层中,但如此一来,文件大小也就变大了,实测一页中上下两幅bpp8的灰度插图的文件,独立保存成两个图像对象的PDF 明显更小。

 

下面是重点,即制作工艺。我是从既有的PDF电子书开始二次创作。

原料往往是单层的纯图像的PDF。

1.  提取PDF 中每一页的图像文件,我用 PDF Patcher, 注意要用它的提取图片功能,不是保存每页为图像,前者不会产生质量损失。得到所有的图像文件之后。观察图像文件的尺寸.

宽度1000 左右的是一类,宽度2000 左右的是另一类。这两类我见的最多, 其它的不讨论,对于宽度1000的,回头需要缩放,宽度是2000 或以上的,不需要缩放。我的经验是每个汉字有

40像素左右宽高时,在从电脑屏到手机屏的常见尺寸的屏幕上阅读,观感都不错。而宽度在2000 pixels以上的文件,可以达到此标准.

 

1.1   对宽度1000 左右的文件,强行指定其分辨率

dir/b/a-d  | rush  "mogrify -density 150x150  -units PixelsPerInch {}"

来处理, rush 是并行处理的工具。

1.2  对宽度在2000+ 的文件,仍要强行指定其分辨率

dir/b/a-d | rush   "mogrify -density 300x300  -units PixelsPerInch {}"

 

2.  在Acdsee 中查看所有文件的缩略图,用CTRL+鼠标单击的方式,把所有的文件分为两类,一类是含有插图的,一类是没有插图的,分别以两个文件夹单独保存。

3.  用 ScanTailor 处理含有插图的部分.  因为ScanTailor 有混合模式,可以在做二值化时排除指定的图像区域, 被排除的图像区域,既可以让软件自行检测,也可以手工指定。

我都是手工指定.

注意在下面选中300的输出分辨率。模式务必选中Mixed。指的是图文混合。

 

3.1  把Picture Shape改成 Off:

  注意改了之后,要点 Apply To...把它应用到所有图像的处理上去:

 这样可以让不要自动检测图像区域,全手工指定

设置之后,要点击 Picture Zone 这个Tab:

在此通过鼠标操作选中图像的部分,这样二值化就会排除这些部分,此处选择不要纠结,大一点没关系,按住CTRL的同时,单击

鼠标左键, 会开始画一个矩形,鼠标调整矩形大小时, 不需要再保持CTRL按下的状态,松开即可,鼠标再次点击时矩形就被定义了。

这个过程是最繁琐的,需要每个文件独立操作,ScanTailor 每切换一个文件时,也会比较慢。

 

4. 对于不含插图的图像文件,  用老马的 ComicEnhancerPro (我的版本是 6.01 ) 做二值化。

这个软件速度比ScanTailor Advanced快出太多,而且其二值化的选项也很多,其二值化功能是妥妥超过STA的。但遗憾的是不支持

图文混排情况下的二值化。

 

5. 对第3步生成的混排TIF 文件,进行图文分层,这一步在Photoshop中完成,用鼠标选中插图,然后

在矩形选区中右键,“通过剪切的图层", 要想文件最小, 每个插图要独立成层

5.1   对承载黑白的背景层,要进行特殊的处理,反色,快捷键是CTRL+I,其原因与后面的Enfocus PitStop 的一个操作步骤的特点有关。

5.2  将图像保存为多层TIF 文件。为了文件大小故,都不要选ICC了。PS 中的TIFF保存选项中, 可选的RLE,ZIP, LZW压缩也都是无损的,

此时还是中间步骤,中间过程中不要使用有损压缩,避免累计图像质量损失。

这一步是鼠标密集型操作,说点感想,搭配录制动作和快捷键之后,这一步的繁琐就大为减轻,右手鼠标画矩形选区,左手常放在录制动作的

快捷键上,2~4秒一张图

6.   用 Adobe Illustrator (以下简称AI)将第5步产生的多层TIF文件转换为多层PDF文件,这是制作3层PDF的关键之一,因为面对第5步产生的多层TIF文件,

其它的工具如 tiffcp, imagemagick convert, FreePic2PDF 等,都无法象AI那样生成单页多图的PDF, 要么是多页多图(每层一图), 要么是单页单图(

合并所有层,或只取其中一层). 最令人意外的是,photoshop自身本可以在第5步直接把多层内容保存为PDF文件的,但它生成的PDF只是单页单图。

 

这一步操作好在AI 也是可以做批处理的,我的试验中,AI 2023版本比AI CS6 慢太多,CS6 几乎是每秒一个文件。

录制的动作虽只有一个保存文件的动作,其细节却很关键。一定不要在此时重新采样或采用有损压缩。

 

此时保存出来的PDF文件中,文字层仍是黑白反相的,这是第5步中PS里那一步的结果。下一步会让它转正。

6.1  把前一步产生的每页一个PDF文件组合为单个PDF文件,方便后续操作。用Acrobat合并, 每个文件会产生对应的一个书签。(此处为伏笔)

 

7.  Enfocus PitStop 2022 插件中,把前一步中产生的PDF的文字层颜色空间改为索引。CTRL+ALT+A 调出动作,自定义一个动作:

7.1  第一个动作是选中目标对象,也就是黑白文字的这个图像对象,我的办法是按图像大小选择,比如目标页面是2000像素左右,

指定宽度大于1800 像素的即可

7.2  针对7.1 步骤选中的图像对象,执行“将图像转换为索引色彩空间"

 

这一步的作用是让多层PDF中的文字层接下来能以1bpp 的方式存储,这样它才能用上 Group4(image magick 中 -compress选项指定 CCITTFAX 4 的关键词).

 

这一步骤之后,文字层原来黑白反相的内容会进行黑白对调,这是pitstop这一操作的一个副作用,正因如此,才会在第5步中PS里操作里,提前把该层反相。

此时所有的图文混排的页面都在同一个PDF 文件中了,但这时的文件还只是图文混排的文件。还需要跟另一类纯黑白文字层的TIF 按正确的页序合并为一个PDF文件,这样才

原来的整本书。

 

8. 将第7步的单个PDF 再还原为每页一个PDF 文件,仍用 Acrobat,我的 Acrobat 9 Pro中,操作是: 文档->拆分文档, 设置如下:

 最好指定输出到一个干净的文件夹中。

 

9. 将纯黑白文字层的TIF文件按 Group4 压缩 

dir/b *.tif | rush "mogrify -compress Group4 {}"

[[ 注: 此类步骤执行时,最好关闭windows的实时病毒防护, proc explorer显示,它有着可观的CPU占用. ]]

此时可以把生成的TIF全部复制到上一步中指定的每页一个PDF的输出文件夹中了,此时文件名就是页码,与原书一一对应。

 

用 Acrobat 将这些文件合并为单个的PDF文件。

 

10. 优化PDF文件,在Acrobat(注意不是reader,我不确定现在的reader是否有此功能) 中优化文件。有两个需要关注的优化指令.

一是图像压缩:

 

另一是清理用户数据:

 

根据我对操作结果的分析,以上两项对应着 AI 生成的PDF 文件中的不必要的数据。

对非黑白图像,最终采用的有损压缩发生在这里,这一步是图像处理部分的终章。

我的经验,JPEG 中等质量压缩,几乎看不出任何差距。但文件尺寸却是大大减小。

 

11. OCR

到此为止,还缺少关键的OCR文字层,这一步很简单,最新的Abbyy 15中,可以直接打开整个PDF, OCR之后选择另存为双层PDF, 图像在上文字在下。

此时我们得到了一个双层PDF文件。这个文件应该是当今99.99%双层PDF文件的样态。它的图像存储方面,还欠优化,它所欠缺的优化,我们在第10步已经达成。

下一步,进行图文合并。根据我对Abbyy的使用经验,无法在达到前面步骤所得的图像存储方面的优化。

 

12.  迁移OCR: Enfocus PitStop  2022  64-bit 插件

这一关键步骤中所用的PitStop 插件功能,这一版本中有,但该插件的32位版本17中还是没有的。

12.1   对上一步骤中通过 Abbyy 所得的双层PDF, 需要去除其所有图像,留下仅含不可见的OCR文字层的PDF文件。这一步骤也通过 PitStop完成,但这一步骤在版本17也可完成。

方法同上,自定义动作,先选中图像,再加一个移除的动作。此时得到一个看似空白的PDF文件,但它含有关键的OCR文字层。

12.2   用装了 PitStop 2022插件的Acrobat 打开步骤10 中的PDF文件。定义如下动作:(原图过大,略作处理)

 这个重叠PDF功能, 就是把包含 OCR文字层的PDF,逐页地把每一页的文字层内容,重叠到当前PDF中的对应页上去。

 

13.  至此,3层PDF制作就基本完成了,但作为一个方便阅读的PDF文件,还需要书签和内嵌索引(能极大提高Acrobat 类软件的搜索速度)两项。

书签制作我仍是推荐老马的 FreePic2PDF, 配合前面的Abbyy OCR步骤,已经产生了书签的内容。加上vim中的正则表达式操作,该步骤很快就可完成。

至于内嵌索引,在Adobe中一步就可完成。

 

感谢老马的诸多软件,实在是国内电子书处理的集大成者。 感谢PDF补丁丁的作者 WMJordan,它的提取图片功能比Acrobat 快太多了,文档结构探查对于本文

研究PDF文件的内部构成帮助很大。

标签:文字,文件,电子书,插图,图像,PDF,OCR,制作
From: https://www.cnblogs.com/zhao-ru-fei/p/17448957.html

相关文章

  • 转载:用pageOffice控件实现 office word文档在线编辑另存为pdf的功能
    用pageOffice控件实现officeword文档在线编辑另存为pdf的功能1应用场景OA办公中,经常要将word文档转存为pdf方法,方式文档的查看。怎么实现word文档的转存为pdf呢?2实现方法通过pageOffice实现简单的在线打开编辑word后,只要增加一行document.getElementById("PageOfficeCt......
  • 《平衡掌控者――游戏数值经济设计》pdf电子书免费下载
    本书由真正从事游戏行业工作的一线人员所著,书中的全部案例来自真实的游戏设计案例。全书共7章,第1章介绍数值策划在职场中的发展路线,第2章介绍Excel在数值工作中的实战应用,第3章介绍MMORPG经济系统设计,第4章介绍MMORPG经济系统实现,第5章介绍两个VBA模拟案例,第6章介绍运营策划和与数......
  • [SpriteKit] 系统框架中Cocos2d-x制作小游戏ZombieConga
    概述使用SpriteKit实现一个简单的游戏,通过一个游戏来进行SpriteKit的入门,熟练2D游戏的API,也可以更好的结合在iOS应用中.详细今天我们进入一个全新的系列,先熟悉SpriteKit,然后再看实战的游戏案例。一、了解SpriteKit本期的内容就是使用SpriteKit实现一个简单的游......
  • 如何制作菜单
    如何制作菜单在JavaFX中,我们通过MenuBar,Menu,MenuItem来制作菜单。MenuBar是菜单栏,通常位于窗口顶部。Menu是一个菜单项,放在菜单栏上。MenuItem是一个菜单条目,位于Menu中。效果展示示例代码importjavafx.application.Application;importjavafx.scene.Scene......
  • 42、如何把pdf里面的表格复制到Excel表格里面呢?
    要求:把pdf表格里面的价格去掉(pdf里面的表格有一个是一整张图片来的,有一个是直接表格)解决方法:直接复制的话,Excel的格式会乱的,那么这里就把pdf的内容转为word,然后在Excel表格里面复制word的内容,但是这样做也是比较慢的,         另一个表格是图片来的,这个用off......
  • 图片动态制作,图片动态制作软件分享!​
    图片动态制作是指使用计算机软件和技术将静态图片转化为动态效果的过程。通过添加动画和特效,可以让图片变得更加生动、有趣、吸引人,并增强视觉效果。这种技术被广泛应用于电影、电视、广告、游戏、网站设计等领域,可以为观众提供更加丰富的视觉体验,那么很多小伙伴不知道使用什么软件......
  • lowagie多个pdf合并成一个pdf
    <dependency><groupId>com.lowagie</groupId><artifactId>itext</artifactId><version>2.1.7</version></dependency>importcom.lowagie.text.Document;importcom.lowagie.te......
  • [Slide] 解决Slidev export导出pdf报错
    解决Slidevexport导出pdf报错问题按照Slidev的官方文档使用导出为pdf需要安装playwright-chromium官网安装方法如下:npmi-Dplaywright-chromium在我电脑上执行安装后直接执行导出命令sudoslidevexport,显示报错如下:Slidevv0.42.1(global)theme@slidev/......
  • AdvancedInstaller制作Excel的COM加载项
       Excel控件安装之前,先检查一下以往的安装是否卸载干净,可以先文件-》加载项-》COM加载项里“删除”: 进入到AdvancedInstaller: Create后写入程序名:EXE方式:Add-In方式:一定要选编译器的Release版本: 默认全部选上,否则后期安装没有效果: 后续根据情况选版本:......
  • IText PDF签章时,如何获取PDF页的坐标
    文章目录在itext中如何获取pdf矩形区域的坐标起因解决方法常用版本itext5itext7常见的几种坐标偏移方式沿Y轴下移沿X轴偏移总结在itext中如何获取pdf矩形区域的坐标起因最近在使用ITEXT工具做PDF的电子签章时发生了印章签在PDF区域外的问题,PDF的默认坐标系为X、Y坐标......