近日有网友问如何将一个PDF文档的书签迁移到另一个文档,因此写了这篇文章,希望对大家有所帮助。

情况简述

他有一个扫描书籍生成的旧文档,已经做好了书签,但扫描分辨率比较低,后来获得了该书籍的高分辨率扫描文档,想把旧文档的书签导入到新文档中。

旧文档在PDF补丁丁上如下图所示:

新文档和旧文档都是同一本书,大体相同,只是没有书签,就不放截图出来了。

通过书签文件移花接木

我们首先打开旧文档,点击书签工具栏上第三个按钮“保存书签”,将旧文档的书签导出来,保存成一个XML文件。

然后,将这个书签文件和新文档放在同一个文件夹里。将新文档的名称改成和旧文档相同。

回到PDF补丁丁,点击书签工具栏的第一个按钮“打开文档”。在打开文档时,不要选择PDF文档,而是选择后缀为XML的书签文件。这样,就能在PDF补丁丁中打开书签文档,以及对应的PDF文档。

说明:书签文件可用记事本打开,里面第二行有类似“PDF文件位置="【PDF文档路径】.pdf"”的XML属性,表示对应PDF文档的名称和位置。当用程序打开书签文件时,程序会根据这个属性值来寻找对应的PDF文档,将其一并打开。

新文档在PDF补丁丁上如下图所示:

尝试一下点击书签,就会在新文档中跳转到相应的位置,再比较旧文档书签的跳转位置。在这个过程中,我发现:

  1. 旧文档和新文档的页面顺序基本相同,但旧文档的封底放在第二页,而新文档的在最后一页。
  2. 两个文档的分辨率不一样,新文档的分辨率较高,旧文档分辨率较低,因此书签跳转的位置偏低。

调整书签属性

首先我们先调整偏移的页码。

在新文档中,封面在第1页,书名在第2页、版权在第3页,实际封底在最后一页,而书签文件中,封底指向第2页(旧文档的封底在文档第2页,而不是最后一页),书名指向第3页,版权指向第4页。如此类推,后面所有的页面都要往前移一页,才是新文档的正确位置。

因此,我们选中书名和后面的各个书签,由于这个文档中的书签是多级的,我们再选中界面下方的“修改操作包含未选中的内部书签”复选框,这样我们就不需要将书签全部展开,就能选中修改内部的子级书签了。

选好需要修改页码的书签后,我们按一下键盘上的“-”减号键,之后,选中书签的页码就会全部减一,如下所示。

再点击一下书签,除了“封底”书签之外,其它书签都指向正确的页面了。在这个文档中,封底是第982页,我们点击“封底”对应的页码,在数字输入框中输入982。

这样,“封底”书签的指向也改正了。

接下来,我们修正书签的跳转位置。

例如,点击“第一章 中医传统对……”书签,跳转位置如下图所示。

 正确的位置应该如下图所示。

造成这种现象的原因是新文档的页面尺寸比旧文档的页面尺寸大了许多,书签是从旧文档导出来的,跳转位置也是旧文档的位置,因此,跳转位置偏移明显。

查看页面上的尺寸可知,新文档第26页的高度是2980.5(见下图),而旧文档对应的页面是842.098,前者是后者的2980.5÷842.098=3.539倍。其它页面的情况与此类似。

 

因此,我们需要调整书签在页面内的跳转位置,乘以上述倍数(3.539),使之指向新文档的正确位置。

先用鼠标点击左边的书签栏,按Ctrl+A键选中所有书签,并选中“修改操作包含未选中的内部书签”复选框。

再将鼠标移到任何一个书签的文本上,按鼠标右键,弹出上下文菜单,在菜单上选择“更改目标页面坐标”子菜单的“更改坐标”命令,如下图所示。

程序会弹出一个对话框。

在对话框的坐标调整量中,填入上面计算页面尺寸倍数所得的数字“3.539”,再选中“比例调整(原坐标乘以调整量)”单选框,点击“确定”按钮。

这样,所有选中书签的跳转位置都会被乘以3.54。

我们再点击书签测试一下。好了,跳转到正确的位置了。

最后一步,点击书签栏第二个按钮“保存PDF文件”,将PDF文档保存下来。书签就完成迁移了。

如果我们在制作新PDF文档时,稍微留意一下,把页面顺序和尺寸设置成旧文档一样,就不需要调整书签的跳转位置了。

posted on 2024-12-01 10:54  PDF补丁丁  阅读(365)  评论(1编辑  收藏  举报