【小工具】用js自动生成pdf目录索引

拿到一个没有目录的pdf,因为实在太不爽……所以想有没有办法自动化的方法可以生成目录QUQ,查了查果然acrobat有js的api可以提供,但是写完之后发现只能在acrobat上面能索引QUQ,其他的阅读器都不能用索引……只能看见目录……真真不爽!!(*  ̄︿ ̄)

先说下思路吧……挺傻的……一般当当这样卖书的地方都有书的目录和页码,这个很好找的嘛。然后copy到txt里,先用python把它变成数组(因为懒所以都是一级的目录),然后用js脚本添加数组做成目录。

python:

#usr/bin/env python
#-*- coding:utf-8 -*-

import re, sys

reload(sys)
sys.setdefaultencoding('utf8')

filename = "catagory.txt"
output = "result.txt"

file = open(filename, "r")
out = open(output, "w")

ret = "["
pat = re.compile(r'(.*?)(\d{1,4}$)')
for line in file.readlines():
    try:
        tmp =  re.findall(pat, line)
        print tmp[0][0], tmp[0][1]
        ret += "['" + tmp[0][0].strip() + "', " + tmp[0][1] + "],\n"
    except:
        ret += "['" + line.strip() + "'],\n"

ret += "]"
out.write(ret)

file.close()
out.close()

简直so easy有没有……我觉得我把python真的是当工具用的……

然后js代码,这个是官方的文档上直接有的:

function createBookMark(parent){
	for(var i=0;i1)
		parent.createChild(arr[i].[0], "this.pageNum=16+"+arr[i].[1]); //这个16是pdf中的页码和书目原来页码的偏移量
		else parent.createChild(arr[i].[0]);
	}
}
createChild(name, script)。第一个是书签的名字,第二个是对这个书签做什么,然后可以把pageNum设置成目标页码。

我做的是白帽子讲web安全……大致出来结果是这样的:

【小工具】用js自动生成pdf目录索引_第1张图片

但是只能在acrobat里面用QUQ,嘤嘤嘤

你可能感兴趣的:(前端!。,javascript)