我想使用客户端可用选项(javascript,HTML5或其他)检查PDF的版本,因为我必须验证PDF版本必须是1.3并且如果PDF版本是1.3而不是仅将其上载到服务器中
我知道有各种服务器端选项可用于识别pdf版本,但我希望客户端可用选项,因此如果不是版本1.3,则用户无需再次重新上载整个文件
提前致谢。
答案 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>