2011-09-20 36 views
5

我希望使用R將HTML文件轉換爲PDF文件。將文件轉換(打印)爲PDF - 使用R? (在Windows中)

是否有可執行此轉換的命令或工具/命令組合?

+0

不是一個真正的R問題,因爲R無法做到這一點。你必須調用一個外部實用程序,這是從R這一步的簡單步驟。艱難的一步是HTML到PDF的轉換 - 「HTML文件」是指它的_rendered_版本還是純HTML文本?要呈現HTML,您幾乎需要一個Web瀏覽器來處理圖像,樣式表,javascript可能。 – Spacedman

+0

嗨spacedman - 我的意思是簡單的HTML文本。 如果我理解正確,我需要讓R從我的瀏覽器「運行」打印命令。這甚至有可能嗎? –

+1

所以你想要一個HTML漂亮的打印機?突出標籤,着色文本,那種事情? – Spacedman

回答

3

有一些Web服務可以執行HTML到PDF的轉換並具有REST API,因此您可以使用RCurl來調用它們。快速的互聯網搜索提供pdfcrowd.com。他們讓您上傳文件以及轉換網址,但這是一項付費服務​​。

下一個點擊是joliprint,這是免費的。試試這個:

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

我似乎有討厭的防火牆問題。有人可以不受公司網絡的阻礙,請嘗試我的代碼。 –

+0

它給出警告。並且輸出文件似乎不起作用。儘管你的方向似乎很有趣! #警告消息: #在testCurlOptionsInFormParameters(.params):在形式參數 #實測值可能捲曲選項:URL 貓(the_pdf,文件= 「d:\\ temp.pdf」) –

+0

是它們的任何方法使用R將PDF轉換爲html –

1

wkhtmltopdf是一個不錯的跨平臺工具。根據您的操作系統進行適當安裝,然後從R調用例如

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

我發現需要避免該消息的JavaScript延遲「裝入[的Contrib] /a11y/accessibility-menu.js」被包括在PDF作爲裝載MathJax的結果 - 其由R降價生成的HTML文件會做。