Как сохранить веб-страницу в PDF-документ. Как web-страницу легко превратить в PDF? Интернет страницу в pdf

Всем доброго времени!

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

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

В этой статье рассмотрю несколько способов, как это можно быстро и легко сделать. Собственно, приступим к делу...

С помощью печати в браузере

1) Какой бы не был у вас браузер (Chrome, Opera, Edge, Firefox и др.), нажмите сочетание кнопок Ctrl+P (это сочетание означает распечатку страницы). Также эта функция доступна в меню браузеров.

2) Далее измените принтер по умолчанию на "Сохранить как PDF" или "Microsoft Print to PDF" (в зависимости от вашего браузера и ОС - у вас могут быть доступны разные варианты: как оба, так и всего один из них). См. пару скриншотов ниже.

3) Теперь задайте основные настройки: кол-во сохраняемых страниц, раскладку страницы, поля, цветность, колонтитулы и пр. После нажмите кнопку "Печатать".

Собственно, на этом задача выполнена. Теперь полученный PDF можно открыть в Word, Adobe PDF Reader, и сотнях других программ, поддерживающих данный формат.

С помощью спец. расширений

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

Выделить я бы хотел одно очень интересное дополнение - PDF MAGE.

PDF Mage

Небольшое дополнение для Firefox, Opera, Chrome, позволяющие в 1 клик мышкой сохранить веб-страницу полностью на жесткий диск!

Отмечу, что после нажатия по значку PDF Mage - текущая страничка просто скачивается в формате PDF к вам в папку загрузки. Удобнее придумать просто нельзя...

Покажу на примере.

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

Буквально через мгновение, браузер сам автоматически начнет загружать файл в формате PDF. Собственно, делается все без лишних телодвижений, быстро и удобно!

С помощью онлайн сервисов

В сети также есть множество интернет-сервисов, позволяющих быстро сохранить любые странички в сети в PDF. Суть работы примерно следующая: вы вставляете в спец. строку URL-адрес странички, которую вам нужно сохранить.

Далее жмете кнопку генерации PDF файла. Через некоторое время получаете ссылку на загрузку своего PDF. Пользоваться, конечно, можно, но на мой скромный взгляд - всё это утомительно и годится для временного использования. Например, у вас есть "проблемы" с браузером или Windows, попалась какая-то "странная" страница, которая не хочет сохраняться предыдущими способами.

И так, самые популярные из сервисов подобного рода:

  1. - простой и удобный сервис на английском. На сайте есть спец. строка, куда вставляете URL-адрес, а рядом кнопка генерации. На выходе загружаете уже готовый PDF к себе на жесткий диск.
  2. - еще один зарубежный сервис, работает аналогично.
  3. - очень популярный сервис, с его помощью уже сохранено более 5 000 000 страниц по всему Миру! Здесь помимо всего прочего, можно загрузить дополнения для браузера (чтобы не посещать каждый раз сайт, когда нужно сохранить страницу).
  4. - довольно простой и удобный сервис. Минимум лишней информации на сайте.

На этом у меня всё, всем удачи!

  • 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 документ.

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

    уведомление

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

    уведомление

    Для того, чтобы предотвратить чрезмерное для пользования услугой, 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) не требуется.

    Просмотров