FPDI合并PDF文件,出现奇怪的线条

Posted

技术标签:

【中文标题】FPDI合并PDF文件,出现奇怪的线条【英文标题】:FPDI merge PDF files, strange line appears 【发布时间】: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 中描述的所有选项,但没有任何区别。由于这是我看到的唯一可以在这几行代码中更改的内容,我真的不知道是什么导致黑线出现。 我已经搜索过类似的问题,但到目前为止 - 没有运气。有人有想法吗?提前致谢!

【问题讨论】:

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

【讨论】:

以上是关于FPDI合并PDF文件,出现奇怪的线条的主要内容,如果未能解决你的问题,请参考以下文章

PDFMerger 与 FPDI-PDF-PARSER

如何使用php合并两个pdf文件

使用PHP合并PDF文件[关闭]

使用 FPDI 加载到 TCPDF 时调整 PDF 大小

使用 FPDI+TCPD 导入的 PDF 模板的大小问题

支持 PDF 版本高于 1.4 的 FPDI 免费解析器