当使用itextpdf -PdfPTable创建pdf时,同时在任一行中添加表格时,它的底部显示黑色边框

时间:2019-09-04 06:56:09

标签: java itext pdfptable

enter image description here 通过itextpdf创建表时,在某个单元格中出现了黑色边框。 但我没有指定任何边框将边框颜色设置为灰色。 仅在以100%缩放比例在Adobe Reader中查看PDF时获取此信息。如果缩放大小增加或减小,则其边框在所有单元格中都相同。

仅在以100%的缩放比例查看PDF时变暗。

PdfPTable contentTable = new PdfPTable(new float[] {3, 1, 1, 1, 1, 1, 1, 1});
contentTable.setWidthPercentage(100);
PdfPCell cell;
cell = new PdfPCell(new Phrase(columnName, valueFont));
cell.setHorizontalAlignment(Element.ALIGN_LEFT);
cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
cell.setBorderColor(BaseColor.GRAY);
cell.setUseDescender(true);
cell.setPaddingLeft(5f);
contentTable.addCell(cell); 
document.add(contentTable);

1 个答案:

答案 0 :(得分:0)

请注意,PDF不了解分辨率,它会将像线一样的东西准确地定位在给定的坐标上,通常在 pt (点)中给出,即 1 / 72 in (使用实际英寸)。

在给定缩放级别的PDF查看器中,此类坐标可能清楚地位于屏幕像素内部,或者它们可能位于两个相邻像素的边界上或附近。在前一种情况下,细线可能具有单个像素的宽度,而在后一种情况下,其宽度必须是两个像素,才不会出现在错误的位置上(相距半个像素)。

很少有像素边界上的坐标,因此这些较宽的线很少出现并且在缩放级别更改时消失。

因此,那些较粗的线条只是低分辨率介质的伪像。


在HTML查看器中,通常不会为HTML页面获得这样的工件,因为许多HTML页面使用 px (像素)作为固定坐标的单位,并且在分辨率较低的媒体(例如屏幕)的情况下HTML查看器应将单位 px 对齐到实际屏幕像素的整数倍。同时,甚至预期某些HTML页面中使用的其他单位(例如 in (英寸))也将与低分辨率介质中的物理像素对齐,而不是与实际单位对齐。