【问题标题】:FPDI slightly crops my imported PDFFPDI 略微裁剪了我导入的 PDF
【发布时间】:2017-09-28 19:09:08
【问题描述】:

我正在使用 FPDI 和 FPDF,当我导入具有全尺寸、美观设计的 pdf 时,由于某种原因,我保存在文件夹中的生成 pdf 的大小略有修改,有点小/裁剪在底部和右侧/左侧。如何按原样导入 PDF?尺寸和原版一样吗?提前致谢!

<?php
use setasign\Fpdi\Fpdi;

require_once('FPDF/fpdf.php');
require_once('FPDI/src/autoload.php');

// initiate FPDI
$pdf = new Fpdi();

$pdf->setSourceFile('file.pdf');
$tplidx = $pdf->importPage(1);

$pdf->addPage();
$pdf->useTemplate($tplidx);

$pdf->SetFont('Helvetica');
$pdf->SetXY(5, 5);
$pdf->Write(8, 'This is an example of inputted text.');

$filename="test8.pdf";
$pdf->Output($filename, 'F');

?>

【问题讨论】:

    标签: php pdf fpdf fpdi


    【解决方案1】:

    这是一个很好的问题,表明 FPDI 不会修改 PDF,而是让您将页面导入可重用的结构。

    您在构造函数和 addPage() 调用中均未定义页面大小,因此生成的页面大小为 A4(默认大小)。

    如果您导入页面,例如此导入页面的字母格式不适合 A4 页面 - 当然。

    对此有一些解决方案:

    A:获取导入页面的大小,调用AddPage()这个参数:

    $pageId = $this->ImportPage($pageNo);
    $s = $this->getTemplatesize($pageId);
    $this->AddPage($s['orientation'], $s);
    $this->useTemplate($pageId); 
    

    B:将useImportedPage()/useTemplate()方法的$adjustPageSize参数设置为true:

    $this->AddPage();
    $pageId = $this->ImportPage($pageNo);
    $this->useTemplate($pageId, ['adjustPageSize' => true]); 
    

    我会建议解决方案 A,因为它很简单。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-24
      • 1970-01-01
      • 2015-07-07
      • 2011-08-13
      • 2013-06-09
      • 2016-07-26
      • 1970-01-01
      • 2019-05-02
      相关资源
      最近更新 更多