Apache FOP Fox:使用PDF Fille时外部文档不起作用

时间:2019-04-26 22:56:13

标签: java apache-fop

我正在尝试使用Apache FOP fox:external-document附加pdf文档,但是在使用pdf类型时会引发以下异常:

SEVERE: Image not available. URI: /pathToPdf/file.pdf. Reason: org.apache.xmlgraphics.image.loader.ImageException: The file format is not supported. No ImagePreloader found for /pathToPdf/file.pdf (See position 202:89)
org.apache.xmlgraphics.image.loader.ImageException: The file format is not supported. No ImagePreloader found for /pathToPdf/file.pdf
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:fox="http://xmlgraphics.apache.org/fop/extensions">
    <xsl:template match="/">
        <fo:root>
            <fo:layout-master-set>
                ...
            </fo:layout-master-set>            

            <fox:external-document content-type="pdf" src="/pathToPdf/file.pdf"/>
        </fo:root>
    </xsl:template>
</xsl:stylesheet>

我正在使用Apache FOP 2.3和Java 8

2 个答案:

答案 0 :(得分:0)

扩展属性fox:external-document最初旨在将图像作为页面插入pdf输出中。

要与pdf文件一起使用,您还需要PDF Images Plug-In

只需下载jar并将其放在lib文件夹中,一切便会按预期工作。

答案 1 :(得分:0)

从文件系统或资源添加pdf时对我来说工作正常:

Filesystem:
<fox:external-document src="url('file:D:///resource/test.pdf')"/>
Resource:
<fox:external-document src="url('file:resource/test.pdf')"/> 

Remember to add:
  xmlns:pdf="http://xmlgraphics.apache.org/fop/extensions/pdf"
and 
  xmlns:fox="http://xmlgraphics.apache.org/fop/extensions"