2012-05-09 2 views
10

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

before after

+0

Вы добавили скриншот? - вероятно, будет лучшим способом проиллюстрировать проблему. – halfer

+0

Я добавил скриншоты, но так как я не могу раскрыть содержимое файлов, я только вырезал то, что видно вверху при открытии того же файла - когда-то нормальный, когда-то слитый с другими файлами. Все ниже абсолютно идентично. – Nikoloff

ответ

1

У меня есть решение этой проблемы. Заголовок и нижний колонтитул по умолчанию в tcpdf содержит строку. Вы должны стереть тело методы сноске() и заголовок() в классе TCPDF на линии 4214.

18

Лучше всего сделать, так как вы не должны изменить на источник добавить следующие строки:

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

в начале вашей функции concat().

+2

Спасибо, просто, но эффективно. :) – illuzive

2

Чтобы избежать редактирования библиотеки TCPDF, перезапишите методы Footer и Header в расширенном классе.

class concat_pdf extends FPDI 
{ 
    public function Footer() {} 
    public function Header() {} 
} 
Смежные вопросы