【问题标题】:FPDI merge PDF files, strange line appearsFPDI合并PDF文件,出现奇怪的线条
【发布时间】:2012-05-18 09:41:55
【问题描述】:

当用户需要时,我必须合并 PDF 文件。这些文件已经存在,一切都很好。我正在使用下面的代码来合并文件:

class concat_pdf extends FPDI 
{
    var $files = array();

    function setFiles($files) 
    {
        $this->files = $files;
    }

    function concat() 
    {
        foreach($this->files AS $file) 
        {
            $pagecount = $this->setSourceFile($file);

            for($i = 1; $i <= $pagecount; $i++) 
            {
                $this->AddPage('P');
                $tplidx = $this->ImportPage($i);
                $this->useTemplate($tplidx);
            }
        }
    }
}

$pdf = new concat_pdf();
$pdf->setFiles($files); //$files is an array with existing PDF files.
$pdf->concat();
$pdf->Output("bulk.pdf", "D");

所有文件都已合并,所有内容都在那里。问题是,在新文件的每一页的顶部,都会出现一条黑线。内容、边距等都与原始文件完全相同,但这一行突然出现(我可以说)。它不厚,但清晰可见。它不会与其他内容或任何东西混淆,但在那里不需要,我需要将其删除。

我尝试将ImportPage() 函数的第二个参数更改为documentation 中描述的所有选项,但没有任何区别。由于这是我看到的唯一可以在这几行代码中更改的内容,我真的不知道是什么导致黑线出现。 我已经搜索过类似的问题,但到目前为止 - 没有运气。有人有想法吗?提前致谢!

【问题讨论】:

  • 你会添加截图吗? - 可能是说明问题的最佳方式。
  • 我添加了屏幕截图,但由于我无法显示文件的内容,所以我只剪切了打开同一个文件时在顶部看到的内容 - 一旦正常,一旦与其他文件合并。以下所有内容的位置都完全相同。

标签: php pdf fpdi


【解决方案1】:

由于您不必修改源代码,最好的做法是添加以下行:

    $this->setPrintHeader(false);
    $this->setPrintFooter(false);

在 concat() 函数的开头。

【讨论】:

  • 谢谢,简单但有效。 :)
【解决方案2】:

为避免编辑 TCPDF 库,请覆盖扩展类中的 Footer 和 Header 方法。

class concat_pdf extends FPDI 
{
    public function Footer() {}
    public function Header() {}
}

【讨论】:

    【解决方案3】:

    我有这个问题的解决方案。 tcpdf 中的默认页眉和页脚包含行。您必须在第 4214 行删除 tcpdf 类中的方法体 footer() 和 header()。

    【讨论】:

      猜你喜欢
      • 2014-04-19
      • 1970-01-01
      • 1970-01-01
      • 2015-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-06
      • 1970-01-01
      相关资源
      最近更新 更多