回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在学习如何使用“自动处理无聊的东西”这本书来编程,但是我在第13章中遇到了一个障碍。
合并多个PDF,但从除第一页外的所有PDF中省略标题页</p>
<p>在书中,他们通过循环PDF来实现这一点,然而,在研究PyPDF2模块时,我发现“pages”选项是一个更简洁的解决方案。一、 然而,很难让这个工作。在</p>
<p>先别看是不是Python之类的。我还没有学过类;-)在这本书之后,我计划从类、对象、装饰器、*args和**kwargs;-)</p>
<p>我需要帮助我的代码片段的最后一行。在</p>
<p>我的代码:</p>
<pre><code> for fn_PdfObjects in range(len(l_fn_PdfObjects)):
if fn_PdfObjects != 0:
break
else:
## watermark the first sheet
addWatermark(l_fn_PdfObjects[fn_PdfObjects])
watermarkedPage = PyPDF2.PdfFileReader(open('watermarkedCover.pdf', 'rb'))
# the 'position = ' is the page in the destination PDF it will receive
tempMergerFile.merge(position=fn_PdfObjects, fileobj=watermarkedPage)
tempMergerFile.merge(position=fn_PdfObjects+1, fileobj=l_fn_PdfObjects[fn_PdfObjects],pages='0:')
</code></pre>
<p>在查看模块时,我发现:
src:<a href="https://pythonhosted.org/PyPDF2/PdfFileMerger.html" rel="nofollow">https://pythonhosted.org/PyPDF2/PdfFileMerger.html</a></p>
<blockquote>
<p>merge(position, fileobj, bookmark=None, pages=None, import_bookmarks=True)</p>
<p>pages – can be a Page Range or a (start, stop[, step]) tuple to merge only the specified range of pages from the source document into the output document.</p>
</blockquote>
<p>我也发现了一些关于佩奇范围的信息,但不管我怎么努力,我都无法让它发挥作用:
src:<a href="https://github.com/mstamy2/PyPDF2/blob/master/PyPDF2/pagerange.py" rel="nofollow">https://github.com/mstamy2/PyPDF2/blob/master/PyPDF2/pagerange.py</a></p>
^{pr2}$
<p>接收错误如下:
<code>TypeError: "pages" must be a tuple of (start, stop[, step])</code></p>
<pre><code> Traceback (most recent call last):
File "combining_select_pages_from_many_pdfs.py", line 112, in <module>
main()
File "combining_select_pages_from_many_pdfs.py", line 104, in main
newPdfFile = mergePdfFiles(l_PdfObjects)
File "combining_select_pages_from_many_pdfs.py", line 63, in mergePdfFiles
tempMergerFile.merge(position=fn_PdfObjects+1, fileobj=l_fn_PdfObjects[fn_PdfObjects],pages=[0])
File "/home/sybie/.local/lib/python3.5/site-packages/PyPDF2/merger.py", line 143, in merge
raise TypeError('"pages" must be a tuple of (start, stop[, step])')
</code></pre>
<p>我能找到的是:</p>
<pre><code># Find the range of pages to merge.
if pages == None:
pages = (0, pdfr.getNumPages())
elif isinstance(pages, PageRange):
pages = pages.indices(pdfr.getNumPages())
elif not isinstance(pages, tuple):
raise TypeError('"pages" must be a tuple of (start, stop[, step])')
</code></pre>
<p>src:<a href="https://github.com/mstamy2/PyPDF2/blob/master/PyPDF2/merger.py#L137" rel="nofollow">https://github.com/mstamy2/PyPDF2/blob/master/PyPDF2/merger.py#L137</a></p>
<p>提前感谢所有的帮助!在</p>