Если вы ежедневно работаете с огромными объемами интернет информации, и посещаете множество сайтов и интернет страниц, тогда вам знакомо то чувство, когда начинаешь незаметно тонуть в информации и хочется просто отключится. Но желательно отключится так, чтобы не потерять ценную информацию. Для этого существует сервис, позволяющий преобразовывать интернет страницы в документы PDF.
Конечно, можно хранить полезные интернет-страницы в закладках и получать к ним доступ, имея подключение к интернету. А можно просто, найдя полезную статью или заметку на каком либо сайте, тут же превратить ее в текстовый документ формата PDF и отправить на хранение в свою электронную библиотеку на жестком диске. И, при необходимости или возможности, независимо от того подключен ваш компьютер к интернету или нет, просмотреть интересную и полезную для вас информацию, открыв сохраненную интернет страницу в файле PDF. Я с этим сервисом столкнулся совершенно случайно и даже не подозревал, что существует возможность преобразовывать интернет страницы в документы PDF. Как только сервис, умеющий это делать попался мне на глаза, он был немедленно испробован и добавлен в закладки.
Называется этот сервис web2pdfconvert , он на английском языке, но проблем с этим возникнуть не должно, учитывая наличие во всех браузерах автоматического переводчика. Сервис web2pdfconvert можно использовать бесплатно, но в этом случае есть некоторые ограничения по использованию возможностей сервиса. Но если вы не собираетесь в промышленных масштабах преобразовывать интернет страницы в PDF файлы, то возможностей предоставляемых web2pdfconvert в бесплатном режиме вам должно хватить.
Перейдем к описанию сервиса. Ссылка на web2pdfconvert выглядит вот так web2pdfconvert.com. Попав на главную страницу сервиса, у вас сразу же есть возможность конвертировать нужную вам интернет страницу в документ PDF. Для этого, в имеющееся поле необходимо поместить ссылку на нужную страницу в интернете и кликнуть по кнопке «Преобразовать в PDF».
Перед тем как преобразовывать страницу, вы можете кликнуть по кнопке «параметры» и указать настройки для будущего документа. Настроить параметры будущего документа могут только зарегистрированные пользователи.
Время создания документа зависит от веса преобразовываемой страницы. После того как сервис web2pdfconvert выполнит вашу просьбу и ваш файл PDF будет готов, вы сможете либо скачать его себе на компьютер, либо тут же просмотреть в Google Docs.
Если сервис web2pdfconvert вам очень понравился и предлагаемые им функции вы хотели бы иметь всегда под рукой, тогда переходим в раздел PDF" , следующий в верхнем меню, после вышеописанного раздела Web PDF. В этом разделе, есть описание возможностей того, как вы можете установить расширение web2pdfconvert в своем браузере и иметь его всегда под рукой.
Следующим разделом в главном меню сервиса web2pdfconvert, является раздел PDF By E-Mail . Посетив его, вы обнаружите возможность преобразовывать интернет страницы в документы PDF с помощью электронной почты. Чтоб это произошло, вам достаточно ссылку страницы которую нужно преобразовать в PDF, отправить на специальный адрес электронной почты, указав нужную тему письма. После чего, в ответ вы получить необходимый вам PDF файл.
Последним разделом сервиса web2pdfconvert, является раздел Membership, или просто условия использования сервиса. Здесь вы сможете узнать какие ограничения имеются у бесплатного режима использования сервиса web2pdfconvert.
Интернет - это один из основных современных информационных ресурсов, откуда пользователи черпают информацию. Там размещены все последние новости, зарегистрировано множество ресурсов, которые призваны развлекать, поучать и даже иногда развращать пользователей.
Зачастую, многие люди пытаются сохранить на компьютер себе информацию и впоследствии использовать её в своих целях (чтение, печать, изменение). Формат, в котором информация представлена удобно и с помощью дополнительного ПО доступна к редактированию - PDF. В этом формате веб-страницу в полном объёме либо частично можно сохранить к себе на компьютер. В зависимости от браузера это можно делать либо с помощью плагинов, которые могут быть уже интегрированы в браузер, либо с помощью дополнительных конвертеров.
На сегодняшний день Google Chrome является одним из популярных интернет-браузеров. Положительный момент в использовании этого программного обеспечения заключается в наличии интегрированных плагинов. В нашем случае - это функция сохранять содержимое веб-ресурса сразу в формат PDF .
Чтобы активировать эту опцию, нужно открыть требуемую страницу, нажать либо сочетание клавиш CTRL + P или же следующую последовательность: управление Google Chrome - Печать. В результате откроется диалоговое окно, в котором будет предложено выбрать нужное устройство для печати. Однако, среди предложенных вариантов вместо принтера выбирается опция «Сохранить как PDF» и выбрать нужное место для хранения файла.
Отличие браузера Mozilla Firefox от браузера Google Chrome состоит в том, что Mozilla не имеет в своём распоряжении каких-то «родных» надстроек . Соответственно и нет возможности напрямую сохранить страницу без каких-то дополнительных манипуляций и инсталляций. Благо для этого браузера есть плагин, который можно найти в свободном доступе и установить себе на рабочую станцию. Называется он Printpdf. Он благополучно добавляется в интернет-браузер и после доступен в использовании после перезагрузки Mozilla Firefox.
Чтобы сохранить веб-страницу с помощью этой надстройки, нужно выбрать в браузере меню «Файл»/«File» и далее выбрать пункт «Сохранить как PDF»/ «Print to PDF». Плагин Printpdf можно настроить таким образом, чтобы он сохранял отдельно любой блок сайта. Это производится в меню «Инструмент» - «Дополнения».
Opera также является все ещё популярной программой, пусть и требующей повышенного объёма внутренних ресурсов компьютера (оперативной и видеопамяти). С каждым днём новые расширения появляются практически для каждого браузера. Opera не стала исключением . Надстройка Web to PDF является бесплатным конвертером, который также можно легко добавить в своё приложение и активно использовать. После добавления и перезагрузки на верхней рабочей панели появится кнопка, нажав на которую открытая веб-страница сохранится в нужном формате.
Как же можно обойти стороной «старину» Explorer-а. Для него также в последнее время и плагины, но ничего подобного ещё не предусмотрено для сохранения в формате PDF. Но помочь в вопросе того, как сохранить страницу в pdf, легко поможет универсальных конвертер документов UDP. Это сторонняя утилита, которая воспринимается системой как принтер, но сохраняет веб-ресурсы в нужном формате. Работает она благополучно со всеми браузерами, в том числе и с Internet Explorer. Конечно, существует и масса других конвертеров, которые преобразуют документы в различные форматы, но именно UDP считается более совершенным и наиболее простым в работе. Сама программная составляющая совершенно не требовательна к ресурсам и вызывается операционной системой только во время преобразования.
Подытожив вышеизложенное, можно сказать, что буквально все популярные браузеры без особых проблем поддерживают функцию сохранения содержимого веб-ресурса с помощью различных прикладных программ. Эта функция делает работу браузеров более продуктивной и полезной для пользователя.
Введите или скопировать и вставить URL веб-страницы, которую вы хотите преобразовать в поле ввода выше
Пример: https://www.amazon.com
* Примечание. Веб-страницы, для которых требуется вход в систему, не могут быть преобразованы.
Не требует установки (например, ActiveX) не требуется.
Однако, если в закладках копить не только регулярно посещаемые сайты, но и новости-однодневки или информацию, которая может потом пригодиться, а может и не пригодиться, тогда этот раздел браузера со временем станет захламлён. И в нём трудно будет отыскать нужные закладки.
Для сохранения разовых публикаций существует масса альтернатив, например:
Правда, эти способы хороши лишь при условии доступа к сети Интернет. Но есть решения, позволяющие хранить веб-страницы на локальном пространстве компьютера, без интернета – это:
О втором способе хотелось бы поговорить подробнее.
Сохранение в PDF – оптимальный способ запечатлеть веб-страницу в таком виде, как она есть в данный момент, без каких-либо искажений.
Такой способ можно использовать, чтобы, например,
При сохранении в PDF-формате содержимое веб-страницы оптимально распределяется на листе с дефолтными параметрами, установленными – А4 с книжной ориентацией – для удобства просмотра в программах-ридерах. Дефолтные параметры в случае необходимости можно сменить на другие, более подходящие для ридера на том или ином устройстве.
Чем сохранение веб-страницы именно в PDF-формате отличается от других вариантов?
PDF – универсальный , его поддержка реализована практически на каждом устройстве, в каждой операционной системе.
Однако веб-страницу можно также
PDF-формат выигрывает у HTML-формата, в первую очередь, своей универсальностью и обилием ридеров с разным функционалом.
А от скриншотов, которые можно сделать с веб-страниц, PDF-файл отличается тем, что его потом можно конвертировать в текстовый документ, если это понадобится. Известно, что конвертация из PDF в текст бывает не всегда возможна. Поэтому стоит использовать такие способы конвертации, которые изначально распознают текстовый материал сайтов, соответственно, как текст. Такие способы приводятся для операционной системы Windows ниже.
2. Печать в браузерах для сохранения в PDF-формате
Практически у всех веб-обозревателей (проще говоря, браузеров) есть собственная, встроенная функция печати страниц сайтов. И в рамках этой функции предусмотрена возможность сохранения в PDF.
Рис. 1. Меню Google Chrome (три вертикальные точки) – Печать открытой веб-страницы
После чего открывается «Печать» через браузер Google Chrome (рис. 2):
Рис. 3. Жмем «Изменить», чтобы найти в браузере Google Chrome опцию «Сохранить как PDF»
Появится диалоговое окно «Выбор места назначения», в котором надо обратить внимание на вкладку «Локальные места назначения»:
Что в браузере Google Chrome можно подправить для сохранения в PDF?
Если веб-страница в окне предпросмотра отображается некорректно, нужно раскрыть дополнительные настройки.
Рис. 5. Открываем дополнительные настройки Google Chrome для сохранения в PDF
И установить масштаб 100% или другой, более уместный для стиля публикаций конкретного веб-ресурса.
Рис. 6. Масштаб и параметры для PDF-формата в браузере Chrome
В операционной системе Windows 10 есть даже два таких механизма:
Второй является штатным виртуальным принтером системы, и его задача – обеспечивать возможность сохранения в PDF в любом веб-обозревателе, в любой программе, которая предусматривает печать.
Считается, что печать с участием виртуального принтера создаёт более информативную версию сохраняемой страницы сайта, с отображением её метаданных. Тогда как обычная функция сохранения в PDF в большей степени очищает страницу от лишних веб-элементов и смещает акцент на саму публикацию. Как лучше – дело каждого отдельного случая, однако часто оба эти механизма работают совершенно одинаково.
Как задействовать Microsoft Print to PDF? Для этого в Windows 10 открываем встроенный, штатный браузер Microsoft Edge:
Рис. 7. Значок браузера Microsoft Edge в Windows 10
Открыв Microsoft Edge, нужно
Рис. 8. Пункт «Печать» в Microsoft Edge
Если на компьютере не используется реальный принтер, тогда виртуальный PDF-принтер, как правило, установлен по умолчанию.
В противном случае кликаем по названию подключенного принтера. Для примера смотрите ниже на рис. 9, щелкаем по «HP LaserJet M1005». Откроется выпадающее меню, в котором выбираем из списка доступных вариантов печати опцию «Microsoft Print to PDF»:
Рис. 9. Меню Microsoft Edge, в котором можно выбрать реальный принтер или ссылку на «Microsoft Print to PDF»
В Microsoft Edge, кстати, механизм печати с участием PDF-принтера оптимально настроен. Здесь, в частности, по умолчанию выставлен параметр сжатия по размеру веб-страницы. Если прочие параметры не требуют коррекции, можно нажать внизу «Печать»:
Оптимальные настройки PDF-принтера предусматривает и печать на борту Mozilla Firefox.
Рис. 11. «Открыть меню» – «Печать» в Мозилле
В окне «Печать» можно задать параметры для сохранения веб-страницы в PDF (рис. 12):
Рис. 12. Сохранение странички в PDF-формате с помощью Мозиллы
Если в Мозилле, опция «Печать» есть название принтера (на рис. 13 – это HP LaserJet M1005), но отсутствует PDF, тогда надо
Рис. 13. Поиск PDF-формата в Мозилле
Нештатный функционал браузеров может сохранять страницы сайтов в PDF-документы с двумя преимуществами:
Последнее, кстати, не умеет делать штатная, встроенная функция печати. В магазинах Google Chrome и Mozilla Firefox есть масса расширений для реализации в этих браузерах удобного способа конвертирования интернет-страниц в PDF, и два предложенных ниже – самые толковые из них.
Расширения скачиваются из официальных магазинов, затем устанавливаются в браузер. В итоге на панели инструментов в браузере сверху появляется значок установленного расширения. Далее при необходимости можно открыть веб-страничку, кликнуть по значку такого расширения и сохранить страничку в PDF-документе на своем устройстве.
3.1. Расширение PDF Mage
PDF Mage реализует на панели инструментов Chrome и Firefox кнопку, при нажатии на которую запускается процесс создания PDF из содержимого текущей вкладки. Расширение само генерирует имя файла в соответствии с названием публикации. Имена формируются кириллицей.
Если в браузерах Google Chrome или Firefox установить расширение PDF Mage, то появится значок, отмеченный цифрой 1 на рис. 14.
Рис. 14. Сохраняем веб-страницу с помощью расширения PDF Mage в Google Chrome
3.2. Расширение Save as PDF
Save as PDF схоже с предыдущим расширением. После его установки
Рис. 15. Расширение Save as PDF в Мозилле для сохранения в 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, вот только работает оно через раз. Сам онлайн-сервис более стабилен в этом плане.
Чтобы сохранить какую-нибудь интернет-страницу в PDF, можно открыть ее в любом браузере и нажать на CTRL+P. Напомню принцип работы горячих клавиш: сначала нажимаем клавишу CTRL, затем не отпуская ее, одновременно жмем на клавишу P (на английском регистре). После этого на экране должно появиться окно “Печать”, похожее на то, которое приведено на рис. 2.
Если у Вас подключен принтер к компьютеру, то тогда в окне “Печать” придется кликнуть по кнопке “Изменить” (рис. 3), которая находится рядом с названием вашего принтера. Откроется меню (рис. 4), в котором надо поставить галочку напротив “Сохранить как PDF”.
Этот универсальный способ с горячими клавишами хорош тем, что не требует установки для браузера дополнительного программного обеспечения.
Если Вам не нравится вариант с горячими клавиши, введите в поисковик запрос без кавычек наподобие такого:
Поисковик предложит Вам расширения, из них лучше выбирать варианты на официальных сайтах браузеров. Установка расширения в браузер и дальнейшая работа с ним описаны , все расширения устроены по похожему принципу.
Для меня было очень неожиданно то, что в хабе по Java практически нет информации по работе с PDF документами, поэтому я, из личного опыта, хочу на примере сервлета показать как легко можно любую web-страницу превратить в PDF документ.
Описания библиотек для Maven конфигурации (pom.xml)
Рассмотрим макет:
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"); %>
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 документ.