#python-3.x #pdf
#python-3.x #PDF
Вопрос:
Я прочитаю более 130 файлов Excel в виде строк строк на Python. Я хочу записать каждую строку в PDF. Весь файл Excel представляет собой всего 1 альбомный лист формата А5. Я могу легко печатать PDF-файлы в командной оболочке.
Я импортирую PyPDF2
Я могу создать PDF или серию PDF-файлов с:
with open(path fileName, 'wb') as out:
pdf_writer.write(out)
но я слишком туп, чтобы понять, как записать строку в этот PDF. Если я пытаюсь записать строковую переменную, я просто получаю ошибки. Если я преобразую строку в байты, я просто получаю ошибки.
Как мне вставить строку в мой PDF-файл?
string = ‘любая старая строка’
Комментарии:
1. Из документации: pythonhosted.org/PyPDF2/PdfFileWriter.html класс PyPDF2.PdfFileWriter — этот класс поддерживает запись файлов PDF с учетом страниц, созданных другим классом (обычно PdfFileReader).
2. Если бы я только мог это понять! Я читал это весь день! Я могу легко создавать и записывать текстовые файлы, но PDF-файлы ускользают от меня!
Ответ №1:
Я знаю, что вы просили PyPDF2
, но более простой подход с FPDF
:
# https://pyfpdf.readthedocs.io/en/latest/
import fpdf #pip3 intall fpdf
pdf = fpdf.FPDF(format='letter') #pdf format
pdf.add_page() #create new page
pdf.set_font("Arial", size=12) # font and textsize
pdf.cell(200, 10, txt="your text", ln=1, align="L")
pdf.cell(200, 10, txt="your text", ln=2, align="L")
pdf.cell(200, 10, txt="your text", ln=3, align="L")
pdf.output("test.pdf")
Как вы упомянули, вы не понимаете, pyPdf doc так хорошо, что я думаю FPDF
, это хорошее начало.
PyPDF2 больше подходит для чтения и объединения файлов pdf.
Если вам действительно нравится использовать PyPDF2, вы могли бы создать текст canvas
.
Комментарии:
1. Спасибо, я получу fpdf! Выглядит просто! Мне нужен простой!
Ответ №2:
PyPDF2
это очень хороший выбор, когда вам нужно изменить существующие PDF-файлы, но для этого требуется знание формата PDF, когда вам нужно создать PDF с нуля.
Вы можете рассмотреть возможность использования другой библиотеки для этой задачи, т.е. pdfkit
(https://github.com/JazzCore/python-pdfkit ), примерная программа:
import pdfkit
pdfkit.from_url('http://google.com', 'out.pdf')
pdfkit.from_file('test.html', 'out.pdf')
pdfkit.from_string('Hello!', 'out.pdf')
Комментарии:
1. Спасибо, я попробую это! С другой стороны, запись строки в PDF не может быть ракетостроением. Если я смогу сделать это 1 раз с помощью Pypdf2, тогда я буду знать. Есть ли у вас эти «более глубокие знания»?
2. Посмотрите на формат PDF en.wikipedia.org/wiki/PDF . Вы можете создать страницу, преобразовать ее в stream и записать с помощью PdfFileWriter, и это тоже будет работать.