Python中使用pdfkit移除书签及设置边距问题求助
解决方案
问题1:移除PDF书签
wkhtmltopdf默认会根据页面标题、H标签自动生成书签(大纲),要完全禁用这个功能,只需在options字典中添加'no-outline': None参数——该参数对应wkhtmltopdf命令行的--no-outline选项,直接关闭大纲生成。
问题2:修复边距设置无效的问题
- 修正代码语法错误:你的
path_file变量缺少开头的单引号,会导致代码运行报错,先补上:path_file = 'c:/myfile/save/path/webpage.pdf' - 调整边距单位与数值:px单位在部分环境下兼容性较差,建议换成英寸(in)或毫米(mm);另外2px的边距过小,可能被wkhtmltopdf的最小边距限制覆盖,可尝试设置更合理的数值,比如
0.1in或2mm。 - 确认参数拼写:确保
margin-left和margin-right的键名拼写正确,pdfkit会直接将这些键映射到wkhtmltopdf的对应参数。
修改后的完整代码
import pdfkit path_wkhtmltopdf = r'C:/Program Files/path/to/wkhtmltopdf.exe' config = pdfkit.configuration(wkhtmltopdf=path_wkhtmltopdf) options = { 'page-size': 'LETTER', 'margin-top': '24px', 'margin-right': '2mm', 'margin-bottom': '24px', 'margin-left': '2mm', 'no-outline': None # 禁用书签 } url = 'https://www.cal_info.ca.gov/mypath' path_file = 'c:/myfile/save/path/webpage.pdf' pdfkit.from_url(url, path_file, configuration=config, options=options)
额外建议
如果上述调整后边距仍不符合预期,建议更新到最新版wkhtmltopdf——旧版本可能存在参数兼容性问题,更新后能解决不少已知的渲染bug。
内容的提问来源于stack exchange,提问作者Shane S
相关产品推荐
相关产品推荐

