Помещение файла .png в PDF с использованием PyPDF2, но файл .png имеет неровные края на границах - PullRequest
1 голос
/ 03 апреля 2020

Это график, сгенерированный с помощью matplotlib:

pic

Он сохраняется в папке, а затем добавляется в PDF через библиотеку PyPDF2.

По непонятным причинам, несмотря на тот факт, что .png имеет высокое качество, в PDF он выглядит как неровный край (особенно вблизи дна). Они исчезают при увеличении, но в остальном они всегда рядом.

Я не могу понять, что я делаю неправильно. Я уже добавлял аналогичные изображения .png к слайдам PowerPoint, не имея этой проблемы!

Используя matplotlib, изображение сохраняется с использованием dpi = 1500:

fig1.savefig(saving_path, transparent = True,dpi=1500)

PyPDF2 используется для подключения .png, который выводится в файл PDF:

from reportlab.pdfgen import canvas

from PyPDF2 import PdfFileReader, PdfFileWriter

pdf_name = input("Enter the name of the template pdf file to be used (add a .pdf at the end): \n")

output_file = PdfFileWriter()
input_file = PdfFileReader(open(pdf_name, "rb"))

c = canvas.Canvas('image.pdf',pagesize=(2480, 3508)) 
c.drawImage(r'.\matplotlib_pic.png', 440, 600,130,155,mask=[250,255,250,255,250,255]) 

c.save()

image = PdfFileReader(open("image.pdf", "rb"))


input_file = PdfFileReader(open(pdf_name, "rb"))
page_count = input_file.getNumPages()
output_file = PdfFileWriter()

for page_number in range(page_count):
    input_page = input_file.getPage(page_number)
    input_page.mergePage(image.getPage(0))
    output_file.addPage(input_page)

with open("testimageprint.pdf", "wb") as outputStream:

        output_file.write(outputStream)

...