【发布时间】:2017-01-16 21:59:14
【问题描述】:
下面是我的 Java 代码,用于创建 PDF 并打印 PDF 文档中的内容。我在打印行之间有空白行,如下面的代码所示。如果打印的语句后有两个以上的空行,则只写一个空行并省略其他空行写入PDF文档。因此,如果有一两个空行,我可以按原样打印,但如果有更多空行,则删除所有多余的空行并使用 Java 代码添加一个空行。我正在使用Java 5。请提出建议。
public static void main(String args[]) {
Document document = null;
FileOutputStream fos = null;
try {
final String prefix = "test";
final File temporaryPDF = File.createTempFile(prefix, ".pdf");
document = new Document(PageSize.LETTER);
fos = new FileOutputStream(temporaryPDF);
PdfWriter.getInstance(document, fos);
document.open();
Font font = new Font(Font.FontFamily.COURIER, 10);
List<String> lines = new ArrayList<String>();
lines.add("This is first line.");
lines.add("This is second line.");
lines.add(" ");
lines.add(" ");
lines.add(" ");
lines.add(" ");
lines.add("This is third printed line.");
lines.add(" ");
lines.add("This is fourth printed line.");
lines.add(" ");
lines.add(" ");
lines.add(" ");
lines.add("#ACC004342-123");
lines.add(" ");
lines.add(" ");
lines.add(" ");
lines.add(" ");
lines.add(" ");
lines.add(" ");
lines.add("More information:");
lines.add("This is fifth printed line.");
lines.add("#ACC004342-123");
lines.add("");
lines.add("This is Sixth printed line.");
lines.add("Some information goes here.");
for (final String line : lines) {
document.add(new Paragraph(12, line, font));
}
document.close();
} catch (Exception e) {
e.printStackTrace();
}
}
PS:为了更清楚起见,我再次提出了这篇文章。谢谢。
【问题讨论】:
-
嗯,首先不要插入空行吗?要么这样,要么这个问题还不是很清楚……
-
如果有两个以上的空行只显示两个空行。如果有的话,不要插入两个以上的空行。 @ppeterka
-
如果一行只包含空白,你可以用String#trim()
string.trim().length == 0检查 -
我尝试了一切。如果有一个或两个空行我需要打印它们,但如果有两个以上的空行我只需要打印两个空行,我正在寻找一些有效的方法来使用 java 代码执行此操作。有什么办法吗?你能用代码回答吗,如果它有效,我可以接受你的回答。 @Jhonny007
-
您是否正在寻找可以在 for 循环开始之前清理 lines 变量的代码?这就是你想要的看起来。也许?