3

我有一个包含多个 JPEG 文件的文件夹。如何从 R 中的这些 JPEG 生成 PDF 文件?

一个 JPEG = 1 个 PDF 页面。图像大小相同。

提前非常感谢。

4

3 回答 3

1

您可以使用 Latex 轻松完成此操作。这很好,因为这样你就可以使用 Sweave 来完成整个事情。

您可以按照以下方式进行操作:

% This is some Sweave file
\documentclass{article}
\usepackage{graphicx}
\begin{document}

<<results=tex,echo=FALSE>>=
mypics <- dir('mypics')
for(i in mypics){
cat("\\includegraphics{", i, "}\n\n", sep = "")
}
@
\end{document}

好的,您必须设置您的 Sweave 管道,但是通过一些调整,您可以轻松地自动化整个过程。

于 2013-01-30T11:07:37.067 回答
1

如果您坚持使用 R(其他工具更合适),请尝试以下操作(缓慢,未经测试):

   lf = list.files(pattern = "jpeg") # image filenames

   library(jpeg)
   jpegs = lapply(lf, readJPG)

   library(grid)
   pdf("output.pdf", width=8, height=4)
   grid.raster(jpegs[[1]])
   lapply(jpegs[-1], function(x) {grid.newpage() ; grid.raster(x)} ) -> bquiet
   dev.off()
于 2013-01-30T18:28:43.060 回答
0

如果您坚持使用 R 来执行此操作,那么您可以打开一个pdf绘图设备,par设置边距(默认可能是大而不是居中),然后在循环中使用plot.new开始一个新页面并plot.window设置坐标,等不绘制轴等,使用 ReadImages 包中的read.jpeg功能(或其他工具/包来读取,EBImage 是另一种可能性)然后rasterImage将 jpeg 绘制到 pdf 设备(或用其他图像绘制功能替换其中一些步骤,如ReadImages中的plot方法)。

但总体而言,使用为这类事情设计的更好的工具可能更容易/更快/更好/...。我想到了 ImageMagick 程序套件,还提到了 LaTeX,可能还有其他工具。

于 2013-01-30T17:11:45.870 回答