当前位置: 首页 > news >正文

linux 下怎样给pdf 文件加书签

linux 下怎样给pdf 文件加书签

对于没有书签的pdf文件,怎样给pdf加标签呢? 以方便阅读.
以前总是要借助windows下pdf 工具, 叫什么来者? 忘了
记得是编辑一个用tab表示目录级别的文本文件,
有一种直观的感觉,大目录下嵌套着小目录 ..., 然后导入到文件中

linux 下有没有这种工具呢? 有,是pdftk,
它的标签文件与windows 的不同, 它用数字直接给出目录的级别(BookmarkLevel).
并且每一个标签用4行来描述其属性.看一下下面的例子
----------------------------------------
1. pdftk 的标签格式
----------------------------------------
$ cat data.txt
BookmarkBegin
BookmarkTitle:第1章: 列表处理
BookmarkLevel:1
BookmarkPageNumber:13
BookmarkBegin
BookmarkTitle:第2章: 求值实践
BookmarkLevel:1
BookmarkPageNumber:28
BookmarkBegin
BookmarkTitle:第3章: 如何编写函数
BookmarkLevel:1
BookmarkPageNumber:33

每个书签由4行内容来表达.

BookmarkBegin
BookmarkTitle: -- Your Title 1 --
BookmarkLevel: 1
BookmarkPageNumber: 10

BookmarkTitle, BookmarkLevel, BookmarkPageNumber (标签名称,级别,页号)意义还是很明确的,


下面说说linux下怎么导出,导入书签文件,编辑书签那是一个手工活.
1. 安装 pdftk
apt install pdftk


----------------------------------------
2.用pdftk 导出原来的书签
----------------------------------------
虽然内容可能是空的,但我们需要这个格式文件
pdftk my.pdf dump_data output data.txt

说明:
pdftk 用法可以man pdftk
其中 my.pdf 是你的pdf 文件
dump_data ,update_info,cat 等都是操作命令
dump_data 说明要导出书签文件
output 是关键字,后面跟输出文件名.
这个关键字的含义是指出输出文件名叫data.txt


----------------------------------------
3.编辑书签文件
----------------------------------------
编辑导出的数据文件 data.txt .

为加强认识,你可以先导出一个有标签的pdf 试试,就更能理解其含义了
然后你就编出一个像上面data.txt 格式的文件.
至于标签名称, 页号信息的获取, 大概需要从文件中的目录页中摘取了.
然后编辑成需要的格式

加入标签是主要的手工工作量
也是考察编辑器如何完成特定编辑任务的时候,不过,基础信息是必需要手敲的,然后...


----------------------------------------
4. 用pdftk 导入新书签
----------------------------------------
pdftk my.pdf update_info data.txt output new.pdf

说明:
update_info: 命令说明要更新标签文件,data.txt 是要导入的标签文件
output: 指明要生成文件, new.pdf 是新生成的文件名
结果: 导入书签data.txt并生成了new.pdf


用pdftk 抽取指定的页
例入提取目录列表, 以便识别其中的目录,页号信息
pdftk my.pdf cat 10-12 output 1.pdf
说明:
cat 10-12, cat 指明抽取命令,10-12指明抽取的页.
output 1.pdf, 输出文件名为1.pdf

http://www.lryc.cn/news/12089.html

相关文章:

  • [软件工程导论(第六版)]第2章 可行性研究(课后习题详解)
  • [软件工程导论(第六版)]第3章 需求分析(课后习题详解)
  • 基于分布鲁棒联合机会约束的能源和储备调度(Matlab代码实现)
  • ETL和数据建模
  • ccc-pytorch-回归问题(1)
  • 【JAVA八股文】框架相关
  • 二叉树的相关列题!!
  • Java设计模式 - 原型模式
  • 深度学习中的 “Hello World“
  • 购买WMS系统前,有搞清楚与ERP仓库模块的区别吗
  • 一文吃透 Spring 中的IOC和DI
  • 分布式任务处理:XXL-JOB分布式任务调度框架
  • 【源码解析】Ribbon和Feign实现不同服务不同的配置
  • 【webpack5】一些常见优化配置及原理介绍(二)
  • 力扣sql简单篇练习(十九)
  • 线段树c++
  • HTML+CSS+JavaScript学习笔记~ 从入门到精通!
  • LeetCode 430. 扁平化多级双向链表
  • 2.5|iot|第1章嵌入式系统概论|操作系统概述|嵌入式操作系统
  • 一文教会你使用ChatGPT画图
  • Java资料分享
  • yum/vim工具的使用
  • 内网渗透(三十九)之横向移动篇-pass the ticket 票据传递攻击(PTT)横向攻击
  • Unity性能优化之纹理格式终极篇
  • 【Spark分布式内存计算框架——Spark SQL】9. Dataset(下)RDD、DF与DS转换与面试题
  • Windows 环境下,cmake工程导入OpenCV库
  • 微服务架构设计模式-(16)重构
  • 数据结构:归并排序和堆排序
  • 基于easyexcel的MySQL百万级别数据的excel导出功能
  • js-DOM02