Преобразование URL в PDF с использованием Python, Phantomjs / PyQt / Ghost
Я застрял с одной проблемой при создании PDF по ссылке. У меня есть https://example.com/export_html?parameter1=abc¶meter2=def, по этой ссылке будет создан файл HTML со всем содержимым, включая диаграммы, таблицы и т. Д.
Я пытаюсь извлечь это содержимое из вышеуказанного URL и сохранить его в файл PDF. Но проблема в том, что ссылка выше, загрузка всего контента занимает не менее 5-7 секунд, после загрузки всего контента мне нужно сохранить его как PDF.
Я попробовал функцию time.sleep(), чтобы загрузить все содержимое PDF, но это не сработало с PyQt4, пробовал несколько вещей с PyQt4, но у меня не сработало.
Даже попробовал с Ghost.py, ниже приведен код, который я пробовал:
from ghost import Ghost
from PySide.QtGui import QApplication, QImage, QPainter, QPrinter
#from Pyside import *
#import PySide
#from PyQt4.QtWebKitWidgets import *
class MyGhost(Ghost):
def capture_pdf(self):
printer = QPrinter(QPrinter.HighResolution)
printer.setResolution(300)
printer.setOutputFileName("QtPrinter.pdf")
printer.setPaperSize(QPrinter.A4)
printer.setOrientation(QPrinter.Landscape)
printer.setOutputFormat(QPrinter.PdfFormat)
painter = QPainter(printer)
self.main_frame.render(painter)
painter.end()
ghost = Ghost(viewport_size=(1280,960))
page, resources = ghost.open('https://www.google.co.in/search?q=ghost+py+save+as+pdf&oq=ghost&aqs=chrome.1.69i57j69i59j69i60l4.5364j0j1&sourceid=chrome&ie=UTF-8')
ghost.capture_pdf()
Но приведенный выше код не работает из-за ошибки атрибута. Может кто-нибудь предложить мне лучшее решение / подход?
Я полностью застрял с этим генерирующим PDF-файлом, мне нужно подождать, пока эта ссылка загрузится в течение 5-7 секунд, а затем сохранить его как PDF-файл. Буду признателен за любую оказанную помощь.
Заранее спасибо.
1 ответ
Вы можете использовать pdfkit. Это намного проще, чем использовать призрак. Установите его из pypi с помощью pip install pdfkit
, Использование ниже:
import pdfkit
pdfkit.from_url('https://www.google.co.in/search?q=ghost+py+save+as+pdf&oq=ghost&aqs=chrome.1.69i57j69i59j69i60l4.5364j0j1&sourceid=chrome&ie=UTF-8', 'out.pdf')
Для получения дополнительной информации, проверьте это. Вам также необходимо скачать исполняемый файл wkhtmltopdf.