Salvare una copia esatta di una pagina Web protetta in forma grafica vettoriale


9

Vorrei salvare una replica esatta di una pagina Web in forma di grafica vettoriale, quindi non posso usare una tecnica di screenshot (dal momento che memorizza l'immagine in una forma di grafica rastor).

Ho provato 'stampa su pdf' e 'salva come pdf' tramite Safari, Chrome e Firefox. Funziona quasi sempre. Tuttavia, il pdf salvato non è una replica esatta per tutte le pagine web. Ad esempio, prova a salvare questa pagina Web come pdf e osserva come le icone di voto positivo / negativo non sono incluse nel pdf salvato.

Ho anche provato a salvare come WebArchive con Safari. Il problema qui è che devo ritagliare il file risultante e non so come ritagliare un WebArchive, poiché l'anteprima non può aprirlo e si apre semplicemente in Safari (tornando al punto di partenza).

Ho anche provato plug-in per browser Web che forniscono una soluzione con un clic per salvare la pagina Web in formato pdf (modulo di grafica vettoriale). Funziona meglio (la pagina esatta viene salvata) e quasi risolve il problema, tranne per il fatto che questi programmi funzionano inviando l'URL della pagina a un programma basato su cloud per eseguire una query e quindi salvare la pagina. Ciò significa che questa tecnica non funzionerà per i siti https che richiedono le mie credenziali per accedere.

Quindi sono in un angolo. Sto cercando di salvare una replica grafica vettoriale esatta di una pagina Web che ha bisogno delle mie credenziali di accesso per essere visualizzata. Come posso fare questo?


1
Penso che tu sia confuso: il PDF non è un formato vettoriale.
Kevin Panko,

Non confuso; semplicemente non preoccuparsi troppo del dettaglio che un pdf sia un contenitore in grado di memorizzare materiale di grafica vettoriale, dal momento che penso che il punto principale della domanda venga trasmesso
Clayton Stanley

La tua domanda sembra essere "Come posso salvare una pagina Web come file PDF, esattamente come appare sullo schermo e funziona con una pagina che richiede una password per accedere?"
Kevin Panko,

Non deve essere pdf; questa è solo una strada per salvare una pagina web in cui il testo è in forma grafica vettoriale. Non devo impegnarmi in quel formato. Aggiungerò sicuro al titolo per la seconda nota, in modo che questo sia enfatizzato meglio.
Clayton Stanley,

Risposte:


6

Stai ottenendo risultati diversi stampando la pagina in PDF rispetto a quando vedi la pagina sullo schermo.

Ciò accade perché la pagina Web include un foglio di stile CSS che cambia la pagina quando viene stampata.

Questa domanda ti aiuterà a evitare questo problema: come faccio a stampare con il foglio di stile dello schermo?

Segui le istruzioni lì per stampare la pagina con il foglio di stile su schermo.

Quindi dovresti essere in grado di stampare su PDF e ottenere lo stesso risultato che vedi sullo schermo.


1
Solo per la documentazione completa, ho finito per utilizzare il plug-in Chrome Web Developer e modificare i CSS tramite questo plug-in. Non è stato possibile aggiornare la pagina di stampa dopo aver modificato i CSS utilizzando gli Strumenti di sviluppo integrati di Google Chrome, ma è molto probabile perché non ho familiarità con quello strumento.
Clayton Stanley,

4

Se non hai paura di un po 'di scripting, puoi provare a utilizzare l'applicazione phantomjs per OSX da http://phantomjs.org/

Quindi eseguiresti il ​​file binario incluso usando lo script rasterize.js con un comando come:

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

Un paio di note:

  • Si chiama "rasterize.js" ma il testo stesso viene salvato nel PDF come testo effettivo.

  • L'autenticazione su un sito sicuro mediante l'autenticazione di Windows può essere ottenuta aggiungendo un paio di righe allo script rasterize.js dopo aver inizializzato l'oggetto pagina:

var page = request ('pagina web'). create (),
    system = require ('system'),
    indirizzo, uscita, dimensione;
    page.settings.userName = "serviceUserName"; // Ho aggiunto questi
    page.settings.password = "SERVICEPASSWORD"; // 2 righe qui

if (system.args.length 5) {

rocce fantasma!
Matthew Lock,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.