Преобразование 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.

Другие вопросы по тегам