如果边界重叠,边界行为是什么?(表格单元格,单元格单元格)

时间:2017-01-13 07:50:06

标签: java itext

在重叠的图像边框中突出显示看起来比其他单元格边框更厚。 我用于在每个单元格上应用边框的代码是:

cell.setUseVariableBorders(true);
cell.setBorderWidthLeft(1);
cell.setBorderWidthBottom(1);
cell.setBorderWidthRight(1);
cell.setBorderWidthTop(1);

enter image description here

1 个答案:

答案 0 :(得分:0)

有两件事会导致你描述的效果。

  1. 您正在使用cell.setUseVariableBorders(true);,这意味着您希望边框的宽度单元格内。如果两个相邻单元格的边框彼此相邻,则您将有2个边框,其宽度为1个用户单元,彼此相邻,从而产生宽度为2个用户单位的边框。
  2. 如果删除第cell.setUseVariableBorders(true);行,则会绘制两个边框,但它们会重叠。从技术上讲,1个用户单位厚度的两个重叠边框应该会产生一个看起来像1个用户单位厚度的单边框的东西,但是一些PDF查看器会使重叠的边框比它们应该的厚一些。
  3. 如何解决这个问题?

    嗯,你似乎是iText的新手,为什么不切换到iText 7呢?在iText 7中,解决了重叠边界的问题。所有这些都在Chapter 5 of the iText 7 "building blocks" tutorial

    中解释

    如果您无法切换到iText 7,但是您仍然坚持使用iText 5,则必须删除该行cell.setUseVariableBorders(true);,如果这还不够,请删除其中一个重叠边框。