首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从PHP或JavaScript中删除JavaScript限制?

问如何从PHP或JavaScript中删除JavaScript限制?
EN

Stack Overflow用户
提问于 2019-01-22 17:39:05
回答 2查看 2.8K关注 0票数 1

我一直在使用qpdf来消除.pdf限制,这可以通过php使用,如下所示:

代码语言:javascript
复制
shell_exec('qpdf --decrypt "'.$pdfName.'" unlocked.pdf');

这在本地主机上工作得很好,但是由于安全原因,在共享的web主机上执行是不可能的。

因此,我正在寻找一种不用shell命令就能使其工作的方法。

在PHP或JavaScript语言上有什么解决方案吗?

编辑

我正在测试的pdf没有被密码阻止,我只知道我不能从它复制文本,但是在应用了"qpdf -解密.“之后。指挥部,我能做到。

EN

回答 2

Stack Overflow用户

发布于 2019-01-31 08:30:08

您可以在GitHub pdftk中使用以下存储库

示例PHP代码:

代码语言:javascript
复制
use mikehaertl\pdftk\Pdf;

$pdf = new Pdf('/path/my.pdf');

$pdf->allow('AllFeatures')      // Change permissions
    ->flatten()                 // Merge form data into document (doesn't work well with UTF-8!)
    ->compress($value)          // Compress/Uncompress
    ->keepId('first')           // Keep first/last Id of combined files
    ->dropXfa()                 // Drop newer XFA form from PDF
    ->dropXmp()                 // Drop newer XMP data from PDF
    ->needAppearances()         // Make clients create appearance for form fields
    ->setPassword($pw)          // Set owner password
    ->setUserPassword($pw)      // Set user password
    ->passwordEncryption(128)   // Set password encryption strength
    ->saveAs('new.pdf'); 
票数 1
EN

Stack Overflow用户

发布于 2019-01-30 15:03:32

使用用JavaScript (PDF.js)编写的Mozilla的PDF.js,所有这些都是可能的。您可以在共享的web主机上不受限制地显示所有PDF。我已经测试了它的文本副本,文件打印和其他限制-你可以不受限制地做所有这些。

只有文件读取密码,你将需要一个密码,我希望你理解,删除这个密码是不可能与任何其他软件,如果密码是足够强的。您也可以使用密码打开所有文档(如果有密码的话),但所有其他限制都将被跳过。我已经用256位密钥长度测试过它的所有者和用户密码。

在线演示

如果有人不了解OP (原始海报)中的QPDF库,我发现以下有关QPDF库的信息:

一个安全的PDF文件有两种类型的密码:所有者和用户。 所有者密码用于强制执行权限。 用户密码用于打开pdf文件。 ..。 如果它使用用户密码也是安全的,您也可以解密它,但是您需要知道密码。 来源

使用这个库,不需要编写、显式、一些代码来删除PDF限制。它通过从文档automatically.中读取删除限制(用于所有者密码)。在这种情况下,如果设置了用户密码(用于打开PDF文件),则通过读取文档显示此密码automatically.的输入对话框。

结论: OP的 PDF.js库和QPDF库在有限制的情况下也是如此。

如何开始

只需打开下面的主页链接,然后转到Getting 站点(您将在页面的顶部找到这种可能性)--您将找到所有的入门说明。

PDF.js是一个开源项目 (GitHub链接)。

在这个家址上,您会发现:

  • 开始信息
  • 示例(大量代码示例)
  • 常见问题(答案)
  • API描述

有用链接:

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

https://stackoverflow.com/questions/54313682

复制
相关文章

相似问题

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