【问题标题】:PyPDF2 give me blank pages in merged PDFPyPDF2 在合并的 PDF 中给我空白页
【发布时间】:2020-08-30 07:45:13
【问题描述】:

我早些时候在这里提出了这个问题: pypdf2-merging-pdf-pages-issue

我现在已经走了很长一段路,现在可以通过 Pandas 从 Excel 文档创建我的 PDF 文件到 PyPDF2。

以及我现在必须每页的页数。 PDF格式。 但是,我现在的问题是我合并的 PDF 文件现在是空白的。

如果我进行调试,那么我可以在我的第二个循环中看到它,其中包含变量“paths”到我的物理 PDF 文件的正确路径。 但是当他们进来时:

            with path.open('rb') as pdf:
                pdf_writer.append(pdf)

然后突然一个额外的“”进入路径,以便可以将路径命名为c:\ users \ ...。然后突然将其称为c:\ users \ ...

不知道这是否是导致文件无法正确打开和阅读,然后合并为一个 PDF 文件的原因。

希望有人可以指导我,因为 python 对我来说是自学的。 或者以其他方式向我解释为什么我创建了一些合并的 PDF 文件,这些文件在 3 页上突然空白。

我的代码是:

import datetime             #Handle date
import pandas as pd         #Handle data from Excel Sheet (Data analysis)
import PyPDF2 as pdf2       #Handle PDF read and merging
from pathlib import Path    #Handle path

#Skip ERROR-message: Xref table not zero-indexed. ID numbers for objects will be corrected.
#import sys
#if not sys.warnoptions:
#    import warnings
#    warnings.simplefilter("ignore")

PDF_PATH = Path('C:/Users/TH/PDF/')
EXCEL_FILENAME = 'Resources/liste.xlsx'


def main():
    today = datetime.date.today()  # The date now
    next_week = today.isocalendar()[1] + 1  # 0=Year, 1=week
    resources = pd.read_excel(EXCEL_FILENAME, sheet_name='Ark1')

    for row in resources.itertuples():
        year = row.Aargang
        paths = [
            (PDF_PATH / row.Oevelse1).with_suffix('.pdf'),
            (PDF_PATH / row.Oevelse2).with_suffix('.pdf'),
            (PDF_PATH / row.Oevelse3).with_suffix('.pdf'),
        ]
        pdf_writer = pdf2.PdfFileMerger()
        for path in paths:
            with path.open('rb') as pdf:
                pdf_writer.append(pdf)
        with open(f'Uge {next_week} - {year} Merged_doc.pdf', 'wb') as output:
            pdf_writer.write(output)


if __name__ == '__main__':
    main()

【问题讨论】:

  • 为什么你的PDF_PATH 有正斜杠,而EXCEL_FILENAME 有反斜杠?
  • @anon01 已将 EXCEL_FILENAME 从 \ 更改为 /,但仍然存在同样的问题,空白 PDF 文件,并且 PDF 变量中的文件带有 dobble \\。 \ 是一个错误的输入...
  • 您可以打印resources 并将其添加到问题中吗?
  • @anon01 excel 表和 3 pdf。需要在不同的排序中合并wetransfer.com/downloads/…

标签: python pandas pdf pypdf2


【解决方案1】:

@anon01 谢谢

感谢/感谢 Sirius3。

这是关于 PyPDF2,如何使用它以及它的一些错误。 所以在编辑代码后它就可以工作了。

import datetime                     #Handle date
import pandas as pd                 #Handle data from Excel Sheet (Data analysis)
from PyPDF2 import PdfFileMerger    #Handle PDF read and merging
from pathlib import Path            #Handle path

#Skip ERROR-message: Xref table not zero-indexed. ID numbers for objects will be corrected.
#import sys
#if not sys.warnoptions:
#    import warnings
#    warnings.simplefilter("ignore")

PDF_PATH = Path('C:/Users/TH/PDF')
EXCEL_FILENAME = 'Resources/liste.xlsx'


def main():
    today = datetime.date.today()  # The date now
    next_week = today.isocalendar()[1] + 1  # 0=Year, 1=week
    resources = pd.read_excel(EXCEL_FILENAME, sheet_name='Ark1')

    for row in resources.itertuples():
        year = row.Aargang
        paths = [
            (PDF_PATH / row.Oevelse1).with_suffix('.pdf'),
            (PDF_PATH / row.Oevelse2).with_suffix('.pdf'),
            (PDF_PATH / row.Oevelse3).with_suffix('.pdf'),
        ]
        pdf_merger = PdfFileMerger()
        for path in paths:
            pdf_merger.append(str(path))
        with open(f'Uge {next_week} - {year} Merged_doc.pdf', 'wb') as output:
            pdf_merger.write(output)
        pdf_merger.close()


if __name__ == '__main__':
    main()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-26
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    • 1970-01-01
    • 2018-11-23
    • 2023-03-12
    • 1970-01-01
    相关资源
    最近更新 更多