有没有办法从R计算PDF文件中的页数?如果没有,是否还有另一种与操作系统无关的方法呢?到目前为止,我找到的唯一答案就是这个,它是针对Windows 7的.
我正在尝试在R中编译一些报告,并knitr
汇总先前脚本的PDF绘图输出,该脚本自动处理数百个数据集.一些数据集很糟糕,最终打破了绘图功能.由于绘图函数包含在pdf
函数中,因此生成一个空的PDF文件,由报告找到并中断pdflatex
.尝试修改分析脚本以避免首先生成这些PDF已被证明是困难的,并且是特定于案例的.我真的希望有一些功能可以嵌入到报告中,在包含之前检查PDF> = 1页.我更喜欢基于R的解决方案,尽管bash,LaTeX knitr
或pdflatex解决方案也可能就足够了.
编辑:另外,正如我在上一个回答中提到的那样,我试图使用Rpoppler
(这里)但是无法让它编译.我在没有管理员权限的CentOS 6环境中使用R版本3.3.0.
小智 8
下面的脚本对我有用.
#########################################
#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
Run Code Online (Sandbox Code Playgroud)
希望能有所帮助.祝好运.
以上建议和代码似乎不必要地变得不透明或复杂。一旦pdftools
被安装,该pdf_info
命令将返回一个页面场:
library(pdftools)
# returns number of pages
# assumes your_file_name.pdf is in working directory
pdf_info("your_file_name.pdf")$pages
# to see other available metadata in pdf_info object, use names()
names(pdf_info("your_file_name.pdf"))
Run Code Online (Sandbox Code Playgroud)