Skip to content

ygcaicn/pdf_toc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pdf 目录挂载

命令行

$ ./toc.py --help
usage: toc.py [-h] sub-command  ...

positional arguments:
  sub-command 
    export      export toc of pdf
    mount       mount toc to pdf
    test        test toc file
    format      test toc file
    clean       clean toc

optional arguments:
  -h, --help    show this help message and exit

demo

导出pdf文件目录

导出后可利用文本编辑器进行处理。

 # 直接输出
 ./toc.py export ~/Downloads/1.pdf
 
 # 保存到文件,默认使用1.pdf.txt作为toc文件
 ./toc.py export ~/Downloads/1.pdf -o

编辑toc文件

toc文件标准格式为:

'\t'*N+'name'+'@'+page

注意缩进全部采用Table,不能使用空格代替!

例如:

第 1 章 内核引导和初始化@1
	1.1 到哪里读取引导程序@1
	1.2 引导程序@1
		1.2.1 入口_start@1
		1.2.2 标号 reset@2
		1.2.3 函数_main@4
		1.2.4 函数 run_main_loop@6
	1.3 内核初始化@8
		1.3.1 汇编语言部分@8
		1.3.2 C 语言部分@11
		1.3.3 SMP 系统的引导@12
	1.4 init 进程@15
第 2 章 进程管理@17
	2.1 进程@17
	2.2 命名空间@18
	2.3 进程标识符@20
	2.4 进程关系@21
	2.5 启动程序@23
		2.5.1 创建新进程@23
		2.5.2 装载程序@41

对于直接从pdf目录中复制出来的文本,可是使用format命令初步进行格式化。

例如:

第 1 章 Python 基础知识............................................................................................................................... 2
1.1 Python 综述........................................................................................................................................... 3
1.1.1 了解 Python 的特性及版本......................................................................................................... 3
1.1.2 安装 Python ................................................................................................................................. 5
1.1.3 使用 Python 原生编辑器............................................................................................................. 8
1.1.4 使用 Eclipse 开发环境 ................................................................................................................ 9
1.1.5 Python 编程入门——解决“斐波那契数列”问题..................................................................14
1.2 数据类型...............................................................................................................................................17
1.2.1 Number 类型...............................................................................................................................17
1.2.2 Sequence 类型簇.........................................................................................................................21
1.2.3 string 与 bytes .............................................................................................................................23
1.2.4 tuple 类型....................................................................................................................................30
1.2.5 list 类型.......................................................................................................................................31
1.2.6 set 类型 .......................................................................................................................................32
1.2.7 dict 类型......................................................................................................................................35
1.3 流程控制...............................................................................................................................................37
1.3.1 程序块与作用域.........................................................................................................................37
1.3.2 判断语句.....................................................................................................................................38
1.3.3 循环语句.....................................................................................................................................40
1.3.4 语句嵌套.....................................................................................................................................42
1.4 函数........................................................................................................................................................43
1.4.1 定义与使用.................................................................................................................................43
1.4.2 变长参数.....................................................................................................................................45
1.4.3 匿名函数.....................................................................................................................................47

使用format命令:

$ ./toc.py format ./xxx_toc.txt
上篇 Python 基础@-1
第 1 章 Python 基础知识@2
	1.1 Python 综述@3
		1.1.1 了解 Python 的特性及版本@3
		1.1.2 安装 Python@5
		1.1.3 使用 Python 原生编辑器@8
		1.1.4 使用 Eclipse 开发环境@9
		1.1.5 Python 编程入门——解决“斐波那契数列”问题@14
	1.2 数据类型@17
		1.2.1 Number 类型@17
		1.2.2 Sequence 类型簇@21
		1.2.3 string 与 bytes@23
		1.2.4 tuple 类型@30
		1.2.5 list 类型@31
		1.2.6 set 类型@32
		1.2.7 dict 类型@35
	1.3 流程控制@37
		1.3.1 程序块与作用域@37
		1.3.2 判断语句@38
		1.3.3 循环语句@40
		1.3.4 语句嵌套@42
	1.4 函数@43
		1.4.1 定义与使用@43
		1.4.2 变长参数@45
		1.4.3 匿名函数@47

format命令支持-o输出到文件,以及-i就地编辑。

另外可使用vsc手动进行正则替换处理toc文件。

常用替换正则:

  1. 替换...->@

src:\s*[\.]{2,}\s*

dst:@

  1. 二级目录缩进,例如:1.1

src:(^\d+\.\d+[^\.])

src:\t$1

  1. 三级目录缩进,例如:2.3.1

src:(^\d+\.\d+\.\d+[^\.])

dst:\t\t$1

挂载目录到pdf文件

# 默认使用1.pdf.txt作为toc文件, 可使用-t选项指定
# -i指定基准页
# -c指定默认展开几级目录,默认1,0全部展开
./toc.py mount ~/Downloads/1.pdf -i 10 -c 2

GUI

TODO: 待完成

Releases

No releases published

Packages

No packages published

Languages