簡體   English   中英

在 R 中使用 Magick 將 .png 轉換為多頁 pdf

[英]Convert .png to multi-page pdf using Magick in R

我有一個包含 100 張 .png 圖像的目錄,我想將其轉換為 pdf。

圖像正是我想要的 pdf 大小。

我可以像這樣使用magick “手動”創建一個多頁pdf:

library(magick)

img1 <- image_read("image1.png")
img2 <- image_read("image2.png")

image_write(c(img1, img2), format = "pdf", "check.pdf")

但是我無法讓 image_write 命令接受文件名向量來自動執行此過程。 例如,我想從我的目錄“test”中的 .png 圖像制作一個 100 頁的 pdf:

all_images <- list.files("test")

我認為purrr可能會有所幫助,但沒有運氣:

library(purrr)

image_write(map(all_images, image_read), format = "pdf", "check.pdf")

有任何想法嗎?

您需要使用c連接不同的"magick-image對象。

和做c(img1,img2,img3,...)

all_images_1 <- purrr::reduce(
    purrr::map(all_images,image_read),
    c
)

image_write(all_images_1 , format = "pdf", "check.pdf")

magick::image_*()函數是矢量化的。 所以你可以這樣做:

dir = '/path/to/dir'
fl = list.files(dir, full.names = TRUE, pattern = '.png')
# magick
img = image_read(fl) # read from vector of paths
img2 = image_append(img, stack = TRUE) # places pics above one another

image_write(img2, file.path(dir, 'check.pdf'))

這會將圖像置於彼此之上,而不是在單個頁面上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM