排除FOP v0.20.5和v2.1生成的pdf之间的差异

时间:2017-12-22 00:48:43

标签: pdf xslt xsl-fo apache-fop

我目前正在尝试将我们的应用程序的FOP依赖性从版本0.20.5升级到2.1,并且我正在比较各种XSL-FO文档生成的PDF,以便最大限度地减少PDF的可能性输出看起来与我们的用户不同。

以下是我用来测试的XSL-FO文档之一:

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
   <fo:layout-master-set>
      <fo:simple-page-master page-width="8.5in" page-height="11in" master-name="standard">
         <fo:region-body margin-left="0.25in"
                         margin-right="0.25in"
                         margin-top="0.5in"
                         margin-bottom="1.00in"/>
         <fo:region-before extent="0.25in"/>
         <fo:region-after extent="0.5in"/>
      </fo:simple-page-master>
   </fo:layout-master-set>
   <fo:page-sequence master-reference="standard" force-page-count="no-force">
      <fo:static-content margin-left="0.25in"
                         margin-right="0.25in"
                         flow-name="xsl-region-before">
         <fo:block text-align="center"/>
      </fo:static-content>
      <fo:flow flow-name="xsl-region-body">
         <fo:block>
            <fo:block hyphenate="true" language="en" wrap-option="wrap"/>
            <fo:block padding="5px">
               <fo:table table-layout="fixed" width="100%">
                  <fo:table-column column-width="proportional-column-width(1)"/>
                  <fo:table-column column-width="proportional-column-width(1)"/>
                  <fo:table-header>
                     <fo:table-row>
                        <fo:table-cell border="0.25pt solid #999"
                                       font-size="10pt"
                                       font-weight="bold"
                                       padding="5pt"
                                       text-align="left">
                           <fo:block>TEST</fo:block>
                        </fo:table-cell>
                        <fo:table-cell border="0.25pt solid #999"
                                       font-size="10pt"
                                       font-weight="bold"
                                       padding="5pt"
                                       text-align="right">
                           <fo:block>TEST</fo:block>
                        </fo:table-cell>
                     </fo:table-row>
                  </fo:table-header>
                  <fo:table-body>
                     <fo:table-row>
                     <fo:table-cell>
                        <fo:block/>
                     </fo:table-cell>
                    </fo:table-row>
                  </fo:table-body>
               </fo:table>
            </fo:block>
            <fo:block padding="5px"/>
            <fo:block padding="5px"/>
            <fo:block padding="5px">
               <fo:table table-layout="fixed" width="100%">
                  <fo:table-column column-width="proportional-column-width(1)"/>
                  <fo:table-header>
                     <fo:table-row>
                        <fo:table-cell border="0.25pt solid #999"
                                       font-size="10pt"
                                       font-weight="bold"
                                       padding="5pt"
                                       text-align="center">
                           <fo:block>
                              <fo:table table-layout="fixed" width="100%">
                                 <fo:table-column column-number="1" column-width="50%"/>
                                 <fo:table-column column-number="2" column-width="50%"/>
                                 <fo:table-body vertical-align="middle">
                                    <fo:table-row>
                                       <fo:table-cell>
                                          <fo:block text-align="left">TEST</fo:block>
                                       </fo:table-cell>
                                       <fo:table-cell>
                                          <fo:block text-align="end">TEST</fo:block>
                                       </fo:table-cell>
                                    </fo:table-row>
                                 </fo:table-body>
                              </fo:table>
                           </fo:block>
                        </fo:table-cell>
                     </fo:table-row>
                  </fo:table-header>
                  <fo:table-body>
                    <fo:table-row>
                     <fo:table-cell>
                        <fo:block/>
                     </fo:table-cell>
                    </fo:table-row>
                  </fo:table-body>
               </fo:table>
            </fo:block>
            <fo:block padding="5px"/>
            <fo:block font-size="16pt" padding="2px">TEST</fo:block>
            <fo:block padding="5px">
               <fo:table table-layout="fixed" width="100%">
                  <fo:table-column column-width="1in"/>
                  <fo:table-column column-width="proportional-column-width(1)"/>
                  <fo:table-column column-width="proportional-column-width(1)"/>
                  <fo:table-column column-width="proportional-column-width(1)"/>
                  <fo:table-column column-width="proportional-column-width(1)"/>
                  <fo:table-column column-width="proportional-column-width(1)"/>
                  <fo:table-column column-width="proportional-column-width(1)"/>
                  <fo:table-column column-width="proportional-column-width(1)"/>
                  <fo:table-header>
                     <fo:table-row>
                        <fo:table-cell border="0.25pt solid #999"
                                       font-size="10pt"
                                       font-weight="bold"
                                       padding="5pt"
                                       text-align="left">
                           <fo:block>TEST</fo:block>
                        </fo:table-cell>
                        <fo:table-cell border="0.25pt solid #999"
                                       font-size="10pt"
                                       font-weight="bold"
                                       padding="5pt"
                                       text-align="center">
                           <fo:block>TEST</fo:block>
                        </fo:table-cell>
                        <fo:table-cell border="0.25pt solid #999"
                                       font-size="10pt"
                                       font-weight="bold"
                                       padding="5pt"
                                       text-align="center">
                           <fo:block>TEST</fo:block>
                        </fo:table-cell>
                        <fo:table-cell border="0.25pt solid #999"
                                       font-size="10pt"
                                       font-weight="bold"
                                       padding="5pt"
                                       text-align="center">
                           <fo:block>TEST</fo:block>
                        </fo:table-cell>
                        <fo:table-cell border="0.25pt solid #999"
                                       font-size="10pt"
                                       font-weight="bold"
                                       padding="5pt"
                                       text-align="center">
                           <fo:block>TEST</fo:block>
                        </fo:table-cell>
                        <fo:table-cell border="0.25pt solid #999"
                                       font-size="10pt"
                                       font-weight="bold"
                                       padding="5pt"
                                       text-align="center">
                           <fo:block>TEST</fo:block>
                        </fo:table-cell>
                        <fo:table-cell border="0.25pt solid #999"
                                       font-size="10pt"
                                       font-weight="bold"
                                       padding="5pt"
                                       text-align="center">
                           <fo:block>TEST</fo:block>
                        </fo:table-cell>
                        <fo:table-cell border="0.25pt solid #999"
                                       font-size="10pt"
                                       font-weight="bold"
                                       padding="5pt"
                                       text-align="center">
                           <fo:block>TEST</fo:block>
                        </fo:table-cell>
                     </fo:table-row>
                  </fo:table-header>
                  <fo:table-body>
                    <fo:table-row>
                     <fo:table-cell>
                        <fo:block/>
                     </fo:table-cell>
                    </fo:table-row>
                  </fo:table-body>
               </fo:table>
            </fo:block>
            <fo:block hyphenate="true"
                      language="en"
                      wrap-option="wrap"
                      font-weight="bold">Test sentence</fo:block>
         </fo:block>
         <fo:block id="last-page"/>
      </fo:flow>
   </fo:page-sequence>
</fo:root>

对于v2.1,table-headers的边框更薄,各种pdf元素的间距略大于v0.20.5生成的PDF中的间距。这些差异看似微不足道,但对于较大的文档,间距问题变得越来越明显。

我尝试将边框属性移动到不同的元素(例如fo:table-row,fo:block)无效。

以下是生成的报告的图片。在两个标签中打开它们并在它们之间翻转将使它们的差异更明显。

使用v0.20.5生成的PDF: Report with v0.20.5

使用v2.1生成的PDF Report with v2.1

任何帮助确定为什么两个生​​成的报告之间存在这些微小差异将非常有帮助,谢谢!

0 个答案:

没有答案