我们使用iText Java库为我们的系统生成传入消息的PDF。它使用一个表来显示一些元数据和一个消息体的段落。
现在,当我们将pdf文本(在Acrobat Reader中以及Firefox PDF预览版)复制并粘贴到某个编辑器中时,元数据将粘贴在第一页上的文本之后。
我们的代码基本上是
final Document document = new Document(PageSize.A4, 50, 50, 50, 50);
final PdfWriter pdfWriter = PdfWriter.getInstance(document, baos);
pdfWriter.setPdfVersion(PdfWriter.VERSION_1_2);
document.open();
final PdfPTable table = new PdfPTable(1);
table.setWidthPercentage(100);
table.addCell(newCell("New Message", true, FONT_SIZE_1, CELL_PADDING_1));
document.add(table);
document.add(new Paragraph(content, FontFactory.getFont(FontFactory.HELVETICA, 10)));
document.close();
pdfWriter.close();
带
private static PdfPCell newCell(final String text) {
final PdfPCell cell = new PdfPCell(
new Phrase(new Chunk(text, FontFactory.getFont(FontFactory.HELVETICA, 30))));
cell.setPaddingTop(cellPadding);
cell.setPaddingRight(0);
cell.setPaddingBottom(8);
cell.setPaddingLeft(0);
cell.setBorder(Rectangle.NO_BORDER);
return cell;
}
当您从第1页和第2页选择文本时,您也可以看到这种现象,突然也会选择第1页的顶部。请参阅此屏幕截图:
复制&粘贴你得到
amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam
erat.
New Message
Message
Message-No. 12345
Label A Value X
Label B Value Y
Inhalt
Consetetur sadipscing
您还可以使用此PDF进行测试:http://epischel.de/misc/testmessage.pdf