将字符串映射到与控制台相同的 XWPFDocument
Mapping a String to XWPFDocument same as console
我正在使用 XWPFDocument 为发票生成 .docx。我在控制台上设计了如下所示的字符串
XXXX Restaurant & Cafe
Phone No# 12131546
Invoice No. 120
Type: C-6
Customer Name: 29 05 2015
---------------------------------------
Product Qty Price Total
---------------------------------------
fr. egg+toast but. jam
1 110.0 110.0
---------------------------------------
Discount: 0%
Sub total: 110.0
Cash: 200
我生成 .docx 的代码是:
FileOutputStream output = new FileOutputStream(FILE);
XWPFDocument doc = new XWPFDocument();
XWPFParagraph para = doc.createParagraph();
para.setAlignment(ParagraphAlignment.CENTER);
XWPFRun run = para.createRun();
run.setBold(true);
run.setFontSize(11);
doc.write(output);
output.close();
但生成的 .docx 文本如下所示:
"XXXXXX Restaurant & Cafe Phone No# 12313531 Invoice No. 120 Type: C-6 Customer Name: 29 05 2015 --------------------------------------- Product Qty Price Total --------------------------------------- fr. egg+toast but. jam 1 110.0 110.0 --------------------------------------- Discount: 0% Sub total: 110.0 Cash: 200 Balance: 90.0"
我想得到上面的东西,它在 console.Please 上看起来是一样的,请尽快提供帮助。
我可能错了。但据我所知,XWPFRun 会忽略字符串中的所有 \n 。因此,尝试将 run.setText(text) 与带样式的文本一起使用会不幸地得到无样式的文本。您必须设置文本创建运行的样式。
像这样的东西可能确实有效,但我现在还没有测试过:
XWPFParagraph p = doc.createParagraph();
for(Sting s:text.split("\n")){
XWPFRun = p.createRun();
run.setText(s);
}
这不会保留字符串中的所有样式信息。您只需使用 XWPFRuns 生成样式化输出。
我正在使用 XWPFDocument 为发票生成 .docx。我在控制台上设计了如下所示的字符串
XXXX Restaurant & Cafe
Phone No# 12131546
Invoice No. 120
Type: C-6
Customer Name: 29 05 2015
---------------------------------------
Product Qty Price Total
---------------------------------------
fr. egg+toast but. jam
1 110.0 110.0
---------------------------------------
Discount: 0%
Sub total: 110.0
Cash: 200
我生成 .docx 的代码是:
FileOutputStream output = new FileOutputStream(FILE);
XWPFDocument doc = new XWPFDocument();
XWPFParagraph para = doc.createParagraph();
para.setAlignment(ParagraphAlignment.CENTER);
XWPFRun run = para.createRun();
run.setBold(true);
run.setFontSize(11);
doc.write(output);
output.close();
但生成的 .docx 文本如下所示:
"XXXXXX Restaurant & Cafe Phone No# 12313531 Invoice No. 120 Type: C-6 Customer Name: 29 05 2015 --------------------------------------- Product Qty Price Total --------------------------------------- fr. egg+toast but. jam 1 110.0 110.0 --------------------------------------- Discount: 0% Sub total: 110.0 Cash: 200 Balance: 90.0"
我想得到上面的东西,它在 console.Please 上看起来是一样的,请尽快提供帮助。
我可能错了。但据我所知,XWPFRun 会忽略字符串中的所有 \n 。因此,尝试将 run.setText(text) 与带样式的文本一起使用会不幸地得到无样式的文本。您必须设置文本创建运行的样式。 像这样的东西可能确实有效,但我现在还没有测试过:
XWPFParagraph p = doc.createParagraph();
for(Sting s:text.split("\n")){
XWPFRun = p.createRun();
run.setText(s);
}
这不会保留字符串中的所有样式信息。您只需使用 XWPFRuns 生成样式化输出。