以下是我的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:我再次提出这篇文章是为了更清晰。感谢。
答案 0 :(得分:0)
这是一个应该解决问题的最小答案。我确实将代码减少到必要的部分,因为我需要自己测试它,而且我无法访问你使用过的类。
在提问时,您应该尽可能将问题中的代码设为minimal,以便重新创建。
public static void main(String args[]) {
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.");
//count empty lines
int emptyLineCounter = 0;
for (final String line : lines) {
//when empty line increment counter, else reset counter
if(line.trim().length() == 0)
emptyLineCounter++;
else
emptyLineCounter = 0;
//when more then 2 empty lines are encountered move ignore line
if(emptyLineCounter <= 2)
System.out.println(line); //add line to document
}
}
编辑:其他人写错了答案是不提供minimal, complete and verifiable代码的直接结果。