Java 使用FOP1.1打印时获得空白页

Java 使用FOP1.1打印时获得空白页,java,printing,apache-fop,Java,Printing,Apache Fop,使用fop1.1,我尝试使用本节讨论的中间文件方法打印文档 问题是,它在第三步打印空白页 这是我用于测试的FO文件: <?xml version="1.0" encoding="UTF-8"?> <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:fox="http://xml.apache.org/fop/extensions"> <fo:layout-master-set>

使用fop1.1,我尝试使用本节讨论的中间文件方法打印文档

问题是,它在第三步打印空白页

这是我用于测试的FO文件:

    <?xml version="1.0" encoding="UTF-8"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:fox="http://xml.apache.org/fop/extensions">
   <fo:layout-master-set>
      <fo:simple-page-master master-name="all" page-height="5.4cm" page-width="9.56cm" margin-top="0cm" margin-bottom="0cm" margin-left="0cm" margin-right="0cm">
         <fo:region-body margin-top="0cm" margin-bottom="0cm" background-color="transparent" />
      </fo:simple-page-master>
   </fo:layout-master-set>
   <fo:page-sequence master-reference="all">
      <fo:flow flow-name="xsl-region-body">
         <fo:block>
            <fo:block-container absolute-position="absolute" top="5px" left="11px" height="30px" width="300px" overflow="hidden">
               <fo:block font-weight="normal" font-style="italic" font-family="Arial">852147</fo:block>
            </fo:block-container>
            <fo:block-container absolute-position="absolute" top="50px" left="10px" height="30px" width="300px" overflow="hidden">
               <fo:block font-weight="bold" font-style="normal" font-family="Arial" font-size="10pt">nabil</fo:block>
            </fo:block-container>
            <fo:block-container absolute-position="absolute" top="100px" left="10px" height="30px" width="300px" overflow="hidden">
               <fo:block font-weight="bold" font-style="normal" font-family="Arial" font-size="10pt">madara</fo:block>
            </fo:block-container>
         </fo:block>
      </fo:flow>
   </fo:page-sequence>
</fo:root>

852147
纳比尔
马达拉
配置文件

<?xml version="1.0"?>
<!-- $Id: fop.xconf 1339442 2012-05-17 01:42:56Z gadams $ -->



<!-- NOTE: This is the version of the configuration -->
<fop version="1.1">
<fonts>
      <auto-detect/>
      </fonts>

<!-- Strict user configuration -->
  <strict-configuration>true</strict-configuration>

  <!-- Strict FO validation -->
  <strict-validation>true</strict-validation>

  <!-- Base URL for resolving relative URLs -->
  <base>.</base>

  <!-- Font Base URL for resolving relative font URLs -->
  <font-base>./</font-base>


  <source-resolution>72</source-resolution>

  <target-resolution>72</target-resolution>


  <default-page-settings height="11in" width="8.26in"/>


 <renderers>
    <renderer mime="application/pdf">
      <filterList>
        <!-- provides compression using zlib flate (default is on) -->
        <value>flate</value>



      </filterList>

      <fonts>
      <auto-detect/>

      </fonts>


    </renderer>
</renderers>

</fop>

真的
真的
.
./
72
72
扁平
步骤:

  • fop-cfg.xml-fo myfile.fo-at application/pdf myfile.at.xml
  • fop-c cfg.xml-atin myfile.at.xml-pdf myfile.pdf
    (正确生成pdf文件)
  • fop-atin myfile.at.xml-print
    (使用pdf creator打印空白页)

  • FOP1.1中的AWT渲染器(打印渲染器使用AWT渲染器)似乎有问题。我尝试了您的示例,使用以下步骤作为步骤3:

    fop -atin myfile.at.xml -awt
    
    我注意到了同样的结果——空白页。(注意:要使AWT渲染在Windows上工作,需要编辑
    fop.bat
    ,以便
    -Djava.AWT.headless=false

    我发现很奇怪,控制台上没有记录任何错误,而且在FOP的JIRA实例中也找不到任何报告的bug。所以我决定玩FOP1.0

    解决方法-下载FOP1.0而不是FOP1.1。使用以下步骤作为步骤3:

    fop -atin myfile.at.xml -print all
    
    注意:参数all用于打印所有页面。忽略此参数在1.0中失败,但在1.1中已修复


    希望以上为您提供一个可行的解决方案!FOP1.1和AWT渲染器似乎存在未解决/未报告的问题:(

    你说“第三步打印空白页”是什么意思。在IE中打开pdf文件会返回一个空白页,因此我试图了解这是否是同一个问题,或者您是否得到了由
    FOP
    而不是其他人打印的某些内容。您可能需要提供更多的上下文以获得答案。请查看提供更多上下文的更新,谢谢您的关注离子。