Java PDF中未保留双空格

Java PDF中未保留双空格,java,pdf,pdf-generation,Java,Pdf,Pdf Generation,我正在使用lowagie.text.pdf库从java应用程序中创建pdf文档,但是我意识到其中包含双空格的字符串(即“双空格”)不会被保留。这是一个.pdf限制还是我忽略了其他内容 Font font = FontFactory.getFont(FontFactory.HELVETICA, 8); float[] columnWidths = new float[columnCount]; PdfPCell headerCell = new PdfPCell(new Phrase(gridC

我正在使用lowagie.text.pdf库从java应用程序中创建pdf文档,但是我意识到其中包含双空格的字符串(即“双空格”)不会被保留。这是一个.pdf限制还是我忽略了其他内容

Font font = FontFactory.getFont(FontFactory.HELVETICA, 8);
float[] columnWidths = new float[columnCount];

PdfPCell headerCell = new PdfPCell(new Phrase(gridColumn.getCaption(), font));

PdfPTable table = new PdfPTable(columnWidths);
table.getDefaultCell().setBorderWidth(0.5f);
table.getDefaultCell().setBorderColor(Color.LIGHT_GRAY);
table.setHeaderRows(1);

for (PdfPCell headerCell : headerCells) {
    table.addCell(headerCell);
}

String value = "DOUBLE  SPACED";

table.addCell(new Phrase(value, font));

Document pdfDocument = new Document(PageSize.A4.rotate(), 0, 0, 0, 0);
ByteArrayOutputStream pdfStream = new ByteArrayOutputStream();
PdfWriter.getInstance(pdfDocument, pdfStream);
pdfDocument.addTitle(caption);
pdfDocument.open();
pdfDocument.add(table);
pdfDocument.close();'
谢谢

我已经意识到,双间距的字符串,即“双空格”不会被保留

这取决于你所说的被保存是什么意思

我对示例进行了一点扩展,以打印一个单空间、一个双空间和一个三空间

table.addCell(new Phrase("SINGLE SPACED", new Font(BaseFont.createFont(), 36)));
table.addCell(new Phrase("DOUBLE  SPACED", new Font(BaseFont.createFont(), 36)));
table.addCell(new Phrase("TRIPLE   SPACED", new Font(BaseFont.createFont(), 36)));
并进一步将使用的类更新为当前的iText 5.5.x变体

如果查看生成的PDF内部说明,您将看到

(SINGLE SPACED) Tj
...
(DOUBLE  SPACED) Tj
...
(TRIPLE   SPACED) Tj
因此,iText确实保留了空间

视觉效果:

正如你所见,差距越来越大。因此,PDF的可视表示中保留了双空格和三空格


另一方面,如果使用Adobe Reader进行复制和粘贴,则会得到:

SINGLE SPACED
DOUBLE SPACED
TRIPLE SPACED
因此,当前的Adobe Reader不会复制和粘贴PDF中的空格字符,而是将多个空格字符折叠为一个空格字符

因此:

这是一个.PDF格式的限制吗


这既不是PDF限制,也不是iText限制,这是Adobe Reader(以及其他一些PDF查看器)的一个怪癖。

1。给我们看看你的代码。2.我要说的是
com.lowagie
(2.1.7之前)已经过时了,你应该使用
com.itextpdf
(5.0.0及以上-目前5.5.8、5.5.9将于3月份发布)。请将你的代码添加到问题中。评论中的格式很混乱。嗨,阿梅迪,我稍微对它进行了重构!但我希望以上内容能让你对我的目标有一个模糊的认识。