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