在 Java 中使用 Apache Fop 嵌入条形码

Embedding barcodes using Apache Fop in Java

我正在使用 Apache Fop 生成一个包含 PDF417 条形码的 pdf 文档,当我使用命令行时它起作用了:

fop -fo source.fo -pdf result.pdf

但是当我使用 Java 替代方法时,条形码显示为空白并且日志显示这些警告:

Unknown formatting object "{http://barcode4j.krysalis.org/ns}barcode" encountered (a child of fo:instream-foreign-object}. (See position 88:1266)
Unknown formatting object "{http://barcode4j.krysalis.org/ns}pdf417" encountered (a child of barcode}. (See position 89:45)

我在 Maven 中包含了这些依赖项:

<!-- https://mvnrepository.com/artifact/org.apache.xmlgraphics/fop -->
<dependency>
    <groupId>org.apache.xmlgraphics</groupId>
    <artifactId>fop</artifactId>
    <version>2.1</version>
</dependency>

<!-- https://mvnrepository.com/artifact/net.sf.barcode4j/barcode4j -->
<dependency>
    <groupId>net.sf.barcode4j</groupId>
    <artifactId>barcode4j</artifactId>
    <version>2.1</version>
</dependency>

我错过了什么?

提前致谢!

答案很简单,不用maven依赖:

<!-- https://mvnrepository.com/artifact/net.sf.barcode4j/barcode4j -->
<dependency>
    <groupId>net.sf.barcode4j</groupId>
    <artifactId>barcode4j</artifactId>
    <version>2.1</version>
</dependency>

我需要使用:

<!-- https://mvnrepository.com/artifact/net.sf.barcode4j/barcode4j-fop-ext -->
<dependency>
    <groupId>net.sf.barcode4j</groupId>
    <artifactId>barcode4j-fop-ext</artifactId>
    <version>2.1</version>
</dependency>

现在很明显了。感谢我自己! :)