给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. 将自己的SpringBoot应用打包发布到Linux下Docker中

    目录 将自己的SpringBoot应用打包发布到Linux下Docker中 1. 环境介绍 2. 开始前的准备 2.1 开启docker远程连接 2.2 新建SpringBoot项目 3. 开始构建我 ...

  2. C#C/S框架演示 (MES系统)

    之前做过一个MES系统,发一些里面的截图.如果有朋友也用这个框架.或者有兴趣可以一起学习学习.使用开发工具VS2013,数据库SqlServer2008和Oracle11C.插件dev15.2,开发模 ...

  3. Python第3天

    字符串的魔法: expandtabs 可用来制表 当前输入是否为数字:isdecimal 最低级 isdigit 支持特殊数字 isnumeric 支持中文 标识符 isidentifier 是否存在 ...

  4. 搭建rancher节点

    1.centos 7.5 64 2.安装docker systemctl restart docker.service 注意:重启后才有 /etc/docker/文件夹 切换到这文件夹下再增加对应的d ...

  5. js常用身份校验规则

    js常用身份校验规则 var Validator = { extractBirth: function(id) { // 身份证提取出生年月 var re = null, split, year, m ...

  6. [Flutter] lib/main.dart:1: Warning: Interpreting this as package URI, 'package:flutter_app/main.dart'.

    lib/main.dart:1: Warning: Interpreting this as package URI, 'package:flutter_app/main.dart'. import ...

  7. hbase 存储结构和原理

    HBase的表结构 建表时要指定的是:表名.列族 建表语句 create 'user_info', 'base_info', 'ext_info' 意思是新建一个表,名称是user_info,包含两个 ...

  8. install linux on VM

    1. install完成之后,没有UI,可以在安装的向导过程中配置,先点击language,选择英语,然后再software那里 勾选,server with gui->KDE, 一定要在看到的 ...

  9. c++ protected 访问限定

    class A { protected: int mA; }; class B : public A{ public: void Func() { mA = 0; // ok A *a = this; ...

  10. Python常用字符编码(转)

    Python常用字符编码   字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Code for Information Interchange,美国信息交 ...