Conversor online de web para pdf com índice. Como transformar facilmente uma página da web em PDF? Com a ajuda de especial

Lar / Tecnologias
  • Java,
  • PDF
    • Tutorial

    Foi muito inesperado para mim que no hub Java praticamente não haja informações sobre como trabalhar com Documento PDF Portanto, por experiência própria, quero usar o exemplo de um servlet para mostrar como é fácil transformar qualquer página da web em um documento PDF.

    Preâmbulo:
    Vamos escrever um servlet simples que pegará a página da web que especificamos por meio do protocolo HTTP e gerará um documento PDF completo com base nela.
    Bibliotecas usadas:
    • Flying Saucer PDF é a principal biblioteca que nos ajudará a criar um documento PDF a partir de HTML/CSS
    • iText é uma biblioteca que acompanha a descrita acima, mas não pude deixar de incluí-la na lista de bibliotecas porque... é com base nisso que o documento PDF será gerado
    • HTML Cleaner - uma biblioteca que irá limpar nosso código HTML

    Descrições de bibliotecas para configuração do Maven (pom.xml)

    org.xhtmlrenderer disco voador-pdf 9.0.4 net.sourceforge.htmlcleaner limpador de html 2.6.1

    Formação de página:
    Um dos mais pontos importantesé a formação da página. O fato é que é a partir da própria página, por meio de CSS, que são definidos os parâmetros do futuro documento PDF.

    Vejamos o layout:

    página.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"); %> Exemplo

    Olá, habr! Hora atual:<%=sdf.format(new Date())%>
    Nova página!


    Aqui quero destacar alguns pontos. Primeiras coisas primeiro: todos os caminhos devem ser absolutos! Imagens, estilos, endereços de fontes, etc., caminhos absolutos devem ser especificados para tudo. Agora vamos examinar as regras CSS (o que começa com o símbolo @).
    @font-face- esta é uma regra que dirá ao nosso gerador de PDF qual fonte usar e de onde. O problema é que a biblioteca que irá gerar o documento PDF não contém fontes que incluam o cirílico. É por isso que desta forma será necessário determinar TODOS fontes usadas em sua página, mesmo que seja fontes padrão: Arial, Verdana, Tahoma, etc., em de outra forma Você corre o risco de não ver o alfabeto cirílico no seu documento.
    Preste atenção a propriedades como "-fs-pdf-font-embed: embed;" e "-fs-pdf-font-encoding: Identity-H;", essas propriedades são necessárias, mas não esqueça de adicioná-las.
    @página- esta é uma regra que define os recuos de um documento PDF, bem como seu tamanho. Gostaria de observar aqui que se você especificar o tamanho da página A3 (e como mostra a prática, isso muitas vezes é necessário, pois a página não cabe na largura do documento), isso não significa que o usuário precisará imprimir o documento (se desejado) no formato A3, simplesmente todo o conteúdo será reduzido/aumentado proporcionalmente para o tamanho desejado (geralmente A4). Aqueles. consulte o valor do imóvel tamanho cético, mas saiba que isso pode desempenhar um papel fundamental para você.
    @mídia- uma regra que permite criar classes CSS para um tipo específico de dispositivo, no nosso caso é “imprimir”. Dentro desta regra, criamos uma classe após a qual nosso gerador de documentos PDF criará uma nova página.
    Servlets:
    Agora vamos escrever um servlet que nos retornará o documento PDF gerado:

    PDFServlet.java

    pacote ru.habrahabr.web_to_pdf.servlets; importar org.htmlcleaner.CleanerProperties; importar org.htmlcleaner.HtmlCleaner; importar org.htmlcleaner.PrettyXmlSerializer; importar org.htmlcleaner.TagNode; importar org.xhtmlrenderer.pdf.ITextRenderer; importar javax.servlet.ServletException; importar javax.servlet.http.HttpServlet; importar javax.servlet.http.HttpServletRequest; importar javax.servlet.http.HttpServletResponse; importar java.io.*; importar java.net.HttpURLConnection; importar java.net.URL; importar java.net.URLConnection; /** * Data: 31/03/2014 * Horário: 9h33 * * @author Ruslan Molchanov ( [e-mail protegido]) */ classe pública PdfServlet estende 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) lança ServletException, IOException ( try ( resp.setContentType("application/pdf"); byte pdfDoc = performPdfDocument(PAGE_TO_PARSE); resp.setContentLength(pdfDoc.length); resp.getOutputStream().write(pdfDoc); ) catch (Exceção ex) ( resp.setContentType("text/html"); PrintWriter out = resp.getWriter(); out.write(" Algo errado

    "); ex.printStackTrace(out); ex.printStackTrace(); ) ) /** * Método que prepara um documento PDF. * @param path caminho para a página * @return documento PDF * @throws Exception */ private byte performPdfDocument( String path) throws Exception ( // Obtém o código HTML da página String html = getHtml(path); // Buffer que conterá o código HTML formatado ByteArrayOutputStream out = new ByteArrayOutputStream(); // Formatação HTML code /* este procedimento é opcional, mas eu recomendo fortemente usar este bloco */ HtmlCleaner Cleaner = new HtmlCleaner();


    A propósito, não é necessário escrever um servlet para esses fins; você pode transferir a lógica desse servlet até mesmo para um aplicativo de console que salvará documentos PDF em arquivos. Como você deve ter notado, não há necessidade de configurar, alterar, adicionar, etc. no servlet. (bem, com exceção do caminho para a página e, possivelmente, da codificação), portanto, todo o trabalho de preparação de um documento PDF é muito simples e ocorre exclusivamente na visualização.

    No final, você deve obter um documento PDF parecido com este.

    Bom tempo a todos!

    Apesar de em cada navegador você poder criar rapidamente marcadores para suas páginas favoritas, às vezes é muito necessário salvar a página da web desejada em PDF (mesmo porque esta página pode ser removida ou editada do site ao longo do tempo) ...

    Além disso, as informações do formato PDF podem ser facilmente lidas na maioria dispositivos diferentes(é suportado por todos os leitores sem exceção), pode ser editado em Word e transferido para outros usuários. E a página em si não sofrerá corrosão com o tempo, sua formatação e design não mudarão. Em geral, algo útil e necessário!

    Neste artigo, examinarei várias maneiras de fazer isso de maneira rápida e fácil. Na verdade, vamos ao que interessa...

    Usando a impressão do navegador

    1) Qualquer que seja o navegador que você possui (Chrome, Opera, Edge, Firefox, etc.), pressione a combinação de botões Ctrl+P(esta combinação significa imprimir a página). Esta função também está disponível no menu do navegador.

    2) Em seguida, altere a impressora padrão para “Salvar como PDF” ou “Microsoft Print to PDF” (dependendo do seu navegador e sistema operacional - você pode ter diferentes opções disponíveis: ambas ou apenas uma delas). Veja algumas capturas de tela abaixo.

    3) Agora defina as configurações básicas: número de páginas a salvar, layout da página, margens, cor, cabeçalhos e rodapés, etc.

    Na verdade, esta tarefa está concluída. Agora o PDF resultante pode ser aberto no Word, Adobe PDF Reader e centenas de outros programas que suportam este formato.

    Com a ajuda de especial extensões

    Para os navegadores mais populares, existem agora vários complementos e extensões diferentes que permitem salvar suas páginas favoritas como em armazenamento em nuvem e para arquivos PDF em seu disco rígido.

    Gostaria de destacar uma adição muito interessante - PDF MAGE.

    PDF Mage

    Um pequeno complemento para Firefox, Opera, Chrome, que permite salvar a página inteira da web em seu disco rígido com um clique!

    Observo que após clicar no ícone PDF Mage, a página atual é simplesmente baixada em formato PDF para sua pasta de download. É simplesmente impossível imaginar algo mais conveniente...

    Vou te mostrar com um exemplo.

    Após instalar a extensão, você terá um pequeno ícone no menu. Depois de encontrar uma página interessante, basta clicar com o botão esquerdo nela.

    Em alguns instantes, o próprio navegador iniciará automaticamente o download do arquivo PDF. Na verdade, tudo é feito sem movimentos desnecessários, de forma rápida e prática!

    Usando serviços online

    Existem também muitos serviços de Internet na Internet que permitem salvar rapidamente qualquer página da Internet como PDF. A essência do trabalho é aproximadamente a seguinte: você insere no especial. string o URL da página que você precisa salvar.

    Em seguida, clique no botão para gerar um arquivo PDF. Depois de um tempo você receberá um link para baixar seu PDF. Claro, você pode usar, mas na minha humilde opinião, tudo isso é tedioso e adequado para uso temporário. Por exemplo, você tem “problemas” com seu navegador ou Windows, se deparou com alguma página “estranha” que não deseja ser salva pelos métodos anteriores.

    E assim, o mais popular dos serviços deste tipo:

    1. - serviço simples e conveniente em inglês. Tem um especial no site. uma linha onde você cola a URL e ao lado dela há um botão de geração. Ao final, baixe o PDF finalizado para o seu disco rígido.
    2. - outro serviço estrangeiro que funciona de forma semelhante.
    3. - um serviço muito popular, com a sua ajuda já foram salvas mais de 5.000.000 de páginas em todo o mundo! Aqui, entre outras coisas, você pode baixar complementos para o navegador (para não visitar o site toda vez que precisar salvar a página).
    4. - um serviço bastante simples e conveniente. Um mínimo de informações desnecessárias no site.

    Isso é tudo para mim, boa sorte a todos!


    Por que você precisa salvar as páginas do site? Bem, talvez você queira ler informações off-line ou fazer algumas observações no site, ou queira fazer isso para outro propósito. Pessoalmente, não me importo por que você precisa disso, apenas direi como fazer isso em navegadores diferentes. Então, como você pode salvar a página de um site em formato PDF nos navegadores Chrome, Opera, Yandex, Firefox?

    Vamos começar com o navegador Cromo.

    Primeiro, você precisa encontrar a página que lhe interessa. Usarei o site automotivo ax4.ru como exemplo.

    No canto superior direito, clique em algo como um sanduíche. No menu que aparece, clique em “ Selo».

    A seguir você verá que o padrão é o nome da impressora que você instalou ou outra que esteja programada pelo navegador. Precisamos alterá-lo clicando no botão correspondente “ Mudar».

    Quando pressionamos " Mudar", aparecerá um menu no qual você precisa selecionar o item " Salvar como PDF».

    Depois disso, à esquerda, o nome da impressora mudará para “ salvar como PDF" Tudo que você precisa fazer é pressionar o botão “ Salvar».

    Selecione um local para salvar (para mim é a área de trabalho).


    É isso, agora você pode abrir o salvo Arquivo PDF. Pode não parecer muito, mas você pode copiar o texto dele com muita facilidade.

    Agora abro o arquivo PDF através do Foxit Reader. Você, como mencionei anteriormente, pode usar outro programa.
    Isso é tudo, não é muito bonito, mas você entendeu. Você pode criar um arquivo PDF a partir de qualquer página da web.

    Para fazer isso, irei ao site de notícias nz1.ru e selecionarei algumas notícias.

    Como você já entendeu, o procedimento é semelhante em todos os navegadores. Clique na semelhança do sanduíche no canto superior direito e depois em “ Adicionalmente" E " Selo».

    Salve como PDF.

    Em seguida, selecione um local para salvar. Por exemplo, Área de Trabalho.

    Abra o arquivo através de qualquer programa que leia Formato PDF, nós usamos.

    Vou mostrar o exemplo de um site com fotos legais prikolnie-kartinki.ru.

    EM Navegador Mozilla O Firefox faz as coisas de maneira um pouco diferente. Clique no sanduíche no canto superior direito da tela e selecione “ Selo».

    © 2024 ermake.ru - Sobre reparo de PC - Portal de informações