如何从R中计算PDF中的页数?

use*_*531 3 pdf r

有没有办法从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)

希望能有所帮助.祝好运.


Oma*_*sow 7

以上建议和代码似乎不必要地变得不透明或复杂。一旦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)