Для приготовления преобразования из HTML и URL в PDF и PS нам понадобится сам python, генератор htmldoc и плагин pyhtmldoc. (Я дал ссылки на свои форки, т.к. делал некоторые изменения, которые пока не удалось пропихнуть в оригинальный репозитории. Можно также воспользоваться готовым образом.)

Для начала импортируем плагин командой

from _pyhtmldoc import *

Для преобразования из HTML и URL в PDF и PS используем команды


pdf = file2pdf('file.html'.encode(), None) # преобразуем FILE в PDF
ps = file2ps('file.html'.encode(), None) # преобразуем FILE в PS
file2pdf('file.html'.encode(), 'file.pdf') # преобразуем FILE в PDF и сохраняем результат в файл
file2ps('file.html'.encode(), 'file.pdf') # преобразуем FILE в PS в PDF и сохраняем результат в файл
pdf = file2pdf(['file1.html'.encode(), 'file2.html'.encode()], None) # преобразуем несколько FILE в PDF
ps = file2ps(['file1.html'.encode(), 'file2.html'.encode()], None) # преобразуем несколько FILE в PS
file2pdf(['file1.html'.encode(), 'file2.html'.encode()], 'file.pdf') # преобразуем несколько FILE в PDF и сохраняем результат в файл
file2ps(['file1.html'.encode(), 'file2.html'.encode()], 'file.pdf') # преобразуем несколько FILE в PS в PDF и сохраняем результат в файл

pdf = html2pdf('Здравствуй, мир!'.encode(), None) # преобразуем HTML в PDF
ps = html2ps('Здравствуй, мир!'.encode(), None) # преобразуем HTML в PS
html2pdf('Здравствуй, мир!'.encode(), 'file.pdf') # преобразуем HTML в PDF и сохраняем результат в файл
html2ps('Здравствуй, мир!'.encode(), 'file.pdf') # преобразуем HTML в PS в PDF и сохраняем результат в файл
pdf = html2pdf(['Здравствуй, мир!'.encode(), 'До свидания, мир!'.encode()], None) # преобразуем несколько HTML в PDF
ps = html2ps(['Здравствуй, мир!'.encode(), 'До свидания, мир!'.encode()], None) # преобразуем несколько HTML в PS
html2pdf(['Здравствуй, мир!'.encode(), 'До свидания, мир!'.encode()], 'file.pdf') # преобразуем несколько HTML в PDF и сохраняем результат в файл
html2ps(['Здравствуй, мир!'.encode(), 'До свидания, мир!'.encode()], 'file.pdf') # преобразуем несколько HTML в PS в PDF и сохраняем результат в файл

pdf = url2pdf('https://google.com'.encode(), None) # преобразуем URL в PDF
ps = url2ps('https://google.com'.encode(), None) # преобразуем URL в PS
url2pdf('https://google.com'.encode(), 'file.pdf') # преобразуем URL в PDF в PDF и сохраняем результат в файл
url2ps('https://google.com'.encode(), 'file.pdf') # преобразуем URL в PS в PDF и сохраняем результат в файл
pdf = url2pdf(['https://google.com'.encode(), 'https://google.ru'.encode()], None) # преобразуем несколько URL в PDF
ps = url2ps(['https://google.com'.encode(), 'https://google.ru'.encode()], None) # преобразуем несколько URL в PS
url2pdf(['https://google.com'.encode(), 'https://google.ru'.encode()], 'file.pdf') # преобразуем несколько URL в PDF в PDF и сохраняем результат в файл
url2ps(['https://google.com'.encode(), 'https://google.ru'.encode()], 'file.pdf') # преобразуем несколько URL в PS в PDF и сохраняем результат в файл

Комментарии (4)


  1. Grey4ip
    22.08.2019 10:43

    Спасибо. Хотелось бы знать, какие "некоторые изменения" были сделаны?


    1. RekGRpth Автор
      22.08.2019 11:16

      дак посмотрите в репозитории мои коммиты


  1. Max_vst
    22.08.2019 13:59

    Заранее приношу прощения, если мой комментарий покажется негативным, я постараюсь быть максимально объективным и не высказывать своего мнения. Почему вы предлагаете использовать именно Вашу ветку htmldoc, а не оригинальную? Не могли бы Вы коротко пояснить, какие проблемы были решены вашими изменениями htmldoc? Не у всех есть время смотреть правки незнакомых людей будучи не уверенным в том, что в них есть интересные идеи? По какой причине Ваши правки пока еще не приняты в мастер ветку? Какие преимущества и недостатки Вы видите в данном способе преобразования документов? Можете ли Вы поделиться возникшими у Вас проблемами, которые не описаны в русскоязычном интернете, и как Вы смогли их побороть? Ведь если были пул-реквесты, наверняка были проблемы, и они уже Вами решены — это прекрасная история, дополните ею данную статью.


    1. RekGRpth Автор
      22.08.2019 14:22

      оригинальный htmldoc — это просто консольная прога, а я сделал из неё динамически подключаемую библиотеку, а также почистил от ненужных шрифтов, уменьшив размер потребляемой оперативки в два раза у ускорив в два раза загрузку