Como converter uma página da Web em PDF, preservando sua aparência (exatamente como no navegador da web) e texto / links?

24

Estou procurando uma maneira de converter uma página da Web em PDF, mas preservando a aparência da página. Também preservando o texto da página da Web (sendo selecionável), pesquisável [A geração de captura de tela da imagem para a página da Web tornaria o texto nem selecionável nem pesquisável].

Estou procurando imprimir a página da Web em PDF como está (como no navegador da Web) sem qualquer manipulação no estilo ou alinhamento ou perda dos componentes estáticos de qualquer página da Web.

Isso ajudaria a preservar cópias offline de páginas da Web que são facilmente legíveis, anotáveis ​​e pesquisáveis.


Você não precisa ler nenhum dos itens abaixo (A pergunta é apenas a seção acima) para receber minha pergunta. A seção a seguir é apenas uma lista do que obtive através da pesquisa ou das respostas de outras pessoas de maneira aninhada, a fim de obter uma resposta para a pergunta.

Resultados de pesquisa (sugestões que não resolveram meu problema)

Resultados até agora em tentar encontrar uma solução (Tudo ainda não está funcionando como solução para esta pergunta)

Eu tentei esses mecanismos de impressão na Web em PDF, mas todos manipulam a aparência das páginas, mais prejudiciais e dificultam a leitura: ( Exemplos de capturas de tela de páginas estão entre colchetes)

  • Chrome [ Original , Estilos de impressão ( Desativado | não Desativado )]
  • Firefox [ Original , Estilos de impressão (Desativado p1 , p2 | não Desativado p1 , p2 )]
  • Legibilidade
    • Simplifica a página da web (o que é uma coisa boa para a leitura focada - no entanto, não é isso que estou procurando). Estou procurando manter todas as propriedades de posições / estilos da página da Web como vistas no Navegador da Web em um formato PDF sem qualquer manipulação.
  • Foxit Reader
  • NovaPDF
  • CutyCapt [ Original , Fator de zoom: 0.4 : Capturas de tela, PDF gerado]
    • Adicionarei links depois de resolver os problemas de execução do programa no Windows "
  • wkhtmltopdf [ Original , Fator de zoom: 0.4 : Screenshots , PDF gerado ]
    • Não suporta CSS3.

Todas imagem webpage imagem plugins de captura (por exemplo, Abduction , impressionante Screenshot , Fireshot , Firefox tela Developer Tool , captura de tela cheia Página , Page2Images , web de captura , ...) não respondeu à minha pergunta, porque não preservar texto e links .

O Scrible é excelente em preservar páginas da Web, assim como em anotações e pesquisas adicionais, mas infelizmente ainda está online e sem conversão para o formato PDF.

Existem duas outras questões na comunidade semelhantes de alguma forma às minhas, no entanto, essa é um pouco diferente, mas com essas distinções importantes:

  • Como obter o WYSIWYP (imprimir o que você vê) em um navegador da web?
    • Esta pergunta pergunta sobre uma maneira de capturar uma página da Web (como vista na tela) de qualquer maneira, mesmo que seja uma imagem e um texto não sejam preservados. Visto que também estou procurando capturar texto e links ( preservar texto e links de maneira importante ).

Perguntas mais semelhantes em que a preservação de texto e links não é um requisito (as páginas são capturadas como capturas de tela da imagem principalmente):


Notas

SO: Windows 10

Omar
fonte
Para imprimir a partir de um navegador, primeiro é necessário desativar as folhas de estilo de impressão para manter a aparência da tela da página da web.
DavidPostill
Consulte Como obter o WYSIWYP (imprima o que você vê) em um navegador da web? . Veja minha resposta a essa pergunta.
DavidPostill
Em seguida, você pode imprimir usando o gravador CutePDF .
DavidPostill
@DavidPostill Parece que desativar os estilos de impressão não funciona ou não afeta o navegador para exibir PDF corretamente. Um exemplo de captura de tela foi adicionado à versão editada da pergunta.
Omar
Eu tinha a mesma pergunta hoje e esta página me ajudou (embora a saída fosse uma versão móvel da página): stackoverflow.com/questions/9540990/… #
MicroMachine

Respostas:

7

Enfrentamos o mesmo problema em um projeto da Universidade e conseguimos resolvê-lo usando

wkhtmltopdf

Apreciamos bastante os recursos dessa ferramenta na linha de comando. Também o chamamos usando código python para renderizar o estado atual das páginas da web. Tem a opção de entregar a página da Web em pdf, geralmente não perfeita para preservar a visualização do site devido à formatação da página (A4 por exemplo) ou como png (preserva a visualização da página, mas não os links)

Também existe o projeto de legibilidade (para Python: pypi.python.org/pypi/readability-lxml) que usamos que faz a remoção de anúncios e a detecção de conteúdo muito bem (por exemplo, artigos de jornal e similares). Se você deseja apenas um complemento ou extensão para o seu navegador, a seguinte implementação de legibilidade pode satisfazer sua necessidade:

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

sebisnow
fonte
Infelizmente, o wkhtmltopdf não preservou as posições dos elementos da página. Exemplo Página : Zoom Factor: 0,4: Imagens , PDF emitidas
Omar
A legibilidade simplifica a página (o que é uma coisa boa - porém não é isso que estou procurando). Eu preciso manter todas as propriedades de posições / estilos da página como vistas no Navegador da Web em um formato PDF sem nenhuma manipulação.
Omar
Você usou a opção wkhtmltopng da ferramenta, como png as posições deve estar bem (pelo menos muito melhor do que na versão pdf onde a página está equipado para o formato A4)
sebisnow
3

Contribuindo com outra resposta para possíveis usuários. No Firefox, costumava haver um complemento "Imprimir páginas em PDF". Você pode procurar por sua última versão 0.1.9.3 (funciona apenas nas versões pré-Quantum).

Atualmente, existe esse complemento para o Chrome e o Firefox que funciona muito bem: PDFMage

  • Salve todas as imagens na página
  • Gerar texto como texto, não como imagem, você pode pesquisar texto em PDF gerado.
  • Hiperlinks do preservador
  • Tem a opção de salvar uma página longa como PDF de uma página (para que as imagens não sejam divididas entre as páginas)
nmhung1985
fonte
2

Eu realmente lutei com isso e tentei a maioria das ferramentas mencionadas até agora. Os melhores resultados que obtive foram o uso do modo sem cabeça do Chrome. O comando no MacOS ficaria assim:

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

A melhor lista de opções de linha de comando que encontrei estava aqui .

No entanto, houve problemas com isso. Especificamente, minhas páginas são muito pesadas em javascript e não pude fazer com que a função de impressão esperasse que elas terminassem a execução. Portanto, minha saída não tinha as imagens.

A solução que encontrei foi um pacote NodeJS: chrome-headless-render-pdf. É pouca documentação aqui . Funciona e é facilmente programável.

AlanObject
fonte
2

Eu tive o mesmo problema e descobri isso através do Chrome e com um driver de impressora gratuito chamado PDF995. Isso faz parte de um conjunto de utilitários de PDF; o site do editor é http://www.pdf995.com/ .

No entanto, acho que qualquer navegador da web e qualquer conversor de pdf serão suficientes. Enfim, aqui está o que eu fiz:

  1. selecione tudo ou destaque tudo.
  2. Clique com o botão direito do mouse na seleção destacada ou pressione Ctrl + P (ambas as opções oferecem resultados ligeiramente diferentes, mas você acaba com o mesmo resultado após a conclusão).

  3. Se você clicou com o botão direito do mouse em 2., na seleção (atalho), clique em "imprimir" e somente tudo o que você selecionou estará na visualização de impressão. Altere o destino da impressora para o conversor de PDF que você decidir usar (PDF995 ou outro).

  4. Clique em "Imprimir" e ele salva como um documento PDF.

  5. Se você pressionar Ctrl + P em 2. (o caminho um pouco mais longo), clique em "Mais configurações" e role para baixo até "Opções".

  6. Clique na caixa que diz "Somente seleção" e tudo no atalho que descrevi será seguido.

  7. Não se esqueça de alterar o destino da impressora para o conversor de PDF que você escolher (PDF995 ou outro).

  8. Clique em "imprimir".

user726167
fonte
1

Se você estiver no Linux, tente esta pequena ferramenta de linha de comando CutyCapt , que depende apenas do Qt e QtWebkit, e exporte para PDF.

Ziggy Crueltyfree Zeitgeister
fonte
0

Embora não seja exatamente sua solicitação como não está em PDF, se o objetivo é apenas manter uma cópia offline das páginas da Web para revisão posterior, salvá-la como página da Web faria exatamente isso.

A grande ressalva é que ele criará um arquivo .html e uma pasta com todo o conteúdo da mídia na página, em vez de um único documento.

No Chrome e Firefox, você pode salvar uma página clicando com o botão direito do mouse e escolhendo Salvar como ... No Internet Explorer, você pode salvá-la em Arquivo -> Salvar como (pressionando a tecla Alt para que os menus apareçam).

Pyheme
fonte
Salvar a página da Web no formato .html tornaria não anotável. Então, eu preciso dele em formato PDF.
Omar
Este é um bom ponto! Acabei de lembrar de uma extensão que permite desativar facilmente as folhas de estilo relacionadas à impressão. Uma rápida pesquisa no google me levou à discussão quando eu ouvi falar dela, no Superuser: Como obter o WYSIWYP (imprimir o que você vê) em um navegador da web?
Pyheme
Eu tentei fazer "Salvar como" usando o Chrome. Ele cria um arquivo .HTML e uma pasta. O arquivo .HTLM estava com muitas coisas ausentes na página.
SherlockSpreadsheets
0

Experimente este serviço. Cria um PDF a partir de um site como você o vê no navegador. https://lomotoh.com/ (sou afiliado a este site)

David Herse
fonte
Isso preserva os links, mas não o texto selecionável, que é um requisito da pergunta.
fixer1234
Parece ser selecionável para alguns sites. Eu acho que depende do tipo de fonte personalizada que o site usa.
David Herse
0

Pelo menos todo o texto em algumas páginas é pesquisável, selecionável, recortado e colável. Eu tentei em uma página colada roboticamente por um computador sem texto e pix e ele sintonizava tudo em uma imagem.

Eu tenho usado essas coisas há anos. Eu obtenho os melhores resultados no Linux reconstruindo a página em uma palavra XX de sua escolha e exportando o resultado como um PDF. Consigo o que quero a um custo considerável. A partir do meu arquivo de uso limitado ivin O site David Herse, https://lomotoh.com/ (eu não sou afiliado a este site) funciona tão bem quanto qualquer outro que eu já usei. Serei o meu recurso para cobrir páginas da Web em PDFs até que eu ache melhor ou que custe muito para pagar com minha própria bolsa fina.

Gordon Couger
fonte