Плагин Maven pdf: куда поместить userconfig.xml
Из-за некоторых специальных символов в моем языке, мне нужно встроить шрифт в файл PDF. Я прочитал много страниц о FOP и понял, что мне нужен файл конфигурации, например:
<?xml version="1.0"?>
<fop>
<renderers>
<renderer mime="application/pdf">
<fonts>
<font kerning="yes" embed-url="file:///C:/windows/fonts/arial.ttf">
<font-triplet name="Arial" style="normal" weight="normal"/>
</font>
</fonts>
</renderer>
</renderers>
</fop>
К сожалению, когда я запускаю mvn pdf:pdf -X, я вижу строку
[DEBUG] userconfig is null
Который выглядит как конфиг загружен. Где я должен поместить файл конфигурации и как я могу сказать плагин PDF, где искать?
1 ответ
Я обнаружил решение, но все еще не уверен, что оно идеально. Я использовал Exec Maven Plugin и запустил fop с результатом, созданным из Maven Pdf Plugin. Окончательное решение выглядит так:
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cz.kosina</groupId>
<artifactId>pdf-generate</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>PDF generation</name>
<repositories />
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pdf-plugin</artifactId>
<version>1.3</version>
<configuration>
<locales>cs_CZ</locales>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<mainClass>org.apache.fop.cli.Main</mainClass>
<arguments>
<argument>-fo</argument>
<argument>.\target\pdf\maven-pdf-plugin.fo</argument>
<argument>-c</argument>
<argument>.\target\pdf\fop.xconf</argument>
<argument>file.pdf</argument>
</arguments>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>fop</artifactId>
<version>2.1</version>
</dependency>
</dependencies>
</project>
fop.xconf:
<?xml version="1.0" encoding="UTF-8"?>
<fop>
<renderers>
<renderer mime="application/pdf">
<fonts>
<font kerning="yes" embed-url="file:///C:/windows/fonts/arial.ttf">
<font-triplet name="Arial" style="normal" weight="normal" />
</font>
</fonts>
</renderer>
</renderers>
</fop>
Файл fop.xconf хранится на сайте / ресурсах рядом с pdf-config.xml и копируется в целевой файл с помощью плагина maven pdf.