2013-02-27 3 views
0

Я пытаюсь отобразить HTML-представление, с div, tables, thead, tboody, tfoot, h2, h3 и ccs.Ошибка с DomPdf render html в php

Результат моего рендеринга в PHP с donpdf является:

"%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" 

Любая идея, почему dompdf делает этот ответ?

Это код генерации 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; 
    } 
} 

}

Заголовок приложения является "приложения/PDF". Plz помогите мне !!

+0

Это выглядит как PDF. Вы отправляете правильный заголовок типа контента? –

+0

@Pekka 웃 прав, это в значительной степени документ PDF. Можете ли вы опубликовать код, который используете? FYI, '$ dompdf-> stream()' будет устанавливать для вас соответствующие заголовки. – BrianS

ответ

0

У меня была та же проблема. Основной вопрос можно найти в библиотеке классов, на линиях:

/* 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; 
} 

Вы должны заменить этот код:

/* 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; 
} 

Я надеюсь, что эта кодовая помочь вам :)

Смежные вопросы