我正在處理大量的頁面(字母),除了地址和其他一些小細節外,其餘都是相同的。我相信最讓PDF創建減慢的是我在每個頁面上都包含的徽標圖像(儘管它相當小)。我可以預先加載用於TCPDF的圖像嗎?
我希望能夠通過緩存徽標來加速該過程,即通過加載文件一次並將其存儲在變量中,並讓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頁)。
謝謝!