【问题标题】:Writing multiple matplotlib figures to PDF file将多个 matplotlib 图形写入 PDF 文件
【发布时间】:2022-01-12 03:39:01
【问题描述】:

我有一个 Matplotlib 图形列表,这些图形以 pdf 格式保存为字节并进行了 base64 编码。我希望使用以下代码将这些数字保存到 PDF 文件中:

with open('result.pdf', 'wb') as f:
    for fig in f_list:
        f.write(base64.b64decode(fig))

文件已成功创建,但似乎只有最后一个数字保存到文件中。我做错了什么??

【问题讨论】:

  • 你能像这样将 PDF 相互附加吗?你安装了poppler 之类的东西吗?如果你这样做了,你可以使用pdfunite
  • wb 覆盖文件。您可以附加ab,但这并不能解决您的问题。附加字节。如果您想将 页面 添加到 PDF,那么您需要一个知道如何执行此操作的 Python 库。
  • 如果列表中有多个无花果,它们都会被写入。你怎么知道只有一个?你用的是pdf阅读器吗?您可以对循环中解码数字的大小求和,看看是否与文件大小匹配。
  • 原来所有的数字都被写入文件,但只显示最后一页。我使用 PyPDF2 来解决这个问题

标签: python matplotlib


【解决方案1】:

正在将所有数字写入文件,但仅显示最后一页。我必须使用PyPDF2 来保存和显示所有页面。

实现如下:

from PyPDF2 import PdfFileReader, PdfFileWriter


writer = PdfFileWriter()
for fig in f_list:
    decoded_data = base64.b64decode(fig)
    reader = PdfFileReader(io.BytesIO(decoded_data)) # convert the figure to a stream object
    writer.addPage(reader.getPage(0))

with open('result.pdf', 'wb') as pdf_file:
    writer.write(pdf_file)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 2020-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-21
    相关资源
    最近更新 更多