Подтвердить что ты не робот

FPDI объединяет файлы PDF, появляется странная строка

Мне нужно объединить 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() ко всем параметрам, описанным в документации, но нет никакой разницы бы то ни было. Поскольку это единственное, что я вижу, я могу изменить в этих нескольких строках кода, я действительно не знаю, что вызывает черную линию. Я искал похожие проблемы, но пока не повезло. У кого-нибудь есть идея? Спасибо заранее!

beforeafter

4b9b3361

Ответ 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 содержит строку. Вы должны удалить тело методов footer() и header() в классе tcpdf в строке 4214.