2014-03-26 39 views
-1

我曾尝试使用TCPDF其代码下面给出:如何使用TCPDF将字体嵌入到PDF中?

require_once($_SERVER['DOCUMENT_ROOT'].'/tcpdf/tcpdf.php'); 
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); 
$pdf->SetCreator(PDF_CREATOR); 
$pdf->SetAuthor('Nicola Asuni'); 
$pdf->SetTitle('TCPDF Example 061'); 
$pdf->SetSubject('TCPDF Tutorial'); 
$pdf->SetKeywords('TCPDF, PDF, example, test, guide'); 
$pdf->setPrintHeader(false); 
$pdf->setPrintFooter(false); 
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); 
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); 
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER); 
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER); 
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); 
if (@file_exists($_SERVER['DOCUMENT_ROOT'].'/tcpdf/config/lang/eng.php')) { 
    require_once($_SERVER['DOCUMENT_ROOT'].'/tcpdf/config/lang/eng.php'); 
    $pdf->setLanguageArray($l); 
} 
$pdf->SetFont('helvetica', '', 10); 
$html =""; 
$pdf->AddPage(); 
$html .='<style>'. file_get_contents('http://localhost/Projects/PDF/css/style_4.css').'</style>'; 
$html .= file_get_contents("http://localhost/Projects/PDF/mycon.php"); 
$pdf->writeHTML($html, true, false, true, false, ''); 
$pdf->lastPage(); 
$pdf->Output('example_061.pdf', 'I'); 

上面的代码成功生成PDF但不考虑我的CSS和我已经定义为“style_4.css”和外部随附的字体。

我也试图包括页面本身“mycon.php”,但它不是从那里走,以及对CSS。我究竟做错了什么?

注意:我有不同的字体,将根据特定的条件动态附加布局。

+0

你可以尝试PrinceXML,但服务器许可证是非常昂贵确实(虽然我认为一个免费版本可用于某些类型的应用)。据我所知,它被认为是实现分页媒体方面最强大的网页到PDF解决方案。但是,您也可以尝试'wkhtmltopdf' - 在内部使用WebKit,因此可能会满足您的需求。请记住,虽然对图书馆的广泛要求往往是无关紧要的,因为这些问题很快显示了他们的年龄。 – halfer

+0

@halfer感谢您的回复,现在我已经更新了我的问题,请立即检查!我也尝试过你的建议,但没有得到任何好的帮助,以便我可以实现这一点。 –

+0

这就是IMO的主题,所以我会重新公开投票。如果你想进行研究的话题,你想**嵌入字体** - 所以如果你搜索“TCPDF嵌入字体”,你可能会找到答案。 (它可能会变成[重复](http://stackoverflow.com/search?q=embed+fonts+tcpdf))。 – halfer

回答

0

见TCPDF的documentation

使用您可以直接创建TCPDF字体 从TrueType字体,OpenType字体或Type1字体开始addTTFfont()方法。注:'字体' 文件夹必须可由网络服务器写入。

例如:

$fontname = $pdf->addTTFfont('/path-to-font/DejaVuSans.ttf', 
           'TrueTypeUnicode', '', 32); 
+0

我有一个小疑问,在我的脑海里,为什么我们虽然我已经添加了所有的字体到我的CSS文件中使用此额外的代码添加字体。我问这只是因为我们可以更改网页的网址,并且对于那些字体也会改变,所以在这种情况下,上面的代码将不起作用? –

+0

@DeepakGoswami:由于TCPDF代码不会自动执行。我会很高兴,如果它,但这并不会发生;) – Piskvor

+0

(请注意,TCPDF似乎是开源的,所以如果你感觉实现这个 - 平凡的挑战,你可以) – Piskvor