给pdf添加导航目录

我们下载pdf书籍经常需要以下导航功能,没有导航的pdf根本看不下,接下来会分享我添加导航的方法



首先需要下载工具软件,链接:

http://t.cn/Exyss1G

打开软件,点击更改pdf:



在弹出的窗口按顺序操作:



导出完成后存放接口文件的文件夹会有这两个文件:



查看FreePic2Pdf_bkmk.txt。如果原pdf是有目录的,那么这里将有pdf的目录,否则就是空白。

我们用自己的pdf浏览器打开自己的原pdf文件(我用的是Adobe Reader),为方便叙述,我称pdf有标记页码和实际页码,标记页码是写在书上的页码,实际页码是该页在pdf中包括封面在内按顺序排列的页码,对于我下面用来演示的pdf文件,很幸运标记页码和实际的页码是一样的:



我们先给标记页码的第一页加导航目录试试效果,回到之前的FreePic2Pdf_bkmk.txt文件,

键入:1tab1,保存。



再回到以下页面:



弹出导入完成对话框后(注意原pdf文件要关闭掉,否则无法导入完成)再次打开原pdf文件:



已经可以看到导航目录并且可以跳转了,也就是说我们只要编辑好FreePic2Pdf_bkmk.txt文件就好了,tab键之前的内容为要显示的内容,tab键之后的就是实际页码了。但是,翻到书的目录页看看一共有379页,



我们不可能一页一页去键入,可以借助编程工具,笔者用的是Java:



将上面窗口的内容全部复制进FreePic2Pdf_bkmk.txt,同样的操作导入完成后,每个页码都可以跳转了,但是这样光有页码都不知道每页有什么内容,似乎没什么用啊?



我们可以给书中的目录页添加导航,找具体内容就通过目录页指示的页码跳转就好了,实体书也不就是通过看目录找内容嘛。

找到目录所在实体页码:



是英文字母的话,也没关系,编辑FreePic2Pdf_bkmk.txt为:



再次导入就可以看到目录并且可以跳转到目录页了:



这样子添加的导航目录页也可以在其他pdf阅读器看到,比如Chrome里看:

给pdf添加导航目录的更多相关文章

  1. C#/VB.NET 在Word转PDF时生成目录书签

    当我们在转换Word文档到PDF格式时,想保留Word文档的标题作为PDF书签,那么应该如何操作呢?那么本文将以C#及VB.NET代码为例,介绍如何在Word转PDF时生成目录书签.下面是具体方法和步 ...

  2. C# 给PDF添加图片背景

    C# 给PDF添加图片背景 今天要实现的是给PDF文件添加图片背景这个功能.PDF是近年来最流行的文件之一,无论是办公还是日常生活中都经常会用到,很多时候,PDF文件的背景色都是白色,看多了难免觉得累 ...

  3. wordpress模板学习之导航目录

    wordpress的导航目录分为三个部分,一开启,二配置:三使用 开启在functions.php,这个注册会保存在全局变量中,接下来在菜单配置中会看到 register_nav_menu( 'pri ...

  4. Asp.net MVC 如何向webform一样在IIS里添加虚拟目录

    相信很多用webform的程序猿都习惯性的使用虚拟目录的形式来对一个程序添加新的功能,那么在mvc下该如何来弄呢? 首先得有一个项目基层的项目,然后我们在这个项目的基础上新增一个功能模块,例如信息发布 ...

  5. Android Studio 添加Assets目录

    Android Studio 添加Assets目录: 法一: Since Android Studio uses the new Gradle-based build system, you shou ...

  6. iOS viewController添加导航条以及返回跳转选择

    给单独的viewcontroller或者在Appdelegate的主页面添加导航条,只要在viewcontroller上添加navigationcontroller,在添加此navigationcon ...

  7. .Net程序员学用Oracle系列(1):导航目录

    本人从事基于 Oracle 的 .Net 企业级开发近三年,在此之前学习和使用的都是 (MS)SQL Server.未曾系统的了解过 Oracle,所以长时间感到各种不习惯.不方便.怪异和不解,常会遇 ...

  8. X-003 FriendlyARM tiny4412 uboot移植之添加相应目录文件

    X-003 FriendlyARM tiny4412 uboot移植之添加相应目录文件 <<<<<<<<<<<<<< ...

  9. 【Android Studio安装部署系列】十五、Android studio添加Assets目录

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 Android Studio新建项目时是没有assets目录,需要自己手动创建. app右键——New——Folder——Asset ...

随机推荐

  1. 深入理解Java虚拟机读书笔记6----早期(编译期)优化

    六 早期(编译期)优化   1 “编译期”的含义     · 可能是指一个前端编译器把*.java文件转变成*.class文件的过程,前端编译器如:Sun的Javac.Eclipse JDT中的增量式 ...

  2. ie8兼容性总结

    DOCTYPE 首先需要确保你的HTML页面开始部分要有DOCTYPE声明.DOCTYPE告诉浏览器使用什么样的HTML或XHTML规范来解析HTML文档,具体会影响: 对标记.attributes ...

  3. django之关联field 描述子是如何实现的

    model定义时,每个field都是一个类属性,一个对象.在生成类时,属性有contribute_to_class的方法,会调用该方法. m2m field,它会先调用自己的contribute_to ...

  4. idea中git常见使用场景

    工作中多人使用版本控制软件协作开发,常见的应用场景归纳如下: 假设小组中有两个人,组长小张,组员小袁 场景一:小张创建项目并提交到远程Git仓库 场景二:小袁从远程Git仓库上获取项目源码 场景三:小 ...

  5. redis hashmap数据结构分析

    说明一点:redis的hash中每一个key都是一个单独的hash表,field是hash表中的key,value是hash表中的value: //redis中hash数据结构为:key-field- ...

  6. [Go] 开始试探一门新语言的五点思考 - Golang

    1.如果在其他语言环境中写的代码很烂,那么换一门语言很可能情况更糟,因为是涉及到基本功.工程能力和心思逻辑. 2.一定要了解语言解决的问题(比如:多核并发机制性能高.省机器.简洁易学.资料少),优势是 ...

  7. CamStar insitexmlclient重新封装为.net Core类库

    工作原因经常使用camstar的 InsiteXMLClient类库做二次开发,但是只能在4.X环境下使用,对于日益繁荣的.net core生态,花费了些时间把原有的类库重新封装为.net core ...

  8. 吴裕雄 python 数据可视化

    import pandas as pd df = pd.read_csv("F:\\python3_pachongAndDatareduce\\data\\pandas data\\taob ...

  9. MySql中SQL语句与其他数据库不一样的地方

    目前发现的mysql与其他数据库如SqlServer.Oracle不同的地方 mysql中的注释(--)后要多加一个空格才生效 mysql中查询条件的字符串可以是双引号 mysql中查询条件的字符串不 ...

  10. OOP的概念和基础特性

    OOP是面对对象程序设计,是一种程序设计范型,同时也是一种程序开发方法.它将对象作为程序的基本单元,将程序和数据封装其中,以提高程序的复用性.灵活性.可扩展行. OOP的核心思想是对象.封装.可复用性 ...