2014-02-25 49 views
1

我想輸出示例乳膠表爲jpg從R.:ř膠乳輸出表爲jpg文件

df <- data.frame(variable = c("a","b","c"), n=1:3) 
xtable(df) 

我可以使用knitr用:

\documentclass{article} 
\usepackage[english,ngerman]{babel} 

\begin{document} 

<<echo=FALSE, results="asis">>= 
xtable(xdf) 
@ 

\end{document} 

但這產生一個pdf文件。我可以截取表格並保存爲jpg,但我想避免這種解決方法。

我更傾向於將輸出從R中乳膠表到Windows

windows(width=20,height=15) 

,然後將其保存爲JPG文件

savePlot("latex_table", type="jpg") 

不過,我想,這是不可能的,因爲它必須首先由乳膠解釋。

我想這樣做的原因是:我想生成定期更新的圖形和表格作爲jpg手動插入到網頁。我想使用乳膠桌具有設計的所有能力來創建漂亮的桌子。

+3

jpeg是一個可怕的文件格式,考慮PNG – baptiste

+0

我從來沒有想過這件事。我改爲PNG。謝謝。 – giordano

回答

2

您可以使用ImageMagickconvert工具(使用R中的system2()函數執行)將PDF文件轉換爲JPEG。在此之前,您可能希望裁剪LaTeX文檔中的邊距(請參閱pdfcrop)。我無法幫助您解釋如何在Windows上安裝這些工具,但例如在Fedora Linux上,你只需要sudo yum install texlive-pdfcrop-bin ImageMagick。然後調用:

  1. knitr::knit2pdf(...)
  2. system2('pdfcrop', 'input.pdf output.pdf')
  3. system2('convert', 'output.pdf output.jpg')

一切都可以設置在批處理模式下運行,無需任何用戶交互,所以你甚至可能會認爲,試圖自動化將圖形上傳到網絡服務器。

編輯:您也可以嘗試在LaTeX中使用\documentclass[11pt]{standalone}生成一個PDF頁面,頁邊距最小。

+0

非常感謝您的回答。我不知道這些工具。我將它們安裝在Windows 7上,但我遇到了兩個問題:(1)在R system2('pdfcrop.pl',...)和system2('convert',...)不起作用,後者給出「無效的參數 - output.jpg「。 (2)在DOS上,兩個命令都產生輸出,但前者(pdfcrop)只調整了表的大小,但沒有裁剪白色邊框。我需要一些時間來了解如何使用它們(以及爲什麼system2()不適用)。無論如何,這些工具都有一定的潛力。 – giordano

+0

請確保'convert'在你的PATH中,參見[這裏](http://stackoverflow.com/questions/9546324/)。我已經添加了一個小貼士,如何通過使用'standalone'文檔類並且不使用'pdfcrop'來減少頁邊距。 – gagolews