Летающая тарелка PDF-рендеринг с изображениями в верхнем и нижнем колонтитулах - PullRequest
0 голосов
/ 23 января 2020

Я имею в виду этот пример и пытаюсь сгенерировать pdf-файл с изображениями верхнего и нижнего колонтитула. Я использую следующие библиотеки из maven.

    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>itextpdf</artifactId>
        <version>5.5.13</version>
    </dependency>
    <dependency>
        <groupId>org.apache.velocity</groupId>
        <artifactId>velocity-engine-core</artifactId>
        <version>2.1</version>
    </dependency>
    <dependency>
        <groupId>org.xhtmlrenderer</groupId>
        <artifactId>flying-saucer-pdf</artifactId>
        <version>9.1.20</version>
    </dependency>

Я смог добавить изображения для верхнего и нижнего колонтитула, используя следующий код.

publi c stati c void print ( String val) создает исключение FileNotFoundException, DocumentException {

 String content2="<html>\n" + 
            "\n" + 
            "<head>\n" + 
            "    <style>\n" + 
              "\n" + 
            "@page{\n" + 
            "\n" + 
            "    @bottom-left {                 \n" + 
            "        content: element(footer);  \n" + 
            "        vertical-align: top;\n" + 
            "        padding-top: 10px;\n" + 
            "/*      border: solid red;    */\n" + 
            "    }\n" + 
            "\n" + 
            "    @top-right {\n" + 
            "        content: element(header); \n" + 
            "        vertical-align: bottom;\n" + 
            "        padding-bottom: 10px;\n" + 
            "/*          border: solid green;   */\n" + 
            "    }\n" + 
            "\n" + 
            "}\n" + 
            "\n" + 
            "div.header {\n" + 
            "    display: block;                     \n" + 
            "    position: running(header);\n" + 
            "    border-bottom: 1px solid black;\n" + 
            "}\n" + 
            "\n" + 
            "div.footer {\n" + 
            "   /* margin-top: 0.5cm;*/\n" + 
            "    display: block;\n" + 
            "    position: running(footer);\n" + 
            "    border-top: 1px solid black; \n" + 
            "}\n" + 
            "\n" + 
            "div.content {\n" + 
            "/*  border: solid purple;  */\n" + 
            "    display: block;\n" + 
            "    width: 15.4cm; \n" + 
            "    text-align: justify;\n" + 
            "}\n" + 
            "\n" + 
            "#pagenumber:before {\n" + 
            "    content: counter(page);\n" + 
            "}\n" + 
            "\n" + 
            "#pagecount:before {\n" + 
            "    content: counter(pages);\n" + 
            "}\n" + 
            "\n" + 
            "    </style>\n" + 
            "</head>\n" + 
            "\n" + 
            "<body>\n" + 
            "\n" + 
            "       <div class='header'>\n" + 
            "\n" + 
            "                <img id=\"logo\" class=\"image\" src=\"header.png\" width=\"100%\" />\n" + 
            "\n" + 
            "        </div>\n" + 
            "\n" + 
            "\n" + 
            "        <div class='footer'>            <img id=\"footer\" class=\"image\" src=\"footer.png\" alt=\"footer\" width=\"100%\" />\n" + 
            "\n" + 
            "        </div>\n" + 
            "\n" + 
            "        <div class='content'>            " + 
            "                ............
            "                </div>\n" + 
            "\n" + 
            "        </div>\n" + 
            "\n" + 
            "</body>\n" + 
            "\n" + 
            "\n" + 
            "</html>\n" + 
            "";

    ITextRenderer renderer = new ITextRenderer();
    renderer.setDocumentFromString(content2);
    renderer.layout();
    renderer.createPDF(new FileOutputStream("test.pdf"));

}

Но я не смог разместить эти изображения, и он выглядит увеличенным. Я попытался добавить пользовательские ширину и высоту, но не сработал. Даже у меня есть возможность поменять эти библиотеки, и теперь я ищу pdfbox. Необходимо сгенерировать PDF, который содержит изображения в качестве верхнего и нижнего колонтитула для каждой страницы. Заранее спасибо.

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