首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PDF文件和JavaScript:如何检查PDF是原生的还是扫描的

PDF文件和JavaScript:如何检查PDF是原生的还是扫描的
EN

Stack Overflow用户
提问于 2021-07-09 12:58:35
回答 1查看 1.6K关注 0票数 0

我正在使用JavaScript / HTML / CSS开发一个前端应用程序。此应用程序允许用户上传PDF文件。我正在寻找一种方法,使用使用JavaScript,来区分一个pdf文件是原生还是扫描

本机PDF是指“与生俱来的数字”文档的PDF,因为该PDF是从文档的电子版本而不是从打印创建的。

相比之下,扫描的PDF是打印文档的PDF,例如当您从打印日志中扫描页面,然后将此文件保存为PDF时。请只提交本地PDF。

在原生pdf的情况下,我不想允许上传,而在另一种情况下,我想允许上传。我找到了这个JavaScript库:https://pdfjs.express/,也许这是我所需要的,但我不知道从哪里开始。在堆栈溢出中,我找到了一些关于它的东西,但是没有找到关于JavaScript代码的内容。

EN

回答 1

Stack Overflow用户

发布于 2021-07-09 13:48:56

“本机PDF”几乎总是包含一个/Font对象。

“扫描PDF”可能不会。

在绝大多数情况下,这应适用于:

代码语言:javascript
复制
fetch(url)
  .then(response => response.blob())
  .then(data => data.text())
  .then(data => {
    if (/\/Font/.test(data)) {
      console.log('Probably native');
    } else {
      console.log('Probably scanned');
    }
  })

针对你的评论:

要使这更准确,需要解析整个文件,这并不简单,因为PDF对象通常是LZW压缩的。参考文献。此外,PDF有时会有扫描文本和常规文本的混合。因此,没有办法使这100%的准确性。

JavaScript访问本地文件将面临安全风险。如果您正在运行一个服务器,用户可以上传他们的文件,服务器可以使用Node.js解析它。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68317216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档