2011-09-20 13 views
5

Desidero convertire un file HTML in un file PDF, utilizzando R.Converti (stampa) un file in PDF - usando R? (in windows)

Esiste un comando o una combinazione di strumenti/comandi che può eseguire questa conversione?

+0

Non proprio una domanda R, poiché non è possibile che R possa farlo. Dovresti chiamare un'utilità esterna, che è il passo facile da fare da R. Il passaggio difficile è la conversione da HTML a PDF: per "file HTML" intendi la versione di _rendered_ di esso o il semplice testo HTML? Per rendere l'HTML hai praticamente bisogno di un browser web per gestire le immagini, i fogli di stile, eventualmente il javascript. – Spacedman

+0

Hi spacedman - Intendo il semplice testo HTML. Se ho capito bene, avrei bisogno che R eseguisse il comando di stampa dal mio browser. È possibile? –

+1

Quindi vuoi una bella stampante HTML? Evidenzia tag, testo da colorare, quel genere di cose? – Spacedman

risposta

3

Esistono alcuni servizi Web che eseguono la conversione da HTML a PDF e dispongono di API REST, quindi è possibile chiamarli con RCurl. Una rapida ricerca su Internet dà pdfcrowd.com. Ti permettono di caricare documenti e convertire l'URL, ma è un servizio a pagamento.

Il prossimo hit è joliprint, che è gratuito. Prova questo:

library(RCurl) 
url_to_convert <- curlEscape("http://lifehacker.com/5706937/dont-make-important-decisions-until-your-decision-time") #or wherever 

the_pdf <- getForm(
    "http://eu.joliprint.com/api/rest/url/print", 
    url = url_to_convert 
) 
+0

Mi sembra di avere problemi di firewall fastidiosi. Qualcuno può essere ingannato da una rete aziendale provare il mio codice per favore. –

+0

Dà un avvertimento. e il file di output non sembra funzionare. Anche se la tua direzione sembra interessante! # messaggio di avviso: # In testCurlOptionsInFormParameters (.params): # Trovato possibili opzioni arricciatura dei parametri di forma: URL gatto (the_pdf, file = "D: \\ temp.pdf") –

+0

è il loro qualsiasi metodo convertire pdf in html usando R –

1

wkhtmltopdf è un bel strumento cross-platform per questo. Installa come appropriato per il tuo sistema operativo, quindi chiama da R it.g.

system("wkhtmltopdf --javascript-delay 1 in.html out.pdf") 

ho trovato il ritardo javascript necessario per evitare il messaggio "Caricamento [Contrib] /a11y/accessibility-menu.js" essere inclusi nel PDF a causa di carico mathjax - quali file HTML generato da R Markdown andrà bene.