如何在R中修改PDF元数据?寻求pdftools无法写入的替代方案
用R修改PDF元数据的解决方案
1. pdftools能否写入修改后的元数据?
不行。pdftools包的核心定位是读取PDF内容、元数据及完成提取类操作,没有提供写入或修改PDF元数据的API,仅靠该包无法完成修改后保存的操作。
2. 其他无需额外exe的R解决方案
方案一:使用pdfboxr包
pdfboxr基于Apache PDFBox(Java库),不需要单独下载外部exe文件,R包会自动处理Java依赖(前提是系统已安装Java环境),支持修改PDF元数据并保存,示例代码如下:
先安装包:
install.packages("pdfboxr")
修改元数据操作:
library(pdfboxr) # 读取目标PDF pdf_file <- file.path("c:/users/seb", "230307_0746_AEF.pdf") doc <- pdf_load(pdf_file) # 修改元数据(示例:更新标题、作者、主题) new_meta <- list( Title = "修改后的文档标题", Author = "Seb", Subject = "更新后的主题内容" ) # 应用修改并保存为新文件 pdf_set_metadata(doc, new_meta) pdf_save(doc, file.path("c:/users/seb", "230307_0746_AEF_modified.pdf")) # 关闭文档释放资源 pdf_close(doc)
方案二:使用qpdf包
qpdf包封装了qpdf工具,多数系统(如Linux发行版)已预装qpdf;Windows/macOS环境下,安装R包时通常会自动处理依赖(无需手动下载exe)。可通过命令行参数修改元数据,示例代码:
先安装包:
install.packages("qpdf")
修改元数据操作:
library(qpdf) input_pdf <- file.path("c:/users/seb", "230307_0746_AEF.pdf") output_pdf <- file.path("c:/users/seb", "230307_0746_AEF_modified.pdf") # 定义元数据修改参数 metadata_args <- c( "--set-title", "修改后的标题", "--set-author", "Seb", "--set-subject", "新主题" ) # 执行修改并生成新PDF qpdf(input_pdf, output_pdf, args = metadata_args)
内容的提问来源于stack exchange,提问作者Seb
相关产品推荐
相关产品推荐

