簡體   English   中英

PyPDF2 writer 函數創建空白頁

[英]PyPDF2 writer function creates blank page

嘗試編寫一個函數來組合 PDF 文檔中的頁面。 流式輸出由於未知原因創建了一個空白頁面這是測試用例

from PyPDF2 import PdfReader, PdfWriter

dr = r"C:\GC"
ldr = dr + r"\12L.pdf"
writer = PdfWriter()

with open(ldr, "rb") as f:
    reader = PdfReader(f)
    page = reader.pages[0]
    writer.add_page(page)
    f.close()

with open(dr + r"\new.pdf", "wb") as output_stream:
    writer.write(output_stream)
    output_stream.close()

編輯:我對我的 PE 進行了一些更改並獲得了更多信息。

writer.write(output_stream)

引發錯誤

ValueError: I/O operation on closed file: C:\GC\12L.pdf

我通過保持閱讀器文件打開並將語法更改為建議進行了一些故障排除,但我仍然提出了錯誤。

由於您使用的是上下文管理器,因此您無需顯式調用.close() 嘗試這個:

from PyPDF2 import PdfReader, PdfWriter

dr = r"C:\GC"
ldr = dr + r"\12L.pdf"
writer = PdfWriter()

with open(ldr, "rb") as f:
  reader = PdfReader(f)
  page = reader.pages[0]
  writer.add_page(page)
  
  with open(dr + r"\new.pdf", "wb") as output_stream:
    writer.write(output_stream)

下面的代碼打開一個有 12 頁的 PDF 文件,獲取第一頁並將該頁面寫入一個新的 PDF 文件。

from PyPDF2 import PdfFileWriter, PdfFileReader

input_pdf = open('test.pdf', 'rb')
writer = PdfFileWriter()

reader = PdfFileReader(input_pdf)
in1 = writer.addPage(reader.getPage(0))
input_pdf.close()

output_pdf = open('new_test.pdf', 'wb')
writer.write(output_pdf)
output_pdf.close()
----------------------------------------
My system information
----------------------------------------
Platform:     Apple
OS Version:   macOS Catalina 10.15.7
Python Version: 3.9
PyPDF2 Version: 1.26.0
----------------------------------------

這是有效的。 不使用 open() as f 語法不會初始化 writer 對象的字段。 在寫入輸出之前關閉文件會產生錯誤。 我想文件必須打開,這樣對象才能指向實例。

from PyPDF2 import PdfFileReader, PdfFileWriter

dr = r"C:\GC"
ldr = dr + r"\pgSrc\12L.pdf"
rdr = dr + r"\pgSrc\12R.pdf"
r5 = dr + r"\pgSrc\pg5R.pdf"
writer = PdfFileWriter()
with open(ldr, "rb") as f:
  reader = PdfFileReader(f)
  page = reader.getPage(5)
  writer.addPage(page)
  with open(dr + r"\new.pdf", "wb") as outputStream:
    writer.write(outputStream)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM