首页 > 解决方案 > 是否可以仅显示 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">&times;</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;
}

标签: phpmysqlpdf

解决方案


如果您在 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');

用 PHP 和 ImageMagick 从 Convert PDF to JPEG偷来的


推荐阅读