无论版本如何,PDF标题都是相同的

时间:2016-05-19 03:47:55

标签: php apache validation pdf header

我正在通过标题信息验证PDF上传。我输出了我需要检查的标题部分,返回值是%PDF-1.4

我知道有几种方法可以做到这一点,我可以使用strpos或者我可以使用substr来拉0到3并检查%PDF来验证它。

我的问题是所有PDF文件标题包含前7个位置中的%PDF。我拉7是因为我需要额外的来检查我正在验证的其他文件类型。

%PDF版本是特定的还是全球性的?我知道我可以使用strpos for PDF,但如果我可以更具体,那么我的验证将更有效。实际上,如果所有这些都是%PDF-1,那么它也会更具体,更有效。

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