我有一个巧妙的计划,它使用嵌入在 EXTJS4 中的 TinyMCE 编辑器来生成 HTML 输出,然后我可以从中生成 PDF,而且我几乎已经完成了整个工作。我遇到的一件事是字体。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;
}