1

私はdompdfで解析し、pdfファイルを生成するためのhtmlの下にあります:-

    <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <style type="text/css">
    td {
        margin-left: 15px;
        padding-left: 15px;
        border: none;
    }

    table {
        border: none;
    }
    </style>


    <style type="text/css">
    @font-face {
        font-family: "nmsyms";
        src: url("customfonts/nmsyms.eot");
    }

    @font-face {
        font-family: nmsyms;
        src: url(customfonts/NMSYMS__.TTF)
    }

    table {
        bgcolor: none
    }

    ;
    tr {
        bgcolor: none
    }

    ;
    td {
        bgcolor: none
    }
    ;
    </style></head><body><table align='center' width='100%' border='0' cellspacing='0'
            cellpadding='2'>
            <tr>
                <th colspan=5 align='left' height=35>
                <h3>Temporary Corrections &nbsp;</h3>
                </th>
            </tr>
            <tr>
                <th colspan=5 align='left'><b>
                1569(T)/13&nbsp;&nbsp;&nbsp;&nbsp; JAPAN - Hokkaidō West Coast. Kamui
                Misaki - Light.&nbsp;</b></th>
            </tr>
            <tr>
                <td colspan=4 align='left'>Source: <authority>Japanese
                Notice 11/5141(T)/13</authority>&nbsp;</td>
            </tr>
            <tr>
                <td align='left' colspan=4></td>
            </tr>
        </table></body></html>

上記の表の 2 番目の tr で確認できますJAPAN - Hokkaidō West Coast. Kamui Misaki - Light.。特殊文字がありōます。この文字は、生成された PDF ファイルで疑問符記号に変換されますが、それは望ましくありません。そのままのはずです。

Webページではそのまま表示されます。

以下は、dompdf ライブラリを使用した私の php コードです: -

   $file= "files/2012_Week_40_info.html";
                 $NMtextpdfFile = 'nmtext.pdf';
                    $content = file_get_contents($file);
                    $dompdf = new DOMPDF();
                $dompdf->load_html($content, 'UTF-8');

                $dompdf->set_paper('A4', 'portrait'); //portrait,landscape
                $dompdf->render();
                $output = $dompdf->output();
                file_put_contents($NMtextpdfFile, $output);

アクセントなどの特殊文字もいくつかありますが、生成されたPDFでは見栄えがします

これはフォントファミリーの問題だと思います。この問題を解決するためにどのフォントを適用する必要があるか教えてもらえますか?

4

1 に答える 1

0

まず、CSS にいくつかの構文エラーがあります。セミコロン (;) は中かっこの外側にあってはなりません。セミコロンは、スタイル定義内の個々の宣言を終了します。したがって、スタイルシートの次は間違っています。

table {
  bgcolor: none
}

;
tr {
  bgcolor: none
}

次のようになります。

table {
  bgcolor: none;
}

tr {
  bgcolor: none;
}

確かではありませんが (テストを行う必要があります)、セミコロンの位置が間違っていると、CSS で解析エラーが発生する可能性があります。

また、@font-face を使用して「nmsyms」フォントを含めようとしているようです。しかし、実際にはどこでも使用しません。フォントを使用するには (システムから、または @font-face を使用して参照されているかどうかにかかわらず)、それを適用する必要があります。

body { font-family: nmsyms; }

ただし、必要な文字については、含まれている DejaVu フォント (dompdf 0.6.0) で問題なく動作します。したがって、 @font-face を簡単に削除して、次を使用できます。

body { font-family: "DejaVu Sans", sans; }
于 2013-04-19T15:31:46.717 に答える