使用acrobat编辑pdf文件,在pdf文件中添加一个多行的文本域。
然后使用itext对多行文本域填充,怎么设置填充内容的间距?
另外,如果我要填充的内容可能跨行了,如图,这样怎么编辑成一个文本域?
如果是两个文本域,肯定就是两个域名(如name1和name2),填充的时候需要把填充的内容分成两半,分别填充。这个肯定不合理。
怎么用一个文本域呢?
使用acrobat编辑pdf文件,在pdf文件中添加一个多行的文本域。
然后使用itext对多行文本域填充,怎么设置填充内容的间距?
另外,如果我要填充的内容可能跨行了,如图,这样怎么编辑成一个文本域?
如果是两个文本域,肯定就是两个域名(如name1和name2),填充的时候需要把填充的内容分成两半,分别填充。这个肯定不合理。
怎么用一个文本域呢?
第一个问题可以用这种方式解决:
List<AcroFields.FieldPosition> multiLinePosition = acroFields.getFieldPositions("multiLine");
int page = multiLinePosition.get(0).page;
Rectangle rectangle = multiLinePosition.get(0).position;
float left = rectangle.getLeft();
float right = rectangle.getRight();
float top = rectangle.getTop();
float bottom = rectangle.getBottom();
//BaseFont baseFont = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", false);
Font font = new Font(baseFont, 12, Font.BOLD, BaseColor.BLACK);
PdfContentByte pdfContentByte = ps.getOverContent(page);
ColumnText columnText = new ColumnText(pdfContentByte);
Rectangle r = new Rectangle(left, bottom, right, top);
columnText.setSimpleColumn(r);
//FontFactory.getFont(FontFactory.COURIER, 20, Font.BOLD, BaseColor.RED)
Chunk chunk = new Chunk("梅雪争春未肯降,骚人搁笔费评章。梅须逊雪三分白,雪却输梅一段香。");
Paragraph paragraph = new Paragraph(12, chunk);
paragraph.setSpacingBefore(16);
columnText.addText(paragraph);
// 设置字体,如果不设置添加的中文将无法显示
paragraph.setFont(font);
columnText.addElement(paragraph);
columnText.go();
第二个问题,只能用两个文本域,没办法使用一个使其自动换行。
..................................