【发布时间】:2013-04-01 22:02:12
【问题描述】:
我正在处理大量相同的页面(信件),除了地址和其他一些次要细节。我相信最能减慢 PDF 创建速度的是我在每一页上都包含的徽标图像(即使它相当小)。
我希望通过缓存徽标来进一步加快流程,即通过加载文件一次并将其存储在变量中并让 TCPDF 使用它而不是每次都加载图像。 TCPDF可以加载一个“PHP图片数据流”,给出的例子是这样的:
$imgdata = base64_decode('iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABlBMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDrEX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg==');
$pdf->Image('@'.$imgdata);
但是,我不知道如何从文件中创建这样的图像流。
我的徽标是一个小的 (4kB) PNG 文件。如果我使用readfile($file) 并将其发送到$pdf->Image 前面带有'@',它会出错-关于缓存文件夹已经设置为chmod 777(它是一个测试服务器-我将处理适当的权限在实时服务器上)。我相信我也尝试过base64_encode,但也没有用。
关于如何做到这一点的任何想法?
PS:我已经注意到我在 PDF 中包含的页面越多,它的速度就越慢,所以我会找到一个好的中间(每个文件可能 200-250 页而不是当前的 500 页)。
谢谢!
【问题讨论】: