0

EXTJS4 に埋め込まれた TinyMCE エディターを使用して HTML 出力を生成し、それから PDF を生成するという狡猾な計画があり、ほとんどすべてが機能しています。私が問題を抱えていることの1つはフォントです。TinyMCE では問題なく処理できますが、wkhtmltopdf ではまったく動作しません。任意のフォント (太字のテキスト ボタンを含む) を使用すると、ajax リクエストが中止され、ブラウザーがクラッシュします。さらに先に進むには、ブラウザを再起動する必要があります。デフォルトのフォントを使用するだけで、pdf が正しく生成されます。

ユーザースタイルシートを考えられるすべての場所に配置して、それを取得しようとしましたが、役に立ちませんでした。

私が間違っていることについての助けをいただければ幸いです。xamppを搭載したWindows 7でwkhtmltopdf 0.11.0_rc1を使用しています。

POST VARS Sent to PHP via AJAX
cgroup  54
htmlx   <p><span style="font-family: trebuchet ms,geneva;">this is a test in TREBUCHET MS</span></p><p>THIS IS NORMAL TEXT ag</p>
messagetype post
send_date   18 Jun 2012
send_time   3:25 PM
subject 
task    test  


PHP Script

$outfile = './tmp/'.$timestamp.'.pdf';
$wkhtmloptions = "--header-spacing 5 --footer-spacing 2 --margin-top 15 --user-style-sheet file:///".$_SERVER['DOCUMENT_ROOT']."/arx/wkhtmltopdf.css";

$pdf = new wkhtmltopdf(array( 
    'title'         => 'Title',
      'html'          => $htmlx,
      'tmppath'       => 'tmp', 
      'binpath'       => $_SERVER['DOCUMENT_ROOT'].'/arx/bin/wkhtmltopdf/', 
      'options'       => $wkhtmloptions,
    ));

    $pdf->output('F', $outfile); //save the file to $outfile 
    $msg = "Test PDF generated";
    $success =true; 

    echo "{success: $success, msg: '$msg', title: 'Test Message', type: '$type', data: '$outfile'}";


wkhtmltopdf.css located in htdocs/arx/
@font-face {
    font-family: 'trebuchet MS';
    src: url('resources/fonts/trebuc.ttf') format('truetype');
}
@font-face {
    font-family: 'trebuchet MS';
    src: url('./resources/fonts/trebucit.ttf') format('truetype');
    font-style: italic;
}
@font-face {
    font-family: 'trebuchet MS';
    src: url('./resources/fonts/trebucbd.ttf') format('truetype');
    font-weight: bold;
}
@font-face {
    font-family: 'trebuchet MS';
    src: url('./resources/fonts/trebucbi.ttf') format('truetype');
    font-weight: bold;
    font-style: italic;
}
4

1 に答える 1

0

HTML を制御するので、受信 HTML を編集するだけで、まったく使用--user-style-sheetしないことができます。入力htmlのこのようなものはあなたのために働きますか?

 <html><head>
   <!-- if you really need it -->
   <link href="http://server/arx/wkhtmltopdf.css" rel="stylesheet" type="text/css" />
 </head><body>
   <p><span style="font-family: comic sans ms;">TREBUCHET MS</span></p>
   <p>THIS IS NORMAL TEXT ag</p>
 </body></html>

これは多くの問題が原因である可能性もありますが、詳細が役立ちます。

  • wkhtmltopdf プロセスが開始されていますか?
  • CSS 定義なしでフォントを直接使用してみましたか?
  • CSSは必要ですか?
  • 出力ファイルが生成されていますか?
  • コマンドラインから直接実行しても動作しますか? 直接実行すると、プログラムで wkhtmltopdf を使用するときに失われる出力が得られる可能性があります。
于 2012-08-10T12:36:03.053 に答える