iText7 Java добавление изображений в качестве заголовка - PullRequest
0 голосов
/ 03 сентября 2018

Я новичок в iText7, и, используя примеры Java, я могу конвертировать HTML в PDF / A-1A, а также добавлять текст заголовка и нижнего колонтитула text.header и текст нижнего колонтитула, которые можно использовать с помощью addEventHandler, и также по CSS, как это:

@page {
    @bottom-right {
        content: "Page " counter(page) " of " counter(pages);
        font-family: FreeSans;
    }
}

но заголовок, я хотел бы изображение, например, логотип. Вот мой класс заголовка:

public class Header implements IEventHandler {
    String header;
    public Header(String header) {
        this.header = header;
    }

    @Override
    public void handleEvent(Event event) {
        PdfDocumentEvent docEvent = (PdfDocumentEvent) event;
        PdfDocument pdf = docEvent.getDocument();
        PdfPage page = docEvent.getPage();
        Rectangle pageSize = page.getPageSize();
        PdfCanvas pdfCanvas = new PdfCanvas(
                page.getLastContentStream(), page.getResources(), pdf);
        Canvas canvas = new Canvas(pdfCanvas, pdf, pageSize);
        canvas.setFontSize(18f);
        try {
            PdfFont pdfFont = PdfFontFactory.createFont("src/main/resources/fonts/noto/NotoSans-Regular.ttf", PdfEncodings.IDENTITY_H);
            canvas.setFont(pdfFont);
        } catch(Exception ex) {
            ex.printStackTrace();
        }

        String DOG = "src/main/resources/html/img/logo.png";
        try {
            Image img = new Image(ImageDataFactory.create(DOG));

            Paragraph paragraph = new Paragraph().add(img);

            canvas.showTextAligned(paragraph, 0, 0, TextAlignment.CENTER);
        } catch(Exception ex) {
            ex.printStackTrace();
        } 
    }
}

но изображение не видно, или очень большой охват основного содержимого. Как я могу настроить свойства изображения, такие как ширина, высота и положение?

...