关于做PDF的FAQ(一)~(四)

年前曾给在VeryCD活动的任真兄说过,要做一份文字来教大家做PDF。其中最主要的是做PDF的书签。现在07年的春节快过完了,想想这份文字不能再耽搁着,便决定来写写。

但是,我可能不能写成一份教材,因为那太费时间。因此,我决定写成一份FAQ。我想尽可能写得简单写,简单到你一做即会。——但要不要期望知道原理与过程,因为这份文档只是一个FAQ。

在开始之前先做一下说明,后文中的acrobat是指adobe acrobat。它是专做pdf的一个编辑工具,目前已经发布到acrobat 8。而后文中的reader,则是指读pdf文件的阅读器,并没有编辑功能,也已经发布到了reader 8。

本文所提及到的软件下载列在文章末尾。如果有本文的使用细节存疑或者其它任何问题,请给我mail:aiming@gmail.com

好的,下面我们开始。

第一部分:使用PDF文件

Q1:如何使acrobat reader打开指定页?

找到reader安装的目录,通常它在:

 C:/Program Files/Adobe/Acrobat <x.0>/Reader

目录中,把<x.0>换成你安装的版本号即可。

然后你会发现AcroRd32.exe这个程序,这是reader的主程序。使用如下命令行打开它:

 AcroRd32.exe /A "page=110=OpenActions" "C:/Example.pdf"
 ------------ -- ---------------------- ----------------
 (1)          (2)(3)                    (4)

其中参数(3)是一个复合的参数,表明打开的动作,以及打开时指定的页数(本例中是110页)。如果你需要找到更多的参数,可以在网上搜索一份名为PDFOpenParameters.pdf的文档。

参数(4)是你想打开的文件名。

你可以做一个快捷方式,或者在程序中调用命令行打开它。如果你需要的话。

Q2:如何在IE中打开PDF的指定页?

这个比上一个问题简单一些。你可以在URL中指定页码。例如:

http://www.your_web_site.com/your_file.pdf#page=24

你要以在IE和firefox中使用相同的方法。不过前提是你在安装reader的同时,也安装了它们的插件。——你也可以单独安装这些插件。

Q3:如何安装插件?

大多数情况下,插件都会有自己的安装程序。如果没有,那么它应该是一个扩展名为.api的文件(也许还有一些附带的文件),你只要将这些文件复制到下面的位置即可:

 C:/Program Files/Adobe/Acrobat <x.0>/Reader/plug_ins
 C:/Program Files/Adobe/Acrobat <x.0>/Acrobat/plug_ins

Q4:如何记住上一次PDF文件打开的位置?

你需要单独安装一些插件。reader或者acrobat本身都不具有这样的功能,我听说reader 8已经有这样的功能了,但未能测试过。

PlaceHolder这个插件能记住上一次打开的PDF文件的位置。安装完这个插件之后,打开PDF文件,你会看到"文档"菜单中有一个"Use Placehold"项。选中它,这样下次再打开这个文件时,文档会跳到这个文档最后阅读的位置。需要注意的是,必须对每个你想保存其最后阅读位置的文档选中这个选项(选一次即可),否则不起作用。

另一个工具简单一些,但它是为acrobat/reader 4.x版本编写的。我测试过它在这两个软件的7.x版本中仍然能够正常使用。这个软件是:

FavoritesR AddIn for reader
Favorites AddIn for acrobat

你可能已经找不到它的下载了。——它实在太古老。不过本文后还有它的下载,找到它的确极端费劲。
它可以为你的PDF随意定义多个书签。如果需要,你下次可以打开它。

第二部分:制作PDF文件

Q1:如何得到一个PDF文件?

有很多软件可以做PDF文件,包括一些图形软件,也包括一些编辑软件。但最正宗的做法,是安装acrobat。当然,使用acrobat会很麻烦,如果你有其它的顺手的工具,你也不妨用它。但有些操作(例如制作书签),就需要用到acrobat了。

制作PDF的基本方式是“打印”。acrobat安装后会虚拟一个打印机,你可以在任何阅读器中将当前正在阅读的文档“打印”输入,然后就变成了一个PDF文件。

Q2:如何从超星文件制作一个PDF?

之所以提到这个问题,是因为有太多超星书籍,而我又不能忍受超星那个糟糕的浏览器。所以我们需要装它做成PDF。

超星有三个阶段的文档版本,这三个阶段并不一致,制作PDF的方法也有差异。

第一个阶段是超星3.6以下版本的。这个版本的阅读器可以兼容一种扩展名为.001~.xxx的文件。这是超星非常早期的格式。

第二个阶段是超星3.6以上,3.9以下的版本。这些版本阅读的超星文件目前大多数软件都可以正常阅读。——包括加密的。

第三个阶段,是超星3.9及以后的。

之所以这样划分,是因为这些版本适用的工具有区别。如果你需要将.001~.xxx格式的文档制作所.PDF,那么你只有安装一个超星3.5x版本的浏览器,然后打开这些文件,再打印输出成一个PDF。

如果你需要制作3.6~3.9版本可阅读的超星文档,那么你可以使用一个名为Pdg2Pic的工具来帮助你做PDF,而不需要在超星浏览器中打印。

最后,如果你需要做一些只有在3.9以上浏览器中才能阅读的、加密的超星文档(一种特殊的加密格式),那么你需要先用一个名为Pizza的软件解密,然后才能用Pdg2Pic来帮助你做PDF。

因为这个缘故,我的机器安装了三套超星阅读器。你可以在网上找到一个软件,用来帮助你切换不同的超星阅读器版本。——但这不是我这里讨论的主要问题。

.001~.xxx这种格式还有一个名为“超星图书本地阅览器”的软件可以阅读,这是超星官方早期发布的一个浏览器,已经非常少见了。你可以使用它阅读,但不能打印。

大多数情况下,你能使用Pdg2Pic来将超星文档转换成图片。然后,你能用一个名为FreePic2Pdf的软件来将这些图片生成为一个PDF。这个过程非常之方便和快捷。如果你设置好一些参数,那么转换PDG到PDF这项工作,基本上就是点击三、四下鼠标而已。

作为一项建议,一定要将Pdg2Pic的“参数设置”中的“添加书签到PDF文件尾”这个选项取消掉。它会使你的PDF多出几个页面,这会让后面说到的“做书签”的工作显然更麻烦。

Q3:如何从WORD文件中制作一个PDF?

这比做超星文档方便得多了。在office 2007以上的版本中,你甚至可以直接存为PDF文件。其它版本中,在你安装了acrobat之后,会在WORD中多出一个工具栏,按下“输出到PDF”就可以了。

安装acrobat之后,也会在资源管理器的.DOC格式文档的右键菜单中出现“转换为PDF”。

你也可以在任意时候,使用“打印”功能将WORD或其它文件输出为PDF。

Q4:如何合并多个PDF文件?

在acrobat中,菜单“文件”->“创建PDF”->“从多个文件”,仔细研究一下。

注意,这个功能会将书签也合并到一个文件中。在其它工具中是比较少见的。

Q5:如何分割PDF文件?

在acrobat中打开PDF文件,菜单“文档”->“提取页面”。

你可以提取一个PDF文件的不同部分,从而得到多个PDF文件。

Q6:如何从已经损坏的文件中得到正确的部分?

有些时候,PDF文件下载来便是坏的(制作者的一些疏忽)。只要这个PDF还能被打开,那么也许你还有机会将好的那一部分用“分割PDF”的法子取出来。

为什么要这样麻烦呢?因为制作者可能不会单独再发布一个新的PDF,而只会将错误的页面重新扫描一下,发布一个图片。但要将PDF与图片保存在一起,实在是令人不愉快的事。

另外,一些PDF制作的错误页面并不丢失或者出现“花屏”,而是导致acrobat/reader出错。这时可能必须重做一个PDF。

但在用“提取页面”的功能从这样的PDF文件中截取一部分时,也可能同样导致acrobat出错。这种情况下,你可以选择使用“打印”的功能输出PDF。

例如一本300页的书,其中35~56页是损坏的。而且使用“提取页面”也会失败。那么你可以先打印1~34页,再打印57~300页。再把打印出来的书合并成一本。

acrobat中打印这样的PDF时也可能会失败。这种情况下,你还可以使用"Foxit Reader"这个工具来打开PDF。"Foxit Reader"打开PDF并打印时会有一个好处:它会忽略大多数的错误,并尽可能地输出页面。

但还剩下最后一个问题,"Foxit Reader"在中文环境下,输出中文字符到acrobat的虚拟打印机时,偶尔会出现乱码。这时你可能需要另外一个名为“PDF-XChange”的软件,它虚拟打印机没这个毛病。——不过它的viewer做得超级烂。

第三部分:PDF书签

Q1:为什么要做书签?

我无法说服自己要去收藏一本没有书签的PDF书。

这里说的书签,是指在reader/acrobat左侧边栏中出现的那个树状的书签。

任真兄曾打算将他所扫描的书发成djuv格式,我说“那没有书签”。djuv有做书签的工具,但不好用,而且也没有办法处理书籍中的那个“多段页码”的情况。——尽管djuv格式的确要小一些。

后来任真兄终于没有再发djuv格式的电子书,但因为不能很好的处理书签,以及寻求使用上的方便,但也没有再发成PDF格式的电子书,而变成了图片。

所以我要详细地讲一下做书签的问题。这样以后大家读PDF电子书便会舒服多了。

Q2:如何在WORD中制作一个带书签的PDF?

在WORD中打印PDF文件之前,你有机会自动生成一份书签。在acrobat为word添加的那个菜单项中,找到Acrobt设置,然后选中你要生成书签的“样式”或“格式”的名称。然后输出就要以了。但这种方法有个前提,你得为样式或格式指定“大纲级别”,大纲级别在PDF输出时会作用书签树的层次来使用。——在WORD菜单的“格式”->“段落”中你会找到大纲级别的设置。

我个人做的技术类文档,总是先做成WORD文件,并且会很好的处理样式和格式。这样我就可以在“视图”菜单中打开“文档结构图”来显示这个文件的结构。而用这种方法输出的PDF文件的书签,会跟这里的“文档结构图”完全一致。我大多数是用这种方法来做PDF的,因此省却了专门做书签的功夫。

Q3:如何为已有的PDF电子书做书签?

用acrobat,你可以为PDF自由定制你想要的书签。记住一个快捷键“Ctrl + B”,这会给你的工作带来莫大的方便。习惯acrobat右边的阅读区用鼠标滚轮,会使你的翻页变得轻松。

首先我们先说说一般电子书中的“多段页码”问题。你会发现电子书在正文开始前,总有封面、前言、导读和目录之类的东西,总会占掉几个页。而习惯上,目录中的页码总是从正文的第一页开始的。也就是说,实际正文的页码与正文前的页码在两个(或者多个)不同的段内。这种情况下,我们需要应用到“逻辑页码”的功能。——在reader的菜单“编辑”->“首选项”->“页面显示”中开启选项“使用逻辑页码”。默认情况下,该选项总是开启的。

在acrobat中,你可以为一个PDF文件设置多段页码。

我们先说非正文页码的做法。因为正文页码总是以1页开始,所以非正文的页码应该避开这种编码的格式,例如加个前缀,或者使用不用的编码序列。——通常情况下,我会加一个前缀的英文字母“P”。下面说一个实例。

假设一个PDF文件中绝对页面1~30试图作为正文前的区段,而31~150为正文。——也就是说,该电子书的目录中只有正文1~120页。那么,我们需要先做一个“非正文页码”。先在左边栏中切换到“页面”,然后在边栏上方找到“选项”,下拉菜单中会出现“编排页码”。点击这个菜单后,你会看到一个弹出对话框。在“页面”中先第三个,设置从“1”至“30”页;在“编码”中选“开始新节”,样式中选“1,2,3...”,前缀设为“P”,起始值设为“1”。

好了,按下“确定”键,你会发现前30页已经变成P1~P30了。而后面的页面,也自然的重排为1~120页。

通常情况下,我不会记得住要排1~xxx页为正文前的区段。我会找到最后一个页,在“页面”栏中成批选中它们(先点选最后一个页面,然后按下SHIFT键,翻到最前面并点选第一个页面),这样,在“编排页码”对话框中,就会默认选中“选定的页面”,而无需再填写1~XXX页了。

多个分段页码的做法与此类同,但建议从前至后的依次做,要不你会混乱的。记得将页码1~xxxx留给正文(也可以包括附录),这样你就可以利用原书中的目录了。

利用原书中的目录,也是做书签的主要目的之一。例如一本词典,如果你不利用词典原有的目录,那么你就得为每个词条(或每批词条)去做按钮,那是会把人做疯的。VeryCD上的海涛兄曾发过一本《辞源》的扫描版,是没有书签的,后来seair专门做了书签又重发一个版本。《辞源》在VeryCD上发过好几版,以海涛、seair等所做的最好,就是因为有了书签,方便检索。但事实上这个书签做得也不够好。因为它是用的按钮连接到不同的PDF文件的方式,并没有很好的利用原书的目录和检字表。——一个例子是:如果你找到某个字是在1822页,那么你得打开名为“1501-1970.pdf”的这个文件,然后输入322。总要预先计算一下页码,总不那么令人愉快。

事实上,由于“多段页码”(和逻辑页码)的存在,你可以为每本PDF的正文部分合理编排页码。——记得“编排页码”对话框中的“起始值”吗?好的,有了这些页码,从目录或者索引表中查到的页面,就是最终需要的页码,多么方便?

你知道了页码,只需要在reader下方的页码框中输入页码号,回车。——然后就找到了。注意,你不需要关心那个页码框中的“6(第 10/431 页)”这样的格式,你输入并覆盖它们就可以了。

在字典一类的电子书中,会在正文之前有一个“检字表”,“检字表”前还会有一个“部首索引表”。通常“检字表”会从页码1开始编排,而“部首索引表”中的页码指向检字表,检字表中的页码又指向正文(是另一个从页码1开始的区段)。这种情况下,可以将检字表中的页码独立编成一个区段,以其它前缀(例如字母“I”)开始,这样在部首索引中找到部首后输Ixxx就找到偏旁部首了,找到待查汉字后,用xxx页码直接就可以定位到正文页。

Q4:书签中的难检字或偏旁如何输入?

有些大字典,为了方便,你可能打算为部首偏旁也做一个书签。这样比慢慢翻目录要好。这时,你会遇到偏旁部首太难输入的问题,尤其是古文字典的最为明显。

解决的方法很简单。点Windows的“开始”键,选“运行”,输入“charmap”。你会看到一个叫“字符映射表”的东东,在“字体”中,应该有一个叫“方正超大字符集”的字体,选中它——别的一些字体也可以,但我常用这个,其它的你得自己去尝试——接下来你在下面的“分组”下拉框中,会找到“按偏旁分类的表意文字”。选中它之后,这个“字符映射表”右边就会出现一个偏旁部首表,点击一下部首,左边的“字符映射表”中的第一个字符就是这个部首了。再双击这个字符,下面的“复制字符”框中就会有这个偏旁,你只需要将它复制一下就可以用了。——不必输入。;)

Q5:如何成批调整书签的样式?

有些时候,一个PDF书下载来,它的书签可能就做好了。——这个世界真美好,好心人总是很多的。但是你可能会不喜欢,因为这个书签并不是你想要的样式。
例如,你点击这个书签,在右面打开的是“按宽度缩放”的页,而你可能想要“按整页显示”。事实上我就常常遇到这样的问题:我的显示器比较大,整页显示读来正好,翻页也方便。

那么,有没有办法让所有的书签点击后都变成“按整页显示”呢?——或者按你想要的方式显示。

这需要借助一个名为“AutoBookmark”的插件工具。在这个工具里,有一个名为“Set Zoom Type”的功能,你可以用它将所有的书签统一为某种打开的格式,或者设置打开后的缩放比例。我习惯于统一设置成“Fit Page(整页)”。

AutoBookmark也有许多别的功能,但建议小心尝试。因为大多数都是针对英文系统的,在中文中使用会出麻烦。 :(

Q6:如何(成批地)调整书籍的打开样式?

PDF打开时,可能是连续的、整页的或者双页的,或者缺省不打开书签之类。不同的PDF发布者和收藏者的习惯不同,拿到一本让你绝对满意的书实在不容易。

其实你可以自己调整一下的。例如打开书籍的样式。我习惯“单页页面布局打开,带书签,缺省显示首页封面”,这样看起来就真的象拿到一本纸质书一样。

在acrobat中的“高级”菜单中,会有一个“批处理”。打开它之后,在批处理对话框中,选“新建序列”,然后随便输个名字(例如TEST),接下来在右侧找到“文档”中的“打开选项”,添加到右侧。然后选“编辑”。OK,你看到了,你想设置怎样的打开格式都行的。

接下来按“确定”,再“确定”。你会看到一个设置框,用于设置你刚才新建的名为TEST的这个序列的参数。记得设置一下“运行命令于”这个项。如果你设置为“在Acrobat中打开的文件”,那么你不必设置“输入位置”,否则你需要设置输出的位置。最后你再“确认”并保存这个序列。

任何情况下,你可以从“高级”->“批处理”菜单中重启“运行”这个序列,选择一批文件或一个文件夹,或者当前Acrobat中打开的文件,使得它们有相同的打开样式。

现在,你下载多少PDF都不用担心了。——他们的打开样式一定是你所乐见的那种。

Q7:如何对付加密的PDF?

有些时候,PDF的发布页会加密这个文件,使你不能修改它。首先说,我们应该尊重人家的决定,但说实在的,有些PDF做得很不好,很不合你意。“不能打印,不能复制,也不能修改打开的样式”,反正所有的都让你不满意。但是,你想收藏这本书。

好的,我们要收藏它就得先让他变得让自己满意,要满意就得修改,要修改……嗯,就得解密。有两个工具可以帮你搞定这件事,一个名为“Advanced eBook Processor”,另一个名为“PDF Password Remover”。——当然还有更多的同类工具,不过这里我只推荐这两个。而我习惯于使用前者。

我不能确保所有的加密PDF都能有办法解密。但愿能尽可能让你读PDF时舒服一点。

Q8:如何导入导出PDF中的书签?

目前大多数发布的PDF中是没有书签的,这意味着要么你自己做一份,要么等着有好心人做完书签然后发布一个新版本的PDF,然后你再下载。

如果只是几M大小的PDF也就罢了,但有些几百M大小或者上G的PDF,要再下载一遍就得把人搞疯。有没有人能发布把做好的PDF的书签导出来,仅发布这些书签,我们只需要下载书签导入就可以了呢?

也是可以的。

FreePic2Pdf这个软件用于将一批图片转成PDF文件,但它有一个“不起眼”的小功能,可以将PDF中的书签导出成文件,然后再导入到另一个PDF文件中去。这个功能在FreePic2Pdf软件主界面的右下角,有一个名为“更改PDF”的按钮,点进去看看就知道如何用了。

FreePic2Pdf这个工具不需要安装acrobat也是可以用的。所以一般用户拿到书签文件后,不必辛苦的安装acrobat这样的大家伙(几百M呢),直接使用FreePic2Pdf向PDF文件中导入就可以了。事实上FreePic2Pdf的书签文件是一个简单的文本文件,也就是说,你可以按它的格式为任意的PDF文件自己做书签文件,然后导入PDF文件即可。而不需要安装acrobat这个麻烦的东东来做书签。

但FreePic2Pdf制作的书签也有一点不好的地方,它的书签的正文前的页面是以英文字为序的,而不是(我所习惯的)加前缀的格式,因此需要你自行去修改。就我所知,目前大概只有acrobat能方便地做多种页码编码的效果。

作为示例,我这里将我收藏的一套《汉语大词典》十二卷本的书签导出来,大家可做参考,今后我也将不定期的发布一些做好的书签。——强烈建议你在导入书签之前先备份一下原来的PDF,任何不通过acrobat进行的(非官方方案的)修改都是有一定危险的。

有人做电子书,也有人做书签,做书的事业便渐生乐趣了。哈哈。

第四部分:下载

PlaceHolder v1.0

FavoritesR

Favorites

这三个软件都太古旧了,在网上都已经绝迹了。因此我自己找了个地方存了一份,你也许用得着(安装的方法参考“Q3:如何安装插件”):

下载:
http://www.delphibbs.com/keylife/images/u40/PlaceHolder1.0.ZIP
http://www.delphibbs.com/keylife/images/u40/FavoritesR.rar

PDFOpenParameters.pdf

下载:
http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/PDFOpenParameters.pdf

超星阅览器 3.53

超星图书本地阅览器0.5

这两个版本是能正常阅读.001~.xxx格式的,而且都是官方发布的版本。但也是太古旧,很难找了。下面是可用的下载地址,我自己也存了一份,需用的自取。

下载(1):
ftp://210.36.68.233/单片机/单片机书籍配套光盘/51测试网光盘/电子书/超星简版阅读器setup.exe
http://download.pchome.net/utility/file/browse/5009.html
下载(2):
http://www.delphibbs.com/keylife/images/u40/SSReader.353.zip
http://www.delphibbs.com/keylife/images/u40/L_SSReader.0.5.zip

Pdg2Pic

FreePic2Pdf

老马的地方有很多原创的好东东,这年头像他这样诚实做软件的人不多了。这两个工具都是他原创的、免费的工具。我们在这篇文章中,很多问题都是这两个软件解决的。老马的原创空间内还有非常多的电子书专用/通用工具,大家不妨去看看。

下载:http://www.cnblogs.com/stronghorse/

AutoBookmark

这是Evermap公司的acrobat插件套件中的一个。另一个名为AutoPage的插件也很不错,能方便地向PDF中插入空白页,这样在做书签时遇到缺页也可以方便的处理了。这套插件是商业软件,如果你想得到免费的,嗯,自在网上找罢。只要努力,什么都会有的。

下载:http://www.evermap.com/

Advanced eBook Processor 2.2 build 200

PDF Password Remover 3.1

需要注意的是,解密有版权保护的 PDF 文件是被严厉禁止的,请不要将这些软件用于非法用途!!

下载:

《汉语大词典》十二卷本的书签

电子书下载请自行在emule里搜。注意不是ISO电子版,而是电子文档。

书签下载:
http://www.delphibbs.com/keylife/images/u40/汉语大词典.zip