Я имею в виду этот пример и пытаюсь сгенерировать 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, который содержит изображения в качестве верхнего и нижнего колонтитула для каждой страницы. Заранее спасибо.