我有一个包含多个JPEG文件的文件夹。如何从R中的这些JPEG生成PDF文件?
一个JPEG = 1个PDF页面。图像大小相同。
提前多多感谢。
答案 0 :(得分: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管道,但经过一些调整后你可以轻松地自动完成整个过程。
答案 1 :(得分:0)
如果您坚持使用R来执行此操作,那么您可以打开pdf
绘图设备,par
来设置边距(默认可能是大而不是居中),然后在循环中使用plot.new
开始新页面,plot.window
设置坐标等,无需绘制轴等,使用ReadImages包中的read.jpeg
函数(或其他工具/包)读取,EBImage是另一种可能性)然后rasterImage
将jpeg绘制到pdf设备(或用其他图像绘制函数替换其中一些步骤,例如ReadImages中的绘图方法)。
但总体而言,使用更适合此类事物的工具可能更容易/更快/更好/ ......想到了ImageMagick程序套件,LaTeX也被提到了,也可能还有其他工具。
答案 2 :(得分:0)
如果你坚持使用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()