Как преобразовать веб-страницу в PDF с сохранением ее внешнего вида (точно так же, как в веб-браузере) и текста / ссылок?

24

Я ищу способ конвертировать веб-страницу в PDF, но сохранить внешний вид веб-страницы. Также сохраняющий текст веб-страницы (выбираемый), доступный для поиска [Создание снимка экрана для веб-страницы не сделает текст ни выбираемым, ни доступным для поиска].

Я ищу печать веб-страницы в формате PDF как есть (как в веб-браузере) без каких-либо манипуляций со стилем или выравниванием или без потери статических компонентов любой веб-страницы.

Это поможет сохранить автономные копии веб-страниц, которые легко читаются, комментируются и доступны для поиска.


Вам не нужно читать что-либо из нижеперечисленного (вопрос - это только вышеупомянутый раздел) , чтобы получить мой вопрос. Следующий раздел просто перечисляет то, что я получил путем исследований или ответов других людей, чтобы получить ответ на вопрос.

Результаты исследований (предложения, которые не решили мою проблему)

Результаты до сих пор при попытке найти решение (Все еще не работают в качестве решения для этого вопроса)

Я пробовал эти механизмы веб-печати в формате PDF, но все они манипулируют внешним видом страниц, даже более повреждая и делая некоторые трудно читаемые: ( Примеры скриншотов страниц включены в квадратные скобки)

  • Chrome [ Оригинал , Стили печати ( отключено | не отключено )]
  • Firefox [ Оригинал , Стили печати (Отключено p1 , p2 | Не отключено p1 , p2 )]
  • читабельность
    • Это упрощает веб-страницу (что хорошо для целенаправленного чтения - однако это не то, что я ищу). Я ищу для сохранения всех свойств позиций / стилей веб-страницы, как видно в веб-браузере, в формате PDF без каких-либо манипуляций.
  • Foxit Reader
  • NovaPDF
  • CutyCapt [ Original , Zoom Factor: 0.4 : Скриншоты, Вывод PDF]
    • Я добавлю ссылки после того, как решу проблемы с запуском программы на Windows "
  • wkhtmltopdf [ Original , Zoom Factor: 0.4 : Скриншоты , Вывод PDF ]
    • Он не поддерживает CSS3.

Все перехватывающие плагины скриншот веб - страницы изображения (например , похищение , Потрясающие Скриншот , FireShot , Firefox Скриншот Developer Tool , на всю страницу захвата экрана , Page2Images , веб-захвата , ...) не ответили на мой вопрос, потому что они не сохраняют текст и ссылки .

Scrible отлично подходит для сохранения веб-страниц, а также для дальнейших аннотаций и исследований, но, к сожалению, все еще в сети и без преобразования в формат PDF.

Есть два других вопроса о сообществе, похожих как-то на мой, однако, этот вопрос немного отличается, но с такими важными отличиями:

Еще похожие вопросы, где сохранение текста и ссылок не является обязательным (страницы в основном представлены в виде снимков экрана ):


Примечания

ОС: Windows 10

Омар
источник
Если вы хотите печатать из браузера, сначала вы должны отключить все таблицы стилей печати, чтобы сохранить внешний вид веб-страницы.
DavidPostill
См. Как получить WYSIWYP (распечатать то, что вы видите) в веб-браузере? , Смотрите мой ответ на этот вопрос.
DavidPostill
Затем вы можете распечатать с помощью CutePDF Writer .
DavidPostill
@DavidPostill Кажется, что отключение стилей печати либо не работает, либо не влияет на правильное отображение PDF в браузере. Примеры скриншотов были добавлены в отредактированную версию вопроса.
Омар
У меня был тот же вопрос сегодня, и эта страница помогла мне (хотя вывод был мобильной версией страницы): stackoverflow.com/questions/9540990/…
MicroMachine

Ответы:

7

Мы столкнулись с той же проблемой в проекте университета и смогли решить ее, используя

wkhtmltopdf

Нам вполне понравились возможности этого инструмента в командной строке. Мы также назвали это, используя код Python для отображения текущего состояния веб-страниц. Он имеет возможность доставки веб-страницы в формате pdf, обычно не идеальной для сохранения вида веб-сайта из-за форматирования страницы (например, A4), или в виде png (сохраняет вид страницы, но не ссылки)

Кроме того, мы использовали проект читабельности (для Python: pypi.python.org/pypi/readability-lxml), который достаточно хорошо удаляет рекламу и обнаруживает контент (например, для газетных статей и т. П.). Если вы просто хотите добавить дополнение или расширение для своего браузера, следующая реализация читабельности может удовлетворить ваши потребности:

https://www.readability.com/addons/

sebisnow
источник
К сожалению, wkhtmltopdf не сохранил позиции элементов страницы. Пример страницы : коэффициент масштабирования: 0,4: скриншоты , вывод PDF
Омар
Читаемость упрощает страницу (что хорошо - однако это не то, что я ищу). Мне нужно сохранить все свойства позиций / стилей страницы, как видно в веб-браузере, в формате PDF без каких-либо манипуляций.
Омар
Использовали ли вы опцию wkhtmltopng инструмента, так как png позиции должны быть в порядке (по крайней мере, намного лучше, чем в PDF-версии, где страница соответствует формату A4)
sebisnow
3

Внесение другого ответа для возможных пользователей. В Firefox раньше было дополнение «Печать страниц в PDF». Вы можете искать его последнюю версию 0.1.9.3 (работайте только с пре-квантовыми версиями).

В настоящее время это дополнение для Chrome и Firefox, которое работает довольно хорошо: PDFMage

  • Сохранить все изображения на странице
  • Создавайте текст как текст, а не как изображение, вы можете искать текст в сгенерированном PDF.
  • Сохранение гиперссылок
  • Имеет возможность сохранить длинную веб-страницу в виде одностраничного PDF-файла (чтобы изображения не разделялись на страницы)
nmhung1985
источник
2

Я действительно боролся с этим и попробовал большинство инструментов, которые упомянуты до сих пор. Наилучшие результаты, которые я получил, это использование безголового режима Chrome. Команда на MacOS будет выглядеть так:

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --headless --print-to-pdf=test.pdf http://127.0.0.1:8080

Лучший список параметров командной строки, который я нашел, был здесь .

Однако с этим были проблемы. В частности, мои страницы очень тяжелые на JavaScript, и я не мог заставить функцию печати ждать их завершения. Так что в моем выводе не было изображений.

Решение , которое я нашел был пакет nodeJS: chrome-headless-render-pdf. Это скудная документация здесь . Это работает, и это легко сценарий.

AlanObject
источник
2

У меня была такая же проблема, и я понял это через Chrome и с бесплатным драйвером принтера PDF995. Это часть пакета утилит PDF; веб-сайт издателя http://www.pdf995.com/ .

Тем не менее, я думаю, что любой веб-браузер и любой PDF-конвертер будет достаточно. Во всяком случае, вот что я сделал:

  1. выбрать все или выделить все.
  2. Щелкните правой кнопкой мыши на выделенном выделении или нажмите Ctrl + P (оба варианта дают несколько разные результаты, но вы получите тот же результат после завершения).

  3. Если вы щелкнули правой кнопкой мыши в 2., выделение (ярлык), нажмите «печать», и только все, что вы выбрали, будет в предварительном просмотре печати. Убедитесь, что вы изменили место назначения принтера на любой конвертер PDF, который вы решили использовать (PDF995 или другой).

  4. Нажмите «печать», и он сохранится в формате PDF.

  5. Если вместо этого вы нажали Ctrl + P в 2. (немного более длинный путь), нажмите «Дополнительные настройки» и прокрутите вниз до «Параметры».

  6. Нажмите на поле с надписью «Только выбор», и все, что я описал в ярлыке, последует.

  7. Не забудьте сменить место назначения принтера на любой конвертер PDF, который вы выберете (PDF995 или другой).

  8. Нажмите «распечатать».

user726167
источник
1

Если вы работаете в Linux, попробуйте этот небольшой инструмент командной строки CutyCapt , который зависит только от Qt и QtWebkit и экспортирует в PDF.

Ziggy Crueltyfree Zeitgeister
источник
0

Хотя это не совсем ваш запрос, как не в PDF, если цель состоит в том, чтобы просто сохранить автономную копию веб-страниц для последующего просмотра, сохранение именно как веб-страницы сделает именно это.

Большое предостережение заключается в том, что он создаст файл .html и папку со всем медиаконтентом на странице, а не в виде одного документа.

В Chrome и Firefox вы можете сохранить страницу, щелкнув по ней правой кнопкой мыши и выбрав «Сохранить как ...». В Internet Explorer вы можете сохранить ее в меню «Файл» -> «Сохранить как» (нажав клавишу «Alt» для отображения меню).

Pyheme
источник
Сохранение веб-страницы в формате .html сделает ее не аннотируемой. Итак, мне это нужно в формате PDF.
Омар
Неплохо подмечено! Только что вспомнил о расширении, которое позволяет легко отключать таблицы стилей, связанные с печатью. Быстрый поиск в Google привел меня к обсуждению, когда я впервые услышал о нем, на Superuser: Как получить WYSIWYP (распечатать то, что вы видите) в веб-браузере?
Pyheme
Я пытался сделать «Сохранить как» с помощью Chrome. Создает файл .HTML и папку. В файле .HTLM не хватало всего материала со страницы.
SherlockSpreadsheets
0

Попробуйте этот сервис. Создает PDF с веб-сайта, как вы видите его в браузере. https://lomotoh.com/ (я связан с этим сайтом)

Дэвид Херс
источник
Это сохраняет ссылки, но не выбираемый текст, что является обязательным требованием в вопросе.
fixer1234
Кажется, можно выбрать для некоторых сайтов. Я думаю, это зависит от того, какой тип шрифта использует сайт.
Дэвид Херс
0

По крайней мере, весь текст на некоторых страницах доступен для поиска, выбора, вырезания и вставки. Я попробовал на странице, вставленной роботом с помощью компьютера из текста и пикселя, и он превратил все это в изображение.

Я использовал эти вещи в течение многих лет. Я получаю лучшие результаты в Linux, перестраивая страницу в XX слове по вашему выбору и экспортируя результат в формате PDF. Я могу получить то, что хочу, за значительную цену. Из арки моего ограниченного использования ivin Сайт Дэвида Херса, размещенный на https://lomotoh.com/НЕ связан с этим сайтом), работает так же хорошо, как и любой другой, который я когда-либо использовал. Я буду моим источником информации о веб-страницах в формате PDF до тех пор, пока я не найду лучшее, или мне не придется платить слишком дорого из своего тонкого кошелька.

Гордон Кугер
источник