命令行界面,用于以用户友好的方式生成pdftk样式的书签文件,并(可选)输出具有指定大纲的pdf文件。
pdfoutliner的Python项目详细描述
pdfoutliner
命令行工具,用于以用户友好的方式生成^{
目录
为什么
而不是像pdftk
那样需要这样的toc文件
BookmarkBegin
BookmarkTitle: PDF Reference (Version 1.5)
BookmarkLevel: 1
BookmarkPageNumber: 1
BookmarkBegin
BookmarkTitle: Contents
BookmarkLevel: 2
BookmarkPageNumber: 3
要使用脚本创建具有结构化/嵌套大纲的pdf文件,您只需要一个如下所示的toc文件:
PDF Reference (Version 1.5) 1
Contents 3
或者更好,这个:
1 PDF Reference (Version 1.5) 1
1.1 Contents 3
安装
pip3 install pdfoutliner
示例用法
带PDF I/O:
pdfoutliner TOC --inpdf in.pdf -s START
其中
START
是pdf中p.1应该开始的页面,并且TOC
是目录文件的路径。
有关语法的详细信息,请参见TOC Format部分。
仅写入pdftk书签文件:
pdfoutliner TOC
有关更多选项,请参见Additional Options部分,或使用
pdfoutliner -h
目录格式
默认目录格式为
1 Heading 1
1.2 Subheading 3
1.2.3 Subsubheading 5
每行有一个编号(不一定是数字)、一个标题和一个页码,用空格字符分隔。
脚本将推断“1标题”是级别1,“1.1副标题”是级别2,依此类推。
或者,您可以specify the structure by indentation,或者keep the PDF flat。
通过副标题编号指定结构
这是默认选项。如前所述,格式为
1 Heading 1
1.1 Subheading 3
1.1.1 Subsubheading 5
脚本将根据编号推断结构。
如果您的toc文件看起来像
1. Heading 1
1.1. Subheading 3
1.1.1. Subsubheading 5
即,在每个编号后都有一个尾随点,您可以使用--style 1.2.
通过缩进指定结构
您还可以使用-d --indentation
缩进指定大纲的结构,后跟1个缩进单位的转义regex。
例如,假设我的toc看起来像
Heading 1
Subheading 3
Subsubheading 5
如果缩进的单位是2个空格,则使用
pdfoutliner TOC -d \\s\\s
脚本将从副标题缩进推断结构。
保持pdf水平
使用-k --keepflat
脚本将忽略任何编号或缩进。输出的pdf将有一个平面的、非结构化的大纲。
Heading 1
Subheading 3
Subsubheading 5
其他选项
usage: pdfoutliner [-h] [-o OUTMARKS] [-d INDENTATION] [-k]
[--style {1.2,1.2.}] [--outpdf OUTPDF] [--inpdf INPDF]
[-s START]
toc
optional arguments:
-h, --help show this help message and exit
bookmark I/O:
toc path to TOC file
-o OUTMARKS, --outmarks OUTMARKS
name for pdftk bookmarks file. default is original toc
name + "_outlined"
bookmark structure:
if both -d and -k are specified, -d will take precedence over -k
-d INDENTATION, --indentation INDENTATION
escaped regex for 1 unit of indentation
-k, --keepflat keep outline flat
--style {1.2,1.2.} heading style. with or without a trailing dot. default
"1.2", i.e., no trailing dot
PDF I/O:
--outpdf OUTPDF path to output PDF file. default is input pdf name +
"_outlined.pdf" in input PDF's directory
--inpdf INPDF path to input PDF file
-s START, --start START
page in the pdf document where page 1 is. default 1
依赖性
- pdftk
- 在MacOS 10.11+上,使用构建here
- (可选)Tabula
- 用于从pdf文件中提取可用的toc(以及一些附加的regex golfing)