你们知道怎么合并PDF并根据文件名生成目录/书签吗
- tiensjava用itext写一个,代码应该不超过50行。
- anetdogAdobe 自带的合并,合并出来就自动安装文件名生成书签了 iOS fly ~
- wsyx87930不可能的,我一开始也试了下用python直接拼pdf,结果看文件体积是都拼起来了,但是打开只显示一个文档的内容
百度了一下貌似是PDF文件头尾都有文档信息,还得修改这玩意才能让它最后完全显示。。
================================================================
看了一下原来这个itext也是一个pdf库啊我错了
- wsyx87930只装了地板推荐的Sumatra和pdf xchange view
实在不行只能向adobe投降了。。 - anetdogsumatra只看图很好用,小巧快速,标签页方式切换也方便,编辑功能太少了,比如单独旋转某一页的功能就没有,旋转就整个PDF一起转…… iOS fly ~
- tiens合并和书签我都用itext写过,不仅合并,还有删除每个文档的第一页。java的操作是相当直观的。不知pypdf的对象模型是什么样的,回头也可以试试。
- tilleul坛子里以前推荐过的pdfsam可以做到,很简单。
- storespace0930pdf补丁丁这个软件试试
- wsyx87930搞定了,感谢!
白折腾一天 - tiens回复1#wsyx87930
吃完晚饭试了一下PyPDF2:
import PyPDF2
def PDFmerge(pdfs,output):
pdfMerger = PyPDF2.PdfFileMerger(strict=False)
for pdf in pdfs:
pdfMerger.append(PyPDF2.PdfFileReader(pdf))
with open(output,'wb') as f:
pdfMerger.write(f)
def main():
pdfs = ['1.pdf','2.pdf']
output = 'combined_example.pdf'
PDFmerge(pdfs,output)
if __name__ == '__main__':
main()
这个代码调通了合并,书签还没加 - jmhqlw我一般都是Excel表格加老马的软件自己做书签目录
- tiens这个代码合并和书签都可以了:
import PyPDF2
def PDFmerge(pdfs,output):
pdfMerger = PyPDF2.PdfFileMerger(strict=False)
count = 0
for pdf in pdfs:
s = PyPDF2.PdfFileReader(pdf)
pdfMerger.append(s)
pdfMerger.addBookmark(pdf,count, None)
count = count + s.numPages
with open(output,'wb') as f:
pdfMerger.write(f)
def main():
pdfs = ['1.pdf','2.pdf']
output = 'combined_example.pdf'
PDFmerge(pdfs,output)
if __name__ == '__main__':
main() - wsyx87930我写的跟这大差不差,问题就是会报错
刚直接复制你的代码去跑了一下,提示:
待合并的PDF:1.pdf(271.78 KB)
2.pdf(236.06 KB)
用你的代码合并出来的PDF:combined_example.pdf(462.21 KB)
- wc2003java有个pdfbox
- tiens查了一下,网上也有反映这个问题的,最后是修改源码解决的。。。
https://github.com/mstamy2/PyPDF2/issues/438
看来是PyPDF2处理中文的固有毛病了,我试验的两个pdf不包含中文,就没出这种事
还是推荐一下java的iText,我试了一下从前的代码,合并这两个中文pdf没问题