добавление изображения в виде прозрачного водяного знака в PDF с использованием itext7 - PullRequest
0 голосов
/ 25 октября 2018

Я хочу добавить изображение в мой PDF, используя itext7 в качестве прозрачного водяного знака.Я использую pdfcanvas и PdfExtGState.но изображение появляется в верхней части текста на странице.Хотя текст не пропал, но затуманен.Я хочу исправить эту проблему.Ожидаемый результат - отодвинуть изображение на задний план, а поверх него должен появиться текст.

PdfDocument bodyPDFDoc = new PdfDocument(new PdfReader(in_filePath+pdfDest.getName()), new PdfWriter(in_filePath+fileName1+"_WATERMARK.pdf"));
                Document bodyDoc = new Document(bodyPDFDoc);
                int numPages = bodyPDFDoc.getNumberOfPages();
                ImageData img = ImageDataFactory.create(in_watermarkImgFileName);// NEED TO GIVE WATERMARK FILE PATH
                float w = img.getWidth();
                float h = img.getHeight();

                // transparency
                PdfExtGState gs1 = new PdfExtGState();
                gs1.setFillOpacity(0.2f);

                // properties
                PdfCanvas canvasBodyPDFDoc = null;
                Rectangle pagesize;
                float x, y;
                // loop over every page
                for (int pageNo = 1; pageNo <= numPages; pageNo++) {
                    if(pageNo>1){
                        pagesize = bodyPDFDoc.getPage(pageNo).getPageSize();
                        x = (pagesize.getLeft() + pagesize.getRight()) / 2;
                        y = (pagesize.getTop() + pagesize.getBottom()) / 2;
                        canvasBodyPDFDoc = new PdfCanvas(bodyPDFDoc.getPage(pageNo));
                        canvasBodyPDFDoc.saveState();
                        canvasBodyPDFDoc.setExtGState(gs1);
                        canvasBodyPDFDoc.addImage(img, w, 0, 0, h, x - (w / 2), y - (h / 2), false);
                        canvasBodyPDFDoc.restoreState();
                    }
}

, пожалуйста, помогите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...