pdfkit - есть ли способ изменить HTML перед преобразованием в pdf?


person Patterson Junior    schedule 04.08.2017    source источник
comment
Просто общая рекомендация, не могли бы вы получить HTML отдельно через URLLib (или что-то в этом роде), отредактировать модальное окно, а затем использовать pdfkit.from_string(HtmlString, 'out.pdf')? В качестве альтернативы, поскольку кажется, что PDFKit полагается на WebKit для создания макета рендеринга перед сохранением, вы можете просто использовать .replace(...) или что-то в этом роде, чтобы вставить style='display:none;' в модальный элемент. Для справки, у меня нет опыта работы с PDFKit, так что это просто снимки в темноте.   -  person Spencer D    schedule 06.08.2017
comment
Он работает, но не так, как я хотел, он теряет css и изображения страницы и создает pdf только с не внешним css. Это происходит потому, что from_string использует только текст страницы, а не ее ресурсы, так как from_url забирает все!   -  person Patterson Junior    schedule 07.08.2017
comment
Я случайно просматривал переполнение стека, а затем наткнулся на вопрос, который напомнил мне о вашей проблеме. Для этого вы можете использовать PhantomJS. Я не уверен, что это можно сделать без Selenium, но, возможно, это стоит изучить.   -  person Spencer D    schedule 09.08.2017
comment
есть несколько способов сделать это... вставьте внешний css в htmlstring; используйте BeautifulSoup для удаления модального окна; вставить css, который делает окно невидимым   -  person J. Win.    schedule 21.08.2018


Ответы (1)


pdfkit имеет открытый для чтения html-файл. Таким образом, вы можете сохранить html локально, внести любые изменения, а затем записать в файл PDF.

pdfkit.from_file(['file1.html', 'file2.html'], 'out.pdf')

or

with open('file.html') as f:
    pdfkit.from_file(f, 'out.pdf')
person philshem    schedule 26.11.2018