Salve uma cópia exata de uma página segura na forma de gráficos vetoriais

9

Gostaria de salvar uma réplica exata de uma página da Web em forma de gráficos vetoriais, portanto não posso usar uma técnica de captura de tela (pois ela armazena a imagem em uma forma de gráficos rastor).

Eu tentei 'imprimir em pdf' e 'salvar como pdf' através do Safari, Chrome e Firefox. Isso funciona na maioria das vezes. No entanto, o pdf salvo não é uma réplica exata para todas as páginas da web. Por exemplo, tente salvar esta página da Web como PDF e observe como os ícones de votação positiva / negativa não estão incluídos no PDF salvo.

Eu também tentei salvar como um arquivo da Web com o Safari. O problema aqui é que preciso cortar o arquivo resultante e não sei como cortar um WebArchive, pois o Preview não pode abri-lo e ele simplesmente é aberto no Safari (volta à estaca zero).

Eu também tentei plugins de navegador da Web que fornecem uma solução com um clique para salvar a página da Web em pdf (formulário de gráficos vetoriais). Isso funciona melhor (a página exata é salva) e quase resolve o problema, exceto que esses programas funcionam enviando o URL da página para um programa baseado em nuvem para consultar e salvar a página. Isso significa que essa técnica não funcionará para sites https que precisam de minhas credenciais para fazer login.

Então, eu estou em um canto. Estou tentando salvar uma réplica exata de gráficos vetoriais de uma página da web que precisa que minhas credenciais de login sejam exibidas. Como posso fazer isso?

Clayton Stanley
fonte
11
Acho que você está confuso - o PDF não é um formato vetorial.
Kevin Panko #
Não confuso; apenas não se preocupar muito com o detalhe de que um pdf é um recipiente que pode armazenar o material de gráficos vetoriais, desde que eu acho que o ponto principal da questão está sendo transmitida
Clayton Stanley
Sua pergunta parece ser "Como posso salvar uma página da Web como um arquivo PDF, exatamente como aparece na tela, e funciona com uma página que requer uma senha para fazer logon?"
22713 Kevin Kanko
Não precisa ser pdf; essa é apenas uma rota para salvar uma página da web em que o texto está em forma de gráficos vetoriais. Não preciso me comprometer com esse formato. Acrescentarei seguro ao título da segunda nota, para que isso seja enfatizado melhor.
Clayton Stanley

Respostas:

6

Você está obtendo resultados diferentes imprimindo a página em PDF do que quando visualiza a página na tela.

Isso acontece porque a página da web inclui uma folha de estilo CSS que altera a página quando está sendo impressa.

Esta pergunta o ajudará a evitar esse problema: Como imprimo com a folha de estilo da tela?

Siga as instruções para imprimir a página com a folha de estilo na tela.

Você poderá imprimir em PDF e obter o mesmo resultado que vê na tela.

Kevin Panko
fonte
11
Apenas para obter a documentação completa, acabei usando o plug-in Chrome Web Developer e editando o css por esse plug-in. Não consegui atualizar a página impressa depois de editar o css usando as Ferramentas do desenvolvedor integradas do Google Chrome, mas isso é mais provável porque não estou familiarizado com essa ferramenta.
Clayton Stanley #
4

Se você não tem medo de um pouco de script, pode tentar usar o aplicativo phantomjs para OSX em http://phantomjs.org/

Depois, você executaria o binário incluído usando o script rasterize.js com um comando como:

phantomjs.exe rasterize.js http://www.example.com/sitepage 8.5in*11in outfile.pdf

Algumas notas:

  • É chamado de 'rasterize.js', mas o próprio texto é salvo no PDF como texto real.

  • A autenticação em um site seguro usando a autenticação do Windows pode ser realizada adicionando algumas linhas ao script rasterize.js após a inicialização do objeto de página:

var page = require ('página da web'). create (),
    system = require ('sistema'),
    endereço, saída, tamanho;
    page.settings.userName = "serviceUserName"; // eu adicionei esses
    page.settings.password = "servicePassword"; // 2 linhas aqui

if (system.args.length 5) {
nvuono
fonte
phantomjs rocks!
Matthew Bloqueio