我想创建一个具有这种布局的 PDF:
1. Name : John Doe
Class : I-A
Grade : 100
Status: PASS
我使用此代码生成 PDF:
public void generateDoc(List<String> toPrint) throws IOException {
PdfWriter writer = new PdfWriter(path);
PdfDocument pdf = new PdfDocument(writer);
pdf.setDefaultPageSize(PageSize.A4);
Document document = new Document(pdf);
document.setFontSize(10.0F);
document.setFont(PdfFontFactory.createFont(StandardFonts.COURIER));
document.setMargins(10F, 0F, 10F, 0F);
for(String s : toPrint) {
if(s.equals("EOF")) document.add(new AreaBreak(AreaBreakType.NEXT_PAGE));
else document.add(new Paragraph(s));
}
document.close();
}
toPrint
列表包含针对所需输出的格式化字符串,因为我使用Courier
字体,该字体具有monospace功能:
[
"1. Name : John Doe",
" Class : I-A",
" Grade : 100",
" Status: PASS"
]
那么结果PDF文件就是这样的:
1. Name : John Doe
Class : I-A
Grade : 100
Status: PASS
当我格式化字符串列表时,是否有办法使这项工作正常进行?
在格式化字符串中不要使用常规空格
,而是使用不间断空格字符 (\u00a0
)。
或者,替换空格也可以:
document.add(new Paragraph(s.replaceAll(" ", "\u00a0")));