我希望能够在浏览器中输出pdf(这一切都很好和花花公子),但限制了显示的页数。 IE浏览器。读者可以看到他试图购买的内容是准确的,但与此同时,我没有免费提交文件。为了我的目的,我可以批量编辑文件以创建新的3-5页的pdf,但这很麻烦,我还必须上传“登陆页面”#39; pdf到服务器,记住产品的类别和诸如此类的东西。
我要问的简化版本,
用户 - >下载链接 - > pdf打开前5页 - >立即购买'在第6页的pdf页面;
我很高兴通过第三方脚本执行此操作。唯一需要的是用户无法访问整个pdf文档(例如,如果触发器链接为<a href="link.tld/name" id="trigger">
,则用户不应该获取完整文档的URL。
答案 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');