有没有办法从R计算PDF文件中的页数?如果没有,是否还有另一种与操作系统无关的方法呢?到目前为止,我找到的唯一答案是this,它特定于Windows 7.
我正在尝试在R和knitr
中编译一些报告,汇总上一个脚本的PDF绘图输出,该脚本会自动处理数百个数据集。一些数据集很糟糕,最终打破了绘图功能。由于绘图函数包含在pdf
函数中,因此生成一个空PDF文件,由报告找到,并中断pdflatex
。尝试修改分析脚本以避免首先生成这些PDF已被证明是困难的,并且是非常特定于案例的。我真的希望有一些功能可以嵌入到报告中,在包含之前检查PDF的> = 1页面。我更喜欢基于R的解决方案,尽管bash,LaTeX,knitr
或pdflatex解决方案也可能就足够了。
编辑:另外,正如我之前回答的链接中所提到的,我尝试使用Rpoppler
(here)但无法进行编译。我在没有管理员权限的CentOS 6环境中使用R版本3.3.0。
答案 0 :(得分:7)
下面的脚本对我有用。
#########################################
#GET PDF PAGE NUMBER :: R - JULY 16
##########################################
##SOURCE
#----pdftools package
#https://cran.rstudio.com/web/packages/pdftools
#Requirement
#brew install poppler
## TO AVOID ERROR ::: configure: error: cannot determine poppler-glib compile/link flags
#INSTALL PACKAGES
#install.packages("pdftools", dependencies=TRUE) #only once
#IN/OUT FILES
in_put_pdf="pathTo/test.pdf"
out_put_pdf="pathTo/testCopy.pdf"
#LOAD LIBS
library(pdftools)
#Copy of the original file
file.copy(file.path(Sys.getenv("PATH_TO_PDF_FILE"), in_put_pdf), out_put_pdf)
#Many informations about the file are displayed here
info <- pdf_info(out_put_pdf)
text <- pdf_text(out_put_pdf)
fonts <- pdf_fonts(out_put_pdf)
files <- pdf_attachments(out_put_pdf)
#To get the number of pages
numberOfPageInPdf = info[2]
numberOfPageInPdf
希望能有所帮助。祝你好运。
答案 1 :(得分:5)
上述建议和代码似乎不必要地不透明或复杂。安装pdftools
后,pdf_info
命令将返回页面字段:
library(pdftools)
# returns number of pages
# assumes your_file_name is in working directory
pdf_info("your_file_name")$pages
# to see other available metadata in pdf_info object, use names()
names(pdf_info("your_file_name"))