1

UTF-8 で PDF をレンダリングすることは可能ですか。ペルシア文字またはアラビア文字の場合は? 私はtcpdfを使いたくありません。PHPスクリプトを介してPDFを作成する際にパフォーマンスの問題があります。最新バージョンの php 5.4 と pdflib 8.0.4p2 を試してみますが、有効なペルシア語が表示されません。

<?php 

try {
    $p = new PDFlib();

    /*  open new PDF file; insert a file name to create the PDF on disk */
    if ($p->begin_document("", "") == 0) {
        die("Error: " . $p->get_errmsg());
    }

    $p->set_info("Creator", "hello.php");
    $p->set_info("Author", "Rainer Schaaf");
    $p->set_info("Title", "Hello world (PHP)!");

    $p->begin_page_ext(595, 842, "");

    $font = $p->load_font("Courier", "unicode", "");

    $p->setfont($font, 24.0);
    $p->set_text_pos(50, 700);
    $p->show("Hello world!");
    $p->continue_text($p->utf8_to_utf16("(says PHP) سلام جهان", 'utf16'));
    $p->end_page_ext("");

    $p->end_document("");

    $buf = $p->get_buffer();
    $len = strlen($buf);

    header("Content-type: application/pdf");
    header("Content-Length: $len");
    header("Content-Disposition: inline; filename=hello.pdf");
    print $buf;
}
catch (PDFlibException $e) {
    die("PDFlib exception occurred in hello sample:\n" .
    "[" . $e->get_errnum() . "] " . $e->get_apiname() . ": " .
    $e->get_errmsg() . "\n");
}
catch (Exception $e) {
    die($e);
}
$p = 0;
4

1 に答える 1

2

主な問題は、Courier フォントには、印刷したいアラビア語テキストのグリフがないことです。Arial Unicode のようなフォントを使用すると、期待どおりの結果が得られます。

別のヒントとして、$p->set_parameter("textformat", "utf8"); 次のように utf8 を直接使用できます。$p->continue_text("(says PHP) سلام جهان x");

于 2012-04-25T17:09:34.943 に答える