限制浏览器中显示的PDF上的页数

时间:2015-03-10 03:13:27

标签: javascript php html pdf

我希望能够在浏览器中输出pdf(这一切都很好和花花公子),但限制了显示的页数。 IE浏览器。读者可以看到他试图购买的内容是准确的,但与此同时,我没有免费提交文件。为了我的目的,我可以批量编辑文件以创建新的3-5页的pdf,但这很麻烦,我还必须上传“登陆页面”#39; pdf到服务器,记住产品的类别和诸如此类的东西。

我要问的简化版本,

用户 - >下载链接 - > pdf打开前5页 - >立即购买'在第6页的pdf页面;

我很高兴通过第三方脚本执行此操作。唯一需要的是用户无法访问整个pdf文档(例如,如果触发器链接为<a href="link.tld/name" id="trigger">,则用户不应该获取完整文档的URL。

4 个答案:

答案 0 :(得分:1)

我认为唯一可行的方法是创建PDF的另一个副本,它只有前五页......然后从第6页开始,该消息将在那里购买本书和如何购买以及金额是多少等.....

所以,只需创建另一个预览,如版本

答案 1 :(得分:1)

您实际上可以通过在网络服务器上添加pdf文件的另一个副本并使用tcpdf php类来实现,您可以通过删除剩余页面来实际限制页面。

require_once('tcpdf_include.php');

$pdf->deletePage(6,100);//Deletes pages from 6-100

您可以阅读完整的tcpdf here

这是我对我网站上任何pdf处理程序的选择。

答案 2 :(得分:0)

再次感谢@ user2768665,以便找到解决问题的最佳方法。这是我的游戏计划:

由于我有链接中命名的文件,我首先使用GET获取产品的WP链接,然后将其存储在变量中,preg_replace它以擦除链接的其余部分(使用正则表达式),存储该结果在一个新的var中,让我们说$link2p

然后我添加对产品的调用(下载)以打开处理php脚本,使用tcpdf(user2768665的答案)删除第5页之后的任何内容,添加公司徽标为第6页的页面,以及在它的最后添加

Click <a href="http://domain.ltd/saleProcessPage/<?php echo $link2p;?>"here</a> to download <?php echo $link2p;?> FULL PDF

或者,在我的情况下(因为我有第三方支付平台 - 你可能也一样),我们首先对产品进行数据库检查(根据其名称)以检索我们产品的链接在我们的付费平台上,然后我们就像上面那样。

然后,我们修改原始的pdf名称并以不同的方式输出;

$pdf->Output($link2p.'.pdf', 'Insert w/e random string generator.pdf');

这是一个很好的解决方案,因为它将原始pdf文件保存在任何“Inspect Element”用户之外,它在后端运行,并且随机发出随机名称。

//我正在考虑的其他事情:

由于我还没有阅读tcpdf的完整文档,因此无法确定这一点,但我没有看到任何页面计数能力(为了完全自动为文件执行此操作所需:ie {{ 1}}为了这个目的,我在提出问题之前添加了我读过的内容:Count the number of pages in a PDF in only PHP。所以我们将它存储到$pdf->deletePage(6,100); becomes $pdf->deletePage(6,endofpdf);变量中(以查看pdf有多少个文件),这样我们就可以了可以使用$count再次,没有阅读tcpdf完整文档,所以这可能没用。

在我睡着之后,我将对此进行完整的代码测试,并以最终形式发布示例。希望这会帮助其他人停留在同一个地方。

非常感谢@ user2768665和@Monts_mind_hacker对该主题感兴趣。太棒了。

答案 3 :(得分:0)

您可以使用FPDI创建前5页的预览:

$pdf = new FPDI();
$pageCount = $pdf->setSoruceFile('your.pdf');
$pageCount = min($pageCount, 5);

for ($pageNo = 1; $pageNo <= $pageCount; $pageNo++) {
     $tplIdx = $pdf->importPage($pageNo);
     $s = $this->getTemplatesize($tplIdx);
     $this->AddPage($s['w'] > $s['h'] ? 'L' : 'P', array($s['w'], $s['h']));
     $this->useTemplate($tplIdx);
}

$pdf->AddPage();
// add the link to the shopping cart on the last page...

$pdf->Output('5-pages.pdf', 'D');