Конвертация веб страницы в pdf. Как сохранить веб-страницу в PDF-документ. Расширение Save as PDF

Если вы ежедневно работаете с огромными объемами интернет информации, и посещаете множество сайтов и интернет страниц, тогда вам знакомо то чувство, когда начинаешь незаметно тонуть в информации и хочется просто отключится. Но желательно отключится так, чтобы не потерять ценную информацию. Для этого существует сервис, позволяющий преобразовывать интернет страницы в документы PDF.

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

web2pdfconvert

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

Изучаем web2pdfconvert

Перейдем к описанию сервиса. Ссылка на web2pdfconvert выглядит вот так web2pdfconvert.com. Попав на главную страницу сервиса, у вас сразу же есть возможность конвертировать нужную вам интернет страницу в документ PDF. Для этого, в имеющееся поле необходимо поместить ссылку на нужную страницу в интернете и кликнуть по кнопке «Преобразовать в PDF».

Перед тем как преобразовывать страницу, вы можете кликнуть по кнопке «параметры» и указать настройки для будущего документа. Настроить параметры будущего документа могут только зарегистрированные пользователи.

Время создания документа зависит от веса преобразовываемой страницы. После того как сервис web2pdfconvert выполнит вашу просьбу и ваш файл PDF будет готов, вы сможете либо скачать его себе на компьютер, либо тут же просмотреть в Google Docs.

Расширение web2pdfconvert

Если сервис web2pdfconvert вам очень понравился и предлагаемые им функции вы хотели бы иметь всегда под рукой, тогда переходим в раздел PDF" , следующий в верхнем меню, после вышеописанного раздела Web PDF. В этом разделе, есть описание возможностей того, как вы можете установить расширение web2pdfconvert в своем браузере и иметь его всегда под рукой.

PDF по E-Mail

Следующим разделом в главном меню сервиса web2pdfconvert, является раздел PDF By E-Mail . Посетив его, вы обнаружите возможность преобразовывать интернет страницы в документы PDF с помощью электронной почты. Чтоб это произошло, вам достаточно ссылку страницы которую нужно преобразовать в PDF, отправить на специальный адрес электронной почты, указав нужную тему письма. После чего, в ответ вы получить необходимый вам PDF файл.

Условия использования web2pdfconvert

Последним разделом сервиса web2pdfconvert, является раздел Membership, или просто условия использования сервиса. Здесь вы сможете узнать какие ограничения имеются у бесплатного режима использования сервиса web2pdfconvert.

Интернет - это один из основных современных информационных ресурсов, откуда пользователи черпают информацию. Там размещены все последние новости, зарегистрировано множество ресурсов, которые призваны развлекать, поучать и даже иногда развращать пользователей.

Представление информации в формате PDF

Зачастую, многие люди пытаются сохранить на компьютер себе информацию и впоследствии использовать её в своих целях (чтение, печать, изменение). Формат, в котором информация представлена удобно и с помощью дополнительного ПО доступна к редактированию - PDF. В этом формате веб-страницу в полном объёме либо частично можно сохранить к себе на компьютер. В зависимости от браузера это можно делать либо с помощью плагинов, которые могут быть уже интегрированы в браузер, либо с помощью дополнительных конвертеров.

Рассмотрим несколько вариантов для наиболее популярных браузеров.

Принцип работы в Google Chrome

На сегодняшний день Google Chrome является одним из популярных интернет-браузеров. Положительный момент в использовании этого программного обеспечения заключается в наличии интегрированных плагинов. В нашем случае - это функция сохранять содержимое веб-ресурса сразу в формат PDF .

Чтобы активировать эту опцию, нужно открыть требуемую страницу, нажать либо сочетание клавиш CTRL + P или же следующую последовательность: управление Google Chrome - Печать. В результате откроется диалоговое окно, в котором будет предложено выбрать нужное устройство для печати. Однако, среди предложенных вариантов вместо принтера выбирается опция «Сохранить как PDF» и выбрать нужное место для хранения файла.

Принцип сохранения веб-ресурсов в браузере Mozilla Firefox

Отличие браузера Mozilla Firefox от браузера Google Chrome состоит в том, что Mozilla не имеет в своём распоряжении каких-то «родных» надстроек . Соответственно и нет возможности напрямую сохранить страницу без каких-то дополнительных манипуляций и инсталляций. Благо для этого браузера есть плагин, который можно найти в свободном доступе и установить себе на рабочую станцию. Называется он Printpdf. Он благополучно добавляется в интернет-браузер и после доступен в использовании после перезагрузки Mozilla Firefox.

Чтобы сохранить веб-страницу с помощью этой надстройки, нужно выбрать в браузере меню «Файл»/«File» и далее выбрать пункт «Сохранить как PDF»/ «Print to PDF». Плагин Printpdf можно настроить таким образом, чтобы он сохранял отдельно любой блок сайта. Это производится в меню «Инструмент» - «Дополнения».

Сохраняем веб-ресурс через браузер Opera

Opera также является все ещё популярной программой, пусть и требующей повышенного объёма внутренних ресурсов компьютера (оперативной и видеопамяти). С каждым днём новые расширения появляются практически для каждого браузера. Opera не стала исключением . Надстройка Web to PDF является бесплатным конвертером, который также можно легко добавить в своё приложение и активно использовать. После добавления и перезагрузки на верхней рабочей панели появится кнопка, нажав на которую открытая веб-страница сохранится в нужном формате.

Работа с Microsoft Internet Explorer

Как же можно обойти стороной «старину» Explorer-а. Для него также в последнее время и плагины, но ничего подобного ещё не предусмотрено для сохранения в формате PDF. Но помочь в вопросе того, как сохранить страницу в pdf, легко поможет универсальных конвертер документов UDP. Это сторонняя утилита, которая воспринимается системой как принтер, но сохраняет веб-ресурсы в нужном формате. Работает она благополучно со всеми браузерами, в том числе и с Internet Explorer. Конечно, существует и масса других конвертеров, которые преобразуют документы в различные форматы, но именно UDP считается более совершенным и наиболее простым в работе. Сама программная составляющая совершенно не требовательна к ресурсам и вызывается операционной системой только во время преобразования.

Подведём итоги

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

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

уведомление

Услуга доступна в

уведомление

Для того, чтобы предотвратить чрезмерное для пользования услугой, Allinpdf имеет ограничение, используя по 60 раз в час.
Это условие может быть изменено.

URL

Введите или скопировать и вставить URL веб-страницы, которую вы хотите преобразовать в поле ввода выше
Пример: https://www.amazon.com

* Примечание. Веб-страницы, для которых требуется вход в систему, не могут быть преобразованы.

  • Как конвертировать веб-страницу в другой формат файла Allinpdf будет конвертировать веб-страницу в формат файла, который Вы выбираете, как только вы введите URL-адрес в поле ввода выше, и выбрать формат файла, который будет модернизированные к. Вы можете скачать преобразованный файл.
  • Высокое качество преобразования Allinpdf преобразует любые веб-страницы в формате, который вы хотите видеть в том же образе, что и исходная страница. Allinpdf обеспечивает высокий сервис качество преобразования файлов на рынке. Никаких других услуг, поддерживающих широкий спектр форматов файлов обеспечивают лучшую производительность, чем Allinpdf!
  • Быстрая и простая конвертация Это займет всего несколько кликов. Вы получите результат в течение нескольких секунд в нормальном состоянии сети Интернет.
  • Безопасный онлайн преобразования Загруженные файлы и данные автоматически и немедленно удаляются после использования сервиса. Преобразованные файлы были удалены системой автоматически в течение получаса после преобразования. Никто не имеет доступа к файлам, и это не остается никаких следов работы после того, как после удаления. Allinpdf обеспечивает защищенное обслуживание через SSL на основе зашифрованной передачи файлов.
  • Поддержка всех операционных систем Allinpdf это веб-приложение подается через веб-браузер. Allinpdf поддерживает все типы браузеров, включая IE, Chrome, Safari, FireFox и Opera. Allinpdf работает для любой используемой вами операционной системы - Windows, Linux или IOS.
  • Сберегать ресурсы вашего ПК Allinpdf представляет собой веб-сервис, который не использует ресурсы вашего компьютера. Все работы выполняются на нашем сервере.

    Не требует установки (например, ActiveX) не требуется.

Однако, если в закладках копить не только регулярно посещаемые сайты, но и новости-однодневки или информацию, которая может потом пригодиться, а может и не пригодиться, тогда этот раздел браузера со временем станет захламлён. И в нём трудно будет отыскать нужные закладки.

Для сохранения разовых публикаций существует масса альтернатив, например:

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

Правда, эти способы хороши лишь при условии доступа к сети Интернет. Но есть решения, позволяющие хранить веб-страницы на локальном пространстве компьютера, без интернета – это:

  1. оставить себе «на память» страничку в виде файла HTML или
  2. сохранить веб-страницу в PDF-документ.

О втором способе хотелось бы поговорить подробнее.

1. Почему стоит сохранить веб-страницу в PDF

Сохранение в PDF – оптимальный способ запечатлеть веб-страницу в таком виде, как она есть в данный момент, без каких-либо искажений.

Такой способ можно использовать, чтобы, например,

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

При сохранении в PDF-формате содержимое веб-страницы оптимально распределяется на листе с дефолтными параметрами, установленными – А4 с книжной ориентацией – для удобства просмотра в программах-ридерах. Дефолтные параметры в случае необходимости можно сменить на другие, более подходящие для ридера на том или ином устройстве.

Чем сохранение веб-страницы именно в PDF-формате отличается от других вариантов?

PDF – универсальный , его поддержка реализована практически на каждом устройстве, в каждой операционной системе.

Однако веб-страницу можно также

  • сохранить в HTML,
  • либо со странички .

PDF-формат выигрывает у HTML-формата, в первую очередь, своей универсальностью и обилием ридеров с разным функционалом.

А от скриншотов, которые можно сделать с веб-страниц, PDF-файл отличается тем, что его потом можно конвертировать в текстовый документ, если это понадобится. Известно, что конвертация из PDF в текст бывает не всегда возможна. Поэтому стоит использовать такие способы конвертации, которые изначально распознают текстовый материал сайтов, соответственно, как текст. Такие способы приводятся для операционной системы Windows ниже.

2. Печать в браузерах для сохранения в PDF-формате

Практически у всех веб-обозревателей (проще говоря, браузеров) есть собственная, встроенная функция печати страниц сайтов. И в рамках этой функции предусмотрена возможность сохранения в PDF.

2.1. PDF в Google Chrome

Рис. 1. Меню Google Chrome (три вертикальные точки) – Печать открытой веб-страницы

  • Кликаем меню «Настройка и управление Goggle Chrome» (1 на рис.1);
  • щелкаем «Печать» (2 на рис. 1).

После чего открывается «Печать» через браузер Google Chrome (рис. 2):

Рис. 3. Жмем «Изменить», чтобы найти в браузере Google Chrome опцию «Сохранить как PDF»

Появится диалоговое окно «Выбор места назначения», в котором надо обратить внимание на вкладку «Локальные места назначения»:

Что в браузере Google Chrome можно подправить для сохранения в PDF?

Если веб-страница в окне предпросмотра отображается некорректно, нужно раскрыть дополнительные настройки.

Рис. 5. Открываем дополнительные настройки Google Chrome для сохранения в PDF

И установить масштаб 100% или другой, более уместный для стиля публикаций конкретного веб-ресурса.

Рис. 6. Масштаб и параметры для PDF-формата в браузере Chrome

2.2. PDF в браузере Microsoft Edge

В операционной системе Windows 10 есть даже два таких механизма:

  1. описанный выше (через браузер Google Chrome) и
  2. реализуемый с помощью Microsoft Print to PDF.

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

Считается, что печать с участием виртуального принтера создаёт более информативную версию сохраняемой страницы сайта, с отображением её метаданных. Тогда как обычная функция сохранения в PDF в большей степени очищает страницу от лишних веб-элементов и смещает акцент на саму публикацию. Как лучше – дело каждого отдельного случая, однако часто оба эти механизма работают совершенно одинаково.

Как задействовать Microsoft Print to PDF? Для этого в Windows 10 открываем встроенный, штатный браузер Microsoft Edge:

Рис. 7. Значок браузера Microsoft Edge в Windows 10

Открыв Microsoft Edge, нужно

  • в меню «Параметры и другое» (1 на рис. 8)
  • выбрать пункт «Печать» (2 на рис. 8):

Рис. 8. Пункт «Печать» в Microsoft Edge

Если на компьютере не используется реальный принтер, тогда виртуальный PDF-принтер, как правило, установлен по умолчанию.

В противном случае кликаем по названию подключенного принтера. Для примера смотрите ниже на рис. 9, щелкаем по «HP LaserJet M1005». Откроется выпадающее меню, в котором выбираем из списка доступных вариантов печати опцию «Microsoft Print to PDF»:

Рис. 9. Меню Microsoft Edge, в котором можно выбрать реальный принтер или ссылку на «Microsoft Print to PDF»

В Microsoft Edge, кстати, механизм печати с участием PDF-принтера оптимально настроен. Здесь, в частности, по умолчанию выставлен параметр сжатия по размеру веб-страницы. Если прочие параметры не требуют коррекции, можно нажать внизу «Печать»:

2.3. PDF в браузере Mozilla Firefox

Оптимальные настройки PDF-принтера предусматривает и печать на борту Mozilla Firefox.

  • Кликаем кнопку «Открыть меню» (1 на рис. 11),
  • затем – «Печать» (2 на рис. 11):

Рис. 11. «Открыть меню» – «Печать» в Мозилле

В окне «Печать» можно задать параметры для сохранения веб-страницы в PDF (рис. 12):

  • количество необходимых страниц,
  • масштаб,
  • книжная или альбомная ориентация
  • и очень полезная опция «Упростить страницу», которая убирает лишние элементы навигации с веб-страницы. В итоге pdf-документ выглядит аккуратным, «причесанным».

Рис. 12. Сохранение странички в PDF-формате с помощью Мозиллы

Если в Мозилле, опция «Печать» есть название принтера (на рис. 13 – это HP LaserJet M1005), но отсутствует PDF, тогда надо

  • кликнуть по маленькому треугольничку (1 на рис. 13),
  • в выпадающем списке выбрать PDF (2 на рис. 13).

Рис. 13. Поиск PDF-формата в Мозилле

3. Два расширения для Гугл Хром и Мозиллы

Нештатный функционал браузеров может сохранять страницы сайтов в PDF-документы с двумя преимуществами:

  1. в один клик и
  2. с автоматически генерируемым названием файла.

Последнее, кстати, не умеет делать штатная, встроенная функция печати. В магазинах Google Chrome и Mozilla Firefox есть масса расширений для реализации в этих браузерах удобного способа конвертирования интернет-страниц в PDF, и два предложенных ниже – самые толковые из них.

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

3.1. Расширение PDF Mage

PDF Mage реализует на панели инструментов Chrome и Firefox кнопку, при нажатии на которую запускается процесс создания PDF из содержимого текущей вкладки. Расширение само генерирует имя файла в соответствии с названием публикации. Имена формируются кириллицей.

Если в браузерах Google Chrome или Firefox установить расширение PDF Mage, то появится значок, отмеченный цифрой 1 на рис. 14.

  • открываем браузер, а в нем веб-страницу,
  • кликаем по значку PDF Mage (1 на рис. 14),
  • смотрим, где именно, в какой папке будет сохранен pdf,
  • жмем «Сохранить» (2 на рис. 14).

Рис. 14. Сохраняем веб-страницу с помощью расширения PDF Mage в Google Chrome

3.2. Расширение Save as PDF

Save as PDF схоже с предыдущим расширением. После его установки

  • тоже появится кнопка (рис. 15) на панели инструментов Chrome и Firefox,
  • тоже работает в один клик,
  • тоже само задаёт файлам имена в соответствии с названиями публикаций. Но с той разницей, что имена генерируются латиницей.

Рис. 15. Расширение Save as PDF в Мозилле для сохранения в PDF-формате

4. Три онлайн-сервиса для сохранения в PDF

4.1. PDFcrowd.Com

Расширение Save as PDF, рассмотренное выше, разработано создателями веб-сервиса PDFcrowd.Com. К услугам этого сервиса можно прибегать при работе с браузерами, которые предусматривают установку расширений.

Принцип работы с сервисом прост: скопированную ссылку на интернет-страницу вставляем в специальное поле, кликаем «Convert to PDF» и указываем путь сохранения файла.

Рис. 16. Сервис PDFcrowd.Com для сохранения в pdf-файле

Подобных рассмотренному выше веб-сервисов в сети несколько, вот ещё парочка аналогов.

4.2. Сервис PDFmyurl.Com

На сайте сервиса PDFmyurl.Com вставляем адрес веб-страницы в поле по центру и кликаем «Save as PDF».

Рис. 17. Онлайн-сервис PDFmyurl.Com сохраняет страничку по ее адресу в PDF-файл

Имена файлов на выходе автоматически генерируются латиницей.

4.3. Сервис Htm2PDF.Co.Uk

Примерно так же поступаем, работая с веб-сервисом Htm2PDF.Co.Uk: вставляем в поле по центру адрес нужной страницы, жмём «Convert!», затем «Download your PDF».

Рис. 18. Онлайн-сервис Htm2PDF.Co.Uk по адресу страницы сохраняет ее в PDF-формате

Этот сервис также сам генерирует имена файлов, и также латиницей. У него есть также расширение для браузера Google Chrome, вот только работает оно через раз. Сам онлайн-сервис более стабилен в этом плане.

5. Горячие клавиши CTRL+P для всех PDF во всех браузерах

Чтобы сохранить какую-нибудь интернет-страницу в PDF, можно открыть ее в любом браузере и нажать на CTRL+P. Напомню принцип работы горячих клавиш: сначала нажимаем клавишу CTRL, затем не отпуская ее, одновременно жмем на клавишу P (на английском регистре). После этого на экране должно появиться окно “Печать”, похожее на то, которое приведено на рис. 2.

Если у Вас подключен принтер к компьютеру, то тогда в окне “Печать” придется кликнуть по кнопке “Изменить” (рис. 3), которая находится рядом с названием вашего принтера. Откроется меню (рис. 4), в котором надо поставить галочку напротив “Сохранить как PDF”.

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

Если Вам не нравится вариант с горячими клавиши, введите в поисковик запрос без кавычек наподобие такого:

  • “расширение сохранить в PDF Опера” или
  • “расширение сохранить в PDF Яндекс Браузер”.

Поисковик предложит Вам расширения, из них лучше выбирать варианты на официальных сайтах браузеров. Установка расширения в браузер и дальнейшая работа с ним описаны , все расширения устроены по похожему принципу.

  • Java ,
  • PDF
    • Tutorial

    Для меня было очень неожиданно то, что в хабе по Java практически нет информации по работе с PDF документами, поэтому я, из личного опыта, хочу на примере сервлета показать как легко можно любую web-страницу превратить в PDF документ.

    Преамбула:
    Напишем простой сервлет, который будет брать указанную нами web-страницу по HTTP протоколу и генерировать на её основе полноценный PDF документ.
    Используемые библиотеки:
    • Flying Saucer PDF - основная библиотека, которая поможет создать нам PDF документ из HTML/CSS
    • iText - библиотека, которая включена в состав той, что описана выше, но я не мог не включить ее в список библиотек, т.к. именно на основе неё будет генерироваться PDF документ
    • HTML Cleaner - библиотека, которая будет приводить наш HTML код в порядок

    Описания библиотек для Maven конфигурации (pom.xml)

    org.xhtmlrenderer flying-saucer-pdf 9.0.4 net.sourceforge.htmlcleaner htmlcleaner 2.6.1

    Формирование страницы:
    Одним из самый важных моментов является формирование страницы. Дело в том, что именно из самой страницы, посредством CSS, задаются параметры будущего PDF документа.

    Рассмотрим макет:

    page.jsp

    <%@ page import="java.util.Date" %> <%@ page import="java.text.SimpleDateFormat" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%! private SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); %> Пример

    Привет, хабр! Текущее время: <%=sdf.format(new Date())%>
    Новая страница!


    Здесь хочу остановиться на нескольких моментах. Для начала самое важное: все пути должны быть абсолютными ! Картинки, стили, адреса шрифтов и др., на всё должны быть прописаны абсолютные пути. А теперь пройдемся по CSS правилам (то, что начинается с символа @).
    @ font-face - это правило, которое скажет нашему PDF генератору какой нужно взять шрифт, и откуда. Проблема в том, что библиотека, которая будет генерировать PDF документ не содержит шрифтов, включающих в себя кириллицу. Именно поэтому таким образом придется определять ВСЕ шрифты, которые используются в Вашей странице, пусть это будут даже стандартные шрифты: Arial, Verdana, Tahoma, и пр., в противном случае Вы рискуете не увидеть кириллицу в Вашем документе.
    Обратите внимание на такие свойства как "-fs-pdf-font-embed: embed;" и "-fs-pdf-font-encoding: Identity-H;", эти свойства необходимы, их просто не забывайте добавлять.
    @ page - это правило, которое задает отступы для PDF документа, ну и его размер. Здесь хотелось бы отметить, что если Вы укажите размер страницы A3 (а как показывает практика, это часто необходимо, т.к. страница не помещается в документ по ширине), то это не значит, что пользователю необходимо будет распечатывать документ (при желании) в формате A3, скорее просто весь контент будет пропорционально уменьшен/увеличен до желаемого (чаще A4). Т.е. относитесь к значению свойства size скептически, но знайте, что оно может сыграть для Вас ключевую роль.
    @ media - правило, позволяющее создавать CSS классы для определенного типа устройств, в нашем случае это «print». Внутри этого правила мы создали класс, после которого наш генератор PDF документа создаст новую страницу.
    Сервлет:
    Теперь напишем сервлет, который будет возвращать нам сгенерированный PDF документ:

    PdfServlet.java

    package ru.habrahabr.web_to_pdf.servlets; import org.htmlcleaner.CleanerProperties; import org.htmlcleaner.HtmlCleaner; import org.htmlcleaner.PrettyXmlSerializer; import org.htmlcleaner.TagNode; import org.xhtmlrenderer.pdf.ITextRenderer; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLConnection; /** * Date: 31.03.2014 * Time: 9:33 * * @author Ruslan Molchanov ([email protected]) */ public class PdfServlet extends HttpServlet { private static final String PAGE_TO_PARSE = "http://localhost:8080/page.jsp"; private static final String CHARSET = "UTF-8"; @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { try { resp.setContentType("application/pdf"); byte pdfDoc = performPdfDocument(PAGE_TO_PARSE); resp.setContentLength(pdfDoc.length); resp.getOutputStream().write(pdfDoc); } catch (Exception ex) { resp.setContentType("text/html"); PrintWriter out = resp.getWriter(); out.write("Something wrong

    "); ex.printStackTrace(out); ex.printStackTrace(); } } /** * Метод, подготавливащий PDF документ. * @param path путь до страницы * @return PDF документ * @throws Exception */ private byte performPdfDocument(String path) throws Exception { // Получаем HTML код страницы String html = getHtml(path); // Буффер, в котором будет лежать отформатированный HTML код ByteArrayOutputStream out = new ByteArrayOutputStream(); // Форматирование HTML кода /* эта процедура не обязательна, но я настоятельно рекомендую использовать этот блок */ HtmlCleaner cleaner = new HtmlCleaner(); CleanerProperties props = cleaner.getProperties(); props.setCharset(CHARSET); TagNode node = cleaner.clean(html); new PrettyXmlSerializer(props).writeToStream(node, out); // Создаем PDF из подготовленного HTML кода ITextRenderer renderer = new ITextRenderer(); renderer.setDocumentFromString(new String(out.toByteArray(), CHARSET)); renderer.layout(); /* заметьте, на этом этапе Вы можете записать PDF документ, скажем, в файл * но раз мы пишем сервлет, который будет возвращать PDF документ, * нам нужен массив байт, который мы отдадим пользователю */ ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); renderer.createPDF(outputStream); // Завершаем работу renderer.finishPDF(); out.flush(); out.close(); byte result = outputStream.toByteArray(); outputStream.close(); return result; } private String getHtml(String path) throws IOException { URLConnection urlConnection = new URL(path).openConnection(); ((HttpURLConnection) urlConnection).setInstanceFollowRedirects(true); HttpURLConnection.setFollowRedirects(true); boolean redirect = false; // normally, 3xx is redirect int status = ((HttpURLConnection) urlConnection).getResponseCode(); if (HttpURLConnection.HTTP_OK != status && (HttpURLConnection.HTTP_MOVED_TEMP == status || HttpURLConnection.HTTP_MOVED_PERM == status || HttpURLConnection.HTTP_SEE_OTHER == status)) { redirect = true; } if (redirect) { // get redirect url from "location" header field String newUrl = urlConnection.getHeaderField("Location"); // open the new connnection again urlConnection = new URL(newUrl).openConnection(); } urlConnection.setConnectTimeout(30000); urlConnection.setReadTimeout(30000); BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(), CHARSET)); StringBuilder sb = new StringBuilder(); String line; while (null != (line = in.readLine())) { sb.append(line).append("\n"); } return sb.toString().trim(); } @Override public String getServletInfo() { return "The servlet that generate and returns pdf file"; } }


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

    В конечном итоге у Вас должен получиться примерно такой PDF документ.