FOP PDF / A-3b不允许嵌入文件

丹尼斯

我正在尝试使用fop 2.1将xml文件嵌入到PDF / A3-b文件中,并得到以下答案:

SCHWERWIEGEND: Exception
org.apache.fop.apps.FOPException: PDF/A-3b does not allow embedded files.
org.apache.fop.pdf.PDFConformanceException: PDF/A-3b does not allow embedded files.
    at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:288)
    at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:115)
    at org.apache.fop.cli.Main.startFOP(Main.java:186)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.fop.cli.Main.startFOPWithDynamicClasspath(Main.java:143)
    at org.apache.fop.cli.Main.main(Main.java:219)
Caused by: org.apache.fop.pdf.PDFConformanceException: PDF/A-3b does not allow embedded files.
    at org.apache.fop.pdf.PDFProfile.verifyEmbeddedFilesAllowed(PDFProfile.java:336)
    at org.apache.fop.render.pdf.PDFRenderingUtil.addEmbeddedFile(PDFRenderingUtil.java:651)
    at org.apache.fop.render.pdf.PDFDocumentHandler.handleExtensionObject(PDFDocumentHandler.java:318)
    at org.apache.fop.render.intermediate.util.IFDocumentHandlerProxy.handleExtensionObject(IFDocumentHandlerProxy.java:192)
    at org.apache.fop.render.intermediate.IFRenderer.processOffDocumentItem(IFRenderer.java:325)
    at org.apache.fop.area.RenderPagesModel.handleOffDocumentItem(RenderPagesModel.java:232)
    at org.apache.fop.area.AreaTreeHandler.addOffDocumentItem(AreaTreeHandler.java:376)
    at org.apache.fop.area.AreaTreeHandler.wrapAndAddExtensionAttachments(AreaTreeHandler.java:245)
    at org.apache.fop.area.AreaTreeHandler.startAbstractPageSequence(AreaTreeHandler.java:234)
    at org.apache.fop.area.AreaTreeHandler.startPageSequence(AreaTreeHandler.java:222)
    at org.apache.fop.fo.DelegatingFOEventHandler.startPageSequence(DelegatingFOEventHandler.java:109)
    at org.apache.fop.accessibility.fo.FO2StructureTreeConverter.startPageSequence(FO2StructureTreeConverter.java:142)
    at org.apache.fop.fo.pagination.PageSequence.startOfNode(PageSequence.java:121)
    at org.apache.fop.fo.FOTreeBuilder$MainFOHandler.startElement(FOTreeBuilder.java:337)
    at org.apache.fop.fo.FOTreeBuilder.startElement(FOTreeBuilder.java:179)
    at org.apache.xalan.transformer.TransformerIdentityImpl.startElement(TransformerIdentityImpl.java:1073)
    at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
    at org.apache.xerces.xinclude.XIncludeHandler.startElement(Unknown Source)
    at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
    at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:485)
    at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:285)
    ... 8 more

---------

org.apache.fop.pdf.PDFConformanceException: PDF/A-3b does not allow embedded files.
    at org.apache.fop.pdf.PDFProfile.verifyEmbeddedFilesAllowed(PDFProfile.java:336)
    at org.apache.fop.render.pdf.PDFRenderingUtil.addEmbeddedFile(PDFRenderingUtil.java:651)
    at org.apache.fop.render.pdf.PDFDocumentHandler.handleExtensionObject(PDFDocumentHandler.java:318)
    at org.apache.fop.render.intermediate.util.IFDocumentHandlerProxy.handleExtensionObject(IFDocumentHandlerProxy.java:192)
    at org.apache.fop.render.intermediate.IFRenderer.processOffDocumentItem(IFRenderer.java:325)
    at org.apache.fop.area.RenderPagesModel.handleOffDocumentItem(RenderPagesModel.java:232)
    at org.apache.fop.area.AreaTreeHandler.addOffDocumentItem(AreaTreeHandler.java:376)
    at org.apache.fop.area.AreaTreeHandler.wrapAndAddExtensionAttachments(AreaTreeHandler.java:245)
    at org.apache.fop.area.AreaTreeHandler.startAbstractPageSequence(AreaTreeHandler.java:234)
    at org.apache.fop.area.AreaTreeHandler.startPageSequence(AreaTreeHandler.java:222)
    at org.apache.fop.fo.DelegatingFOEventHandler.startPageSequence(DelegatingFOEventHandler.java:109)
    at org.apache.fop.accessibility.fo.FO2StructureTreeConverter.startPageSequence(FO2StructureTreeConverter.java:142)
    at org.apache.fop.fo.pagination.PageSequence.startOfNode(PageSequence.java:121)
    at org.apache.fop.fo.FOTreeBuilder$MainFOHandler.startElement(FOTreeBuilder.java:337)
    at org.apache.fop.fo.FOTreeBuilder.startElement(FOTreeBuilder.java:179)
    at org.apache.xalan.transformer.TransformerIdentityImpl.startElement(TransformerIdentityImpl.java:1073)
    at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
    at org.apache.xerces.xinclude.XIncludeHandler.startElement(Unknown Source)
    at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
    at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:485)
    at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:285)
    at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:115)
    at org.apache.fop.cli.Main.startFOP(Main.java:186)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.fop.cli.Main.startFOPWithDynamicClasspath(Main.java:143)
    at org.apache.fop.cli.Main.main(Main.java:219)

这是我的.fo文件

<?xml version="1.0" encoding="UTF-8"?> 
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" 
         font-family="PT-Sans" font-weight="normal" font-style="normal"
         xmlns:pdf="http://xmlgraphics.apache.org/fop/extensions/pdf"> 
    <fo:layout-master-set> 
        <fo:simple-page-master master-name="first" page-height="29.7cm" page-width="21cm" margin-top="0cm" margin-bottom="0cm" margin-left="0cm" margin-right="0cm"> 
            <fo:region-body margin-top="0cm"/> 
            <fo:region-before extent="0cm"/> 
            <fo:region-after extent="0cm"/> 
        </fo:simple-page-master> 
    </fo:layout-master-set> 
    <fo:declarations>
        <pdf:embedded-file src="url(path/to/file/file.xml)"/>
    </fo:declarations>
    <fo:page-sequence master-reference="first"> 
        <fo:flow flow-name="xsl-region-body"> 
            <fo:block-container width="100%" height="100%" break-before="page" text-align="left" font-size="8pt"> 
                <fo:block-container position="absolute" left="1.5cm" top="5cm" height="1cm" width="10cm"> 
                    <fo:block color="#70706f">Some Suff</fo:block> 
                </fo:block-container> 
            </fo:block-container>
        </fo:flow> 
    </fo:page-sequence> 
</fo:root>

fop.xconf文件得到了扩展,就像在fop网站描述的那样

最后从我的bash shell执行命令

java -jar build/fop.jar -c conf/fop.xconf -fo examples/fofile.fo -pdf examples/pdffile.pdf

使用-c但不使用该块可以正常运行。
在不使用-c但使用该块的情况下执行也可以。

java -jar build/fop.jar -c conf/fop.xconf 

是“完全使用此fop.xconv文件”的命令。

我想念什么吗?

斯蒂芬·海尼

我尝试通过修补fop 2.1源(fop-2.1 / src / java)来解决此问题:

*** org/apache/fop/pdf/PDFProfile.java.mod  2016-07-13 16:08:19.621331387 +0200
--- org/apache/fop/pdf/PDFProfile.java  2016-01-07 15:13:29.000000000 +0100
*************** public class PDFProfile {
*** 332,338 ****
      /** Checks if embedded files are allowed. */
      public void verifyEmbeddedFilesAllowed() {
          final String err = "{0} does not allow embedded files.";
!         if (getPDFAMode() != PDFAMode.DISABLED && getPDFAMode() != PDFAMode.PDFA_3A && getPDFAMode() != PDFAMode.PDFA_3B && getPDFAMode() != PDFAMode.PDFA_3U ) {
              throw new PDFConformanceException(format(err, getPDFAMode()));
          }
          if (isPDFXActive()) {
--- 332,338 ----
      /** Checks if embedded files are allowed. */
      public void verifyEmbeddedFilesAllowed() {
          final String err = "{0} does not allow embedded files.";
!         if (isPDFAActive()) {
              throw new PDFConformanceException(format(err, getPDFAMode()));
          }
          if (isPDFXActive()) {

然后编译

javac -cp ../../build/fop.jar org/apache/fop/pdf/PDFProfile.java

备份原始的jar

cp ../../build/fop.jar ../../build/fop.jar.orig

并将您的新课程添加到罐子中

jar -uf ../../build/fop.jar org/apache/fop/pdf/PDFProfile.class

虽然很脏,但我也添加了问题FOP-2625

编辑

该问题由Simon Steiner在FOP行李箱版本中修复。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Apache FOP-可以滚动PDF吗?

来自分类Dev

具有FOP的符合PDF / A的元数据

来自分类Dev

具有FOP的符合PDF / A的元数据

来自分类Dev

HTML在FOP / XSL文件中

来自分类Dev

强加 (nup'ped) PDF 文件不允许选择文本

来自分类Dev

在Apache FOP产生的PDF中显示Unicode字符

来自分类Dev

带有字体真棒图标的fop pdf生成

来自分类Dev

读取Apache FOP生成的Ant属性文件

来自分类Dev

为什么Windows不允许我粘贴PDF文件的多行文本来保存文件?

来自分类Dev

如何解决PDF文件的Prolog错误中不允许的内容?

来自分类Dev

找不到imagePreloader-使用FOP将XML转换为PDF

来自分类Dev

通过Java批处理简单地生成PDF:iText还是Apache FOP?

来自分类Dev

XSL FO表中的粗边框线问题-使用Apache FOP创建PDF

来自分类Dev

在java中使用apache fop使用多个FO对象生成一个PDF

来自分类Dev

使用 fop-one page for each person 标签的多页 pdf

来自分类Dev

将HTML段落嵌入xsl-fo / fop

来自分类Dev

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

来自分类Dev

Apache FOP更改默认缓存文件文件夹

来自分类Dev

将参数从Java嵌入式FOP传递到xsl文件

来自分类Dev

Apache FOP - 有没有办法以编程方式嵌入字体?

来自分类Dev

是否可以从不允许“页面提取”的 PDF 中提取文本?

来自分类Dev

内核驱动程序的`release`文件操作处理程序是否正在等待其他FOP完成?

来自分类Dev

FOP 1.1边界不当

来自分类Dev

FOP 1.1边界不当

来自分类Dev

在Chrome中嵌入PDF文件

来自分类Dev

在Chrome中嵌入PDF文件

来自分类Dev

Github的电子不允许嵌入标签?

来自分类Dev

在eXist-db中使用FOP处理XSL-FO文件时,退出状态为“权限被拒绝”(仅在Linux上)

来自分类Dev

Apache FOP - 未为 Fop 类型定义 getDefaultHandler() 方法

Related 相关文章

  1. 1

    Apache FOP-可以滚动PDF吗?

  2. 2

    具有FOP的符合PDF / A的元数据

  3. 3

    具有FOP的符合PDF / A的元数据

  4. 4

    HTML在FOP / XSL文件中

  5. 5

    强加 (nup'ped) PDF 文件不允许选择文本

  6. 6

    在Apache FOP产生的PDF中显示Unicode字符

  7. 7

    带有字体真棒图标的fop pdf生成

  8. 8

    读取Apache FOP生成的Ant属性文件

  9. 9

    为什么Windows不允许我粘贴PDF文件的多行文本来保存文件?

  10. 10

    如何解决PDF文件的Prolog错误中不允许的内容?

  11. 11

    找不到imagePreloader-使用FOP将XML转换为PDF

  12. 12

    通过Java批处理简单地生成PDF:iText还是Apache FOP?

  13. 13

    XSL FO表中的粗边框线问题-使用Apache FOP创建PDF

  14. 14

    在java中使用apache fop使用多个FO对象生成一个PDF

  15. 15

    使用 fop-one page for each person 标签的多页 pdf

  16. 16

    将HTML段落嵌入xsl-fo / fop

  17. 17

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

  18. 18

    Apache FOP更改默认缓存文件文件夹

  19. 19

    将参数从Java嵌入式FOP传递到xsl文件

  20. 20

    Apache FOP - 有没有办法以编程方式嵌入字体?

  21. 21

    是否可以从不允许“页面提取”的 PDF 中提取文本?

  22. 22

    内核驱动程序的`release`文件操作处理程序是否正在等待其他FOP完成?

  23. 23

    FOP 1.1边界不当

  24. 24

    FOP 1.1边界不当

  25. 25

    在Chrome中嵌入PDF文件

  26. 26

    在Chrome中嵌入PDF文件

  27. 27

    Github的电子不允许嵌入标签?

  28. 28

    在eXist-db中使用FOP处理XSL-FO文件时,退出状态为“权限被拒绝”(仅在Linux上)

  29. 29

    Apache FOP - 未为 Fop 类型定义 getDefaultHandler() 方法

热门标签

归档