2013-02-27 4 views
0

J'essaie de rendre le HTML de vue, avec div, tables, thead, tboody, tfoot, h2, h3 et ccs.Erreur avec le fichier de rendu DomPdf html en php

Le résultat de mon rendu en php avec donpdf est:

"%PDF-1.3 1 0 obj << /Type /Catalog /Outlines 2 0 R /Pages 3 0 R >> endobj 2 0 obj << /Type /Outlines /Count 0 >> endobj 3 0 obj << /Type /Pages /Kids [6 0 R ] /Count 1 /Resources << /ProcSet 4 0 R /Font << /F1 8 0 R >> >> /MediaBox [0.000 0.000 612.000 792.000] >> endobj 4 0 obj [/PDF /Text ] endobj 5 0 obj << /Creator (DOMPDF) /CreationDate (D:20130227215320+00'00') /ModDate (D:20130227215320+00'00') >> endobj 6 0 obj << /Type /Page /Parent 3 0 R /Contents 7 0 R >> endobj 7 0 obj << /Filter /FlateDecode /Length 66 >> stream x��2�[email protected]&�ҹ�B�M��́����BH����������BH��B���H�f�B���k�� endstream endobj 8 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Times-Roman /Encoding /WinAnsiEncoding >> endobj xref 0 9 0000000000 65535 f 0000000008 00000 n 0000000073 00000 n 0000000119 00000 n 0000000273 00000 n 0000000302 00000 n 0000000416 00000 n 0000000479 00000 n 0000000616 00000 n trailer << /Size 9 /Root 1 0 R /Info 5 0 R >> startxref 725 %%EOF" 

Toute idée pourquoi cette réponse dompdf rend?

Voici le code generate PDF:

class PdfView extends PhpView { 

public $orientation = "portrait"; 
public $size = "letter"; 

function render(Response $response) { 
    $response->resetBuffer(); 
    parent::render($response); 
    $buffer = utf8_decode($response->getBuffer()); 
    $response->resetBuffer(); 
    Context::load("app/core/lib/dompdf/dompdf_config.inc"); 
    $pdf = new DOMPDF(); 
    $pdf->set_paper($this->size,$this->orientation); 
    $pdf->load_html($buffer); 
    $pdf->render(); 
    $render = $pdf->output(); 
    if ($path = @$response->result->options->save) 
     file_put_contents($path, $render); 
    else { 
     $response->setHeader("Content-Type", "application/pdf"); 
     echo $render; 
    } 
} 

}

L'en-tête d'application est "application/pdf". Plz m'aider !!

+0

qui ressemble comme un PDF. Envoyez-vous l'en-tête de type de contenu approprié? –

+0

@Pekka 웃 est juste, c'est à peu près un document PDF. Pouvez-vous poster le code que vous utilisez? FYI, '$ dompdf-> stream()' définira les en-têtes appropriés pour vous. – BrianS

Répondre

0

J'ai eu le même problème. La question de base se trouve dans la bibliothèque de classes, aux lignes:

/* FUNCION QUE DARÁ ERRORES*/ 
/* Function with troubles*/ 
if (PHP_VERSION < 6) { 
    $magic_quotes = get_magic_quotes_runtime(); 
    set_magic_quotes_runtime(0); 
} 
$file_buffer = file_get_contents($path); 
$file_buffer = $this->EncodeString($file_buffer, $encoding); 
fclose($fd); 
if (PHP_VERSION < 6) { set_magic_quotes_runtime($magic_quotes); } 
    return $file_buffer; 
} 

Vous devez remplacer par ce code:

/* NUEVA FUNCION CORRECTA */ 
/* Fuction correct*/ 
if (PHP_VERSION < 6) { 
    $magic_quotes = get_magic_quotes_runtime(); 
    ini_set("magic_quotes_runtime", 0); 
} 
$file_buffer = file_get_contents($path); 
$file_buffer = $this->EncodeString($file_buffer, $encoding); 
fclose($fd); 
if (PHP_VERSION < 6) { ini_set("magic_quotes_runtime", $magic_quotes); } 
    return $file_buffer; 
} 

J'espère que cette aide code :)