在使用PHP开发的Web应用程序中,我们使用TCPDF lib生成报价和发票(非常简单且单页)。
lib工作得很好但似乎生成了非常大的PDF文件。例如,在我们的例子中,它生成的PDF文件大小为4 MB(+/-几KB)。
如何减少TCPDF生成的PDF文件膨胀?
以下是我正在使用的代码段
ob_start();
include('quote_view_bag_pdf.php'); //This file is valid HTML file with PHP code to insert data from DB
$quote = ob_get_contents(); //Capture the content of 'quote_view_bag_pdf.php' file and store in variable
ob_end_clean();
//Code to generate PDF file for this Quote
//This line is to fix a few errors in tcpdf
$k_path_url='';
require_once('tcpdf/config/lang/eng.php');
require_once('tcpdf/tcpdf.php');
// create new PDF document
$pdf = new TCPDF();
// remove default header/footer
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
// add a page
$pdf->AddPage();
// print html formated text
$pdf->writeHtml($quote, true, 0, true, 0); //Insert Variables contents here.
//Build Out File Name
$pdf_out_file = "pdf/Quote_".$_POST['quote_id']."_.pdf";
//Close and output PDF document
$pdf->Output($pdf_out_file, 'F');
$pdf->Output($pdf_out_file, 'I');
///////////////
enter code here
希望这段代码片段能给出一些想法吗?
答案 0 :(得分:0)
您需要查看它在PDF中的含义。它嵌入了大量的图像或字体吗?
您可以使用大量PDF工具检查内容。如果您有Acrobat 9.0,则有一篇博文文章介绍了如何在http://pdf.jpedal.org/java-pdf-blog/bid/10479/Viewing-PDF-objects
执行此操作答案 1 :(得分:0)
最后我设法解决了这个问题。
问题在于我错误地在网页中插入了一个链接到电子邮件ID,该链接已呈现为PDF。通过删除此链接,生成的PDF的大小降至仅260 kb!
感谢所有试图帮助我解决这个问题的人。
答案 2 :(得分:0)
当前的TCPDF版本现在默认包括字体子集,以显着减小PDF大小。 查看TCPDF网站http://www.tcpdf.org并咨询官方论坛以获取更多信息。