Очень было бы круто уметь генерировать PDF из обычной html страници с любимого сайта..
На самом деле это очень не сложно.
Нам понадобится python и Qt, ну и интернет, которым вы уже обзавелись рас это читаете…
Создаём будущий скрипт pdf.py и начинаем писать..
Первая строка для того чтобы можно было запускать так:
Пишем:
#!/usr/bin/python
Теперь импортим всё необходимое:
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *
Создаём приложение Qt:
app = QApplication(sys.argv)
Загружаем страницу:
web = QWebView()
web.load(QUrl(«https://how2.org.ua/»))
Конвертировать будем при помощи печати. Создадим принтер и будем «печатать» в pdf.
Готовим принтер:
printer = QPrinter()
Устанавливаем размер бумаги:
printer.setPageSize(QPrinter.A4)
Формат:
printer.setOutputFormat(QPrinter.PdfFormat)
имя файла:
printer.setOutputFileName(«file.pdf»)
Создаём функцию конвертирования :
def convertIt():
web.print_(printer)
print «Pdf generated»
QApplication.exit()
Соединяем событие окончания загрузки и вызов функции конвертирования:
QObject.connect(web, SIGNAL(«loadFinished(bool)»), convertIt)
После всего выходим в цикл приложения Qt:
sys.exit(app.exec_())
Вот и всё! Видите как просто. Можно конечно ещё написать обработчик параметров консоли. Чтобы каждый раз не ходить в файл, чтобы изменять url.. но об этом не в этот раз.
Целиком:
#!/usr/bin/python
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *
app = QApplication(sys.argv)
web = QWebView()
web.load(QUrl(«https://how2.org.ua/»))
#web.show() можно показать страницу
printer = QPrinter()
printer.setPageSize(QPrinter.A4)
printer.setOutputFormat(QPrinter.PdfFormat)
printer.setOutputFileName(«file.pdf»)
def convertIt():
web.print_(printer)
print «Pdf generated»
QApplication.exit()
QObject.connect(web, SIGNAL(«loadFinished(bool)»), convertIt)
sys.exit(app.exec_())