Ошибка с рендерингом DomPdf html в php

Я пытаюсь отобразить представление HTML с помощью div, table, thead, tboody, tfoot, h2, h3 и ccs.

Результат моего рендера в 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�300P@&�ҹ�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;
    }
}

}

Заголовок приложения — «application/pdf». Пожалуйста помогите мне!!


person Slipk    schedule 27.02.2013    source источник
comment
Это похоже на PDF. Вы отправляете правильный заголовок типа контента?   -  person Pekka    schedule 28.02.2013
comment
@Pekka웃 прав, это в значительной степени PDF-документ. Можете ли вы опубликовать код, который вы используете? К вашему сведению, $dompdf->stream() установит для вас соответствующие заголовки.   -  person BrianS    schedule 28.02.2013


Ответы (1)


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

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

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

person user3524948    schedule 11.04.2014