php - 是否可以仅显示 10 页 pdf 中的 2 页?
问题描述
我正在尝试在下载之前向用户显示 pdf 摘要。有 pdf 详细页面显示用户 pdf 封面图片、名称、描述、价格、摘要和立即购买按钮。
这里的用户想要阅读报告摘要,然后单击摘要按钮并打开模型以阅读嵌入 pdf。阅读摘要后,他想购买,然后单击立即购买按钮。
所以,我只想在摘要按钮上显示 2 个 pdf 页面。有总结和现在购买的pdf报告是一样的。
我尝试显示报告摘要,但显示完整的 pdf。
下面是我的代码: -
public function raReportDetail($id){
$reportdetail = '';
$result = $this->connect()->query("SELECT * FROM wm_report WHERE id='$id'");
if($result->num_rows>0){
$row=$result->fetch_assoc();
$reportdetail ='
<div class="col-lg-4 col-md-4 col-sm-12">
<div class="large-5 column">
<div class="xzoom-container">
<img class="img-fluid" src="cover_images/'.$row['cover_img'].'">
</div>
</div>
</div>
<div class="col-lg-8 col-md-8 col-sm-12">
<div class="content-report-detail">
<div class="large-12 column">
<h3>'.$row['name'].'</h3>
</div>
<hr>
<div class="price-wrap">
<h3>Price: <i class="fa fa-rupee"></i> '.$row['price'].'/- </h3>
</div>
<div class="large-7 product-detail">
<p style="text-align: justify;">'.$row['description'].'</p>
<div class="ro-options">
<div class="no-row">
<div class="cart-btn-price">
<ul>
<li>
<a href="" data-toggle="modal" data-target="#Summary"> Summary </a> </li>
<li>
<a href="buy-report.php?id='.$row['id'].'"> Buy Now </a>
</li>
</ul>
</div>
</div>
<div class="sku-code">
<span class="posted_in">Categary: '.$row['category'].'</span>
|
<span class="posted_in">SKU Code : '.$row['sku'].'</span>
</div>
</div>
</div>
</div>
</div>
<div id="Summary" class="modal fade" role="dialog">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h4 style="display: contents;">Summary of '.$row['name'].'</h4>
<button type="button" class="close" data-dismiss="modal">×</button>
</div>
<div class="modal-body">
<embed src="report/'.$row['report'].'" frameborder="0" width="100%" height="400px">
</div>
</div>
</div>
</div>
';
}else{
$reportdetail = 'Something Went Wrong';
}
return $reportdetail;
}
解决方案
如果您在 PHP 中安装了 ImageMagick 库,则可以将特定页面转换为 jpg。
$im = new Imagick();
$im->setResolution(300,300);
// the [0] below indicates the first page only.
$im->readImage('document.pdf[0]');
$im->setImageFormat('jpeg');
$im->writeImage('thumb.jpg');
$im->clear();
$im->destroy();
您可能希望对要用作预览的两个页面执行此操作。
另请参阅ImageMagick::readImage文档。文档本身不是很好,但用户评论非常好。你应该也可以$im->setImageFormat('pdf');
。
推荐阅读
- javascript - 我尝试使用原型函数修改构造函数中的变量,但得到了意想不到的结果
- c# - 在 ReadAsync 上强制执行“字节阈值”
- java - 仅对套件 testng xml 文件执行一次方法
- python - 将方法绑定到自身
- sql-server - 仅当 Datediff 到另一个值足够高时才插入值
- xaml - 在 uwp 中使用带有多选复选框的 mytoolkit 数据网格
- amazon-web-services - SageMaker 训练作业未创建 /opt/ml/input/data/training 目录
- python - 使用 pip 下载命令时如何设置平台
- javascript - Angular 7 与 D3 的集成:添加点击侦听器会引发错误
- node.js - Node.js - 如何使用配置获取自定义环境变量?