【发布时间】:2016-08-10 11:25:09
【问题描述】:
我正在尝试使用 itext 创建具有固定宽度的 pdf。 pdf 宽度固定为 85.0f。pdf 的边框为“边框”宽度 为此,我创建了一个宽度为 85.0f-(border*2) 的表格并向其中添加数据。然后我找到它的高度和宽度并创建一个宽度为 85.0f 和高度为 heightOftable+(border*2) 的矩形 然而,我得到的 pdf 的边框和表格之间的间距很小。 我想删除那个间距。 我已经尝试将填充设置为零等。但是那个细间距仍然存在。 我的代码是:
public class Template2100_2 {
public static final String DEST = "D:\\uploads\\abc.pdf";
public static void main(String[] args) throws DocumentException, IOException {
Template2100_2 t=new Template2100_2();
Font font = new Font(Font.FontFamily.TIMES_ROMAN, 7f, Font.NORMAL);
t.createPdfOrdinary("The Commerce Ministry has received several references from various stakeholders seeking clarification", "E-mail ID\n"
+ " 1854213265\n"
+ " Ph: 12547869",1,font);
}
public void createPdfOrdinary(String chunk1Text, String chunk2Text,Integer border,Font font) throws DocumentException, IOException
{
Document document = new Document(PageSize.A4, 0, 0, 0, 0);
PdfPTable table = new PdfPTable(1);
table.setTotalWidth(85f-(border*2));
table.setLockedWidth(true);
//table.setWidthPercentage(100);
table.setSpacingBefore(0f);
table.setSpacingAfter(0f);
PdfPCell cell;
cell = new PdfPCell(new Phrase(chunk1Text));
cell.setBorder(0);
cell.setPadding(0);
cell.setColspan(1);
cell.isUseBorderPadding();
cell.setPaddingBottom(1f);
cell.setPaddingRight(-1f);
cell.setBackgroundColor(BaseColor.PINK);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
cell = new PdfPCell(new Phrase(chunk2Text));
cell.setBorder(0);
cell.setPadding(0);
cell.setPaddingBottom(1f);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setRowspan(1);
cell.setBackgroundColor(BaseColor.PINK);
cell.isUseBorderPadding();
table.addCell(cell);
FileOutputStream fos=new FileOutputStream(DEST);
PdfWriter writer = PdfWriter.getInstance(document, fos);
document.open();
document.add(table);
Float height=table.getTotalHeight();
System.out.println(table.getTotalHeight()+"::"+table.getTotalWidth());
document.close();
fos.close();
writer.close();
Rectangle pagesize = new Rectangle(85f, height+(border*2));
pagesize.setBorder(Rectangle.BOX);
pagesize.setBorderWidth(border);
document = new Document(pagesize, border, border,border, border);
fos=new FileOutputStream(DEST);
writer = PdfWriter.getInstance(document, fos);
document.open();
document.add(table);
document.close();
fos.close();
writer.close();
}
}
任何人都可以建议边框和表格之间的细间距来自哪里以及如何删除它。谢谢。
【问题讨论】:
-
您的示例中的代码过多。删除与您的问题无关的部分。愿意回答您问题的人可能会认为您要求他或她花费太多时间来区分相关和不相关的内容。