Изображения водяных знаков TCPDF работают только на первых нескольких страницах выходного PDF - PullRequest
0 голосов
/ 13 января 2020

Я расширяю библиотеку TCPDF для добавления функции заголовка, которая включает в себя изображение водяного знака .

class PdfWrapperDraft extends PdfWrapper {
    // TODO: Rename to PdfWrapperWatermark and allow any watermark, not just the DRAFT image.
    public function Header()
    {
        // get the current page break margin
        $bMargin = $this->getBreakMargin();
        // get current auto-page-break mode
        $auto_page_break = $this->AutoPageBreak;
        // disable auto-page-break
        $this->SetAutoPageBreak(false, 0);

        // set background image: in actual practice, all but one of the lines below would be commented out.
        $img_file = K_PATH_IMAGES . 'image_demo.jpg'; // This inbuilt sample image works fine.
        $img_file = BD . PP . '/images/image_demo.png'; // The sample image also works when copied to another directory.
        $img_file = BD . PP . '/images/image_demo.png'; // The sample image still works when converted to PNG.
        $img_file = BD . PP . '/images/DRAFT.jpg'; // This watermark image also works fine.
        $img_file = BD . PP . '/images/DRAFT.png'; // This is the one I actually want, and it appears only on the first four pages. Why?!

        $this->Image($img_file, 0, 0, 210, 297, '', '', '', false, 0, '', false, false, 0);
        // restore auto-page-break status
        $this->SetAutoPageBreak($auto_page_break, $bMargin);
        // set the starting point for the page content
        $this->setPageMark();
    }
}

Как видно из комментариев в коде, образец изображения TCPDF JPEG работает штрафа в виде водяного знака, появляется на всех 52 страницах документа PDF. Он продолжает работать при загрузке из другой папки и при преобразовании в PNG.

Мое собственное прилагаемое изображение также работает на всех 52 страницах PDF в формате JPEG, но слишком тяжелое, чтобы функционировать в качестве водяного знака: текст над ним трудно читать. Однако, когда я пытаюсь использовать PNG, который на самом деле хочу использовать, он прекрасно работает на первых четырех страницах, а затем исчезает. Что происходит на Земле?

Экспериментируя с разными размерами изображения и разными размерами страниц (A4, A5), иногда изображение будет длиться несколько страниц более или менее, но оно всегда исчезает после первых нескольких страниц.

image_demo.png:

Width: 1181 pixels
Height: 1772 pixels
Bytes: 3.8 MB

DRAFT.png:

Width: 1181 pixels
Height: 1772 pixels
Bytes: 105.1 kB
...