如何使用javascript + HTML5了解PDF版本

时间:2018-03-15 09:42:13

标签: javascript html5 pdf

我想使用客户端可用选项(javascript,HTML5或其他)检查PDF的版本,因为我必须验证PDF版本必须是1.3并且如果PDF版本是1.3而不是仅将其上载到服务器中

我知道有各种服务器端选项可用于识别pdf版本,但我希望客户端可用选项,因此如果不是版本1.3,则用户无需再次重新上载整个文件

提前致谢。

1 个答案:

答案 0 :(得分:2)

您必须使用FileReader API

首先创建一个FileReader并注册一个onload处理程序。

由于PDF的前几个字节应该是纯ASCII,我们可以将它们作为文本读取,看起来应该像%PDF-1.3(其中1.3是版本),所以如果我们得到字节5到7(是的我知道它说file.slice(5, 8)我没有写规范;))。

应该相当直接地进行表单验证。 留给读者练习

<强> CAVEAT

这是一个简单的示例,适用于x.x版本,但无法正确读取版本x.xx。

const pdfUpload = document.getElementById('pdfUpload');
const pdfVersion = document.getElementById('pdfVersion');

// wait for input to be "changed"
pdfUpload.addEventListener('change', (e) => {

  // grab the selected file
  let [file] = e.target.files;

  if (!file) return;

  // use a FileReader
  let reader = new FileReader();
  reader.onload = (e) => {
  
    // read the content
    let versionString = e.target.result;
    pdfVersion.innerText = versionString;
  };

  // PDF file should start something like '%PDF-1.3'
  // grab only the bits we need
  reader.readAsText(file.slice(5, 8));
})
<input type="file" id="pdfUpload" />
<div>PDF Version: <span id="pdfVersion"></span></div>