我正在通过标题信息验证PDF上传。我输出了我需要检查的标题部分,返回值是%PDF-1.4
我知道有几种方法可以做到这一点,我可以使用strpos或者我可以使用substr来拉0到3并检查%PDF来验证它。
我的问题是所有PDF文件标题包含前7个位置中的%PDF。我拉7是因为我需要额外的来检查我正在验证的其他文件类型。
%PDF版本是特定的还是全球性的?我知道我可以使用strpos for PDF,但如果我可以更具体,那么我的验证将更有效。实际上,如果所有这些都是%PDF-1,那么它也会更具体,更有效。
答案 0 :(得分:0)
我的问题是所有PDF文件标题在前7个位置都包含%PDF
是的,他们这样做。从PDF版本1.7开始,前4个字符始终为library(lubridate)
ymd(paste0(df$Date, '-01')) + months(1) - days(1)
# [1] "2014-07-31" "2014-08-31" "2014-09-30"
,这似乎不太可能在将来发生变化。请参阅PDF Format Specification文档(第92页)的第3.4.1节:
PDF文件的第一行是标识文件符合的PDF规范版本的标题。对于文件 符合PDF 1.7,标题应为
%PDF-1.7
但是,由于任何符合早期版本PDF的文件也是如此 符合版本1.7,处理PDF 1.7的应用程序可以 也接受带有以下任何标题的文件:
%PDF-1.0
%PDF-1.1
%PDF-1.2
%PDF-1.3
%PDF-1.4
%PDF-1.5
%PDF-1.6