python利用wkhtmltopdf生成的pdf,并添加水印、书签 |
您所在的位置:网站首页 › pdf书签转化为目录 › python利用wkhtmltopdf生成的pdf,并添加水印、书签 |
近些日子做了一个将html转pdf的活计,各中原因吧,也是大费周折,前面有两篇文章已经介绍了些许过程。这里就来絮叨一下目录、封面及添加水印后书签消失的解决办法。(办法有点笨,且当一种思路吧。) 工具:python3、pdfkit模块、wkhtmltopdf 1.生成目录配置 关于pdfkit配合wkhtmltopdf工具使用,官方也有介绍(也是最简单的介绍)Python pdfkit包_程序模块 - PyPI - Python中文网 在pdfkit的api方法中包含(url, output_path, options=None, toc=None, cover=None, configuration=None, cover_first=False)等参数,其中toc便是目录配置。 toc = { 'xsl-style-sheet': 'catalog.xsl', }具体其他目录配置请参考wkhtmltopdf文档 其中‘xsl-style-sheet’对应xsl文件为生成目录使用,可调整目录样式。 catalog.xsl文件内容: 目录 h1 { text-align: center; font-size: 20px; font-family: arial; line-height: 30px; } div {border-bottom: 1px dashed rgb(200,200,200);} span {float: right;} li {list-style: none;} ul { font-size: 20px; font-family: arial; line-height: 30px; } ul ul {font-size: 100%; } ul {padding-left: 0em;} ul ul {padding-left: 1em;} a {text-decoration:none; color: black;} 目录 added to prevent self-closing tags in QtXmlPatterns2.生成封面配置 同样的封面也是单独的cover配置,cover对应封面页面的url 例如:cover='https://www.baidu.com' 因为要生成目录,所以封面要置顶,cover_first参数就要设置为True。 3.添加水印后添加书签(该方法只能定位到书签对应页,不能准确定位到书签位置) 因为本次采用的添加水印方式是,首先生成水印pdf,然后利用PyPDF2模块生成的带水印pdf(很容易搜到方法的介绍) 生成后pdf原本的书签会消失,只能后期处理添加,那下边就简单介绍下思路方法: 1)首先在生成无水印pdf之前,在options参数中添加配置项'--dump-outline': '导出文件名.xsl'。该文件即为目录导出文件 2)读取文件,采用正则表达式匹配出目录中标题及对应页码 pat_title = re.compile(r' |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |