2012-05-09 13 views
10

Tengo que combinar los archivos PDF cuando un usuario lo necesita. Los archivos ya están disponibles y todo está bien. Estoy utilizando el código de barbecho para combinar los archivos:FPDI fusiona archivos PDF, aparece una línea extraña

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"); 

Todos los archivos se fusionan y todo el contenido está ahí. El problema es que, en la parte superior de cada página en el nuevo archivo, aparece una línea negra. Los contenidos, márgenes, etc. son absolutamente los mismos que en el archivo original, pero esta línea surge de la nada (eso puedo decir). No es grueso, pero es claramente visible. No se mezcla con el otro contenido ni nada, pero no se necesita allí y necesito eliminarlo.

He intentado cambiar el segundo parámetro a la función ImportPage() a todas las opciones descritas en el documentation, pero no hay diferencia alguna. Como esto es lo único que veo que puedo cambiar en estas pocas líneas de código, realmente no sé qué está causando que aparezca la línea negra. He buscado problemas similares, pero hasta ahora, no tuve suerte. ¿Alguien tiene una idea? ¡Gracias por adelantado!

before after

+0

¿Agregaría una captura de pantalla? - probablemente sea la mejor manera de ilustrar el problema. – halfer

+0

He agregado capturas de pantalla, pero como no puedo revelar el contenido de los archivos, solo he cortado lo que se ve en la parte superior cuando abro el mismo archivo, una vez normal, una vez que se fusionó con otros archivos. Todo lo de abajo está absolutamente posicionado de forma idéntica. – Nikoloff

Respuesta

1

tengo solución de este problema. El encabezado y pie de página predeterminado en tcpdf contiene línea. Usted tiene que borrar el cuerpo de los métodos de pie de página() y la cabecera() en la clase TCPDF en la línea 4214.

18

Una mejor cosa que hacer, ya que no tendrá que modificar la fuente es añadir las líneas:

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

al comienzo de su función concat().

+2

Gracias, simple pero efectivo. :) – illuzive

2

Para evitar editar la biblioteca TCPDF, sobrescriba los métodos Pie de página y Encabezado en su clase extendida.

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