英文:
How to partially bold a Paragraph in Apache POI? (Word Documents)
问题
我最近一直在使用Apache POI,并且我不能弄清楚如何设置一个像这样的字符串:“Hello World”。这是我一直在尝试的代码部分:
XWPFDocument document = new XWPFDocument();
String path = System.getProperty("user.home")+ "/Desktop/"+ array.get(0); //"array" is an ArrayList<String>
path = path.replace("\\","/");
XWPFParagraph paragraph = document.createParagraph();
XWPFRun run = paragraph.createRun();
String str1 = "Price: ";
String str2 = array.get(1); // This needs to be Bold
run.setFontSize(9);
run.setFontFamily("Arial");
run.setText(str1);
run.setBold(true);
run.setText(str2);
paragraph.setSpacingBetween(1);
paragraph.setAlignment(ParagraphAlignment.RIGHT);
try {
FileOutputStream output = new FileOutputStream(ruta);
document.write(output);
output.close();
document.close();
}catch(Exception e) {
e.printStackTrace();
}
我知道"run.setBold(true)"应该应用于整个段落,但这是我在Word文档中找到的唯一方法,所以我需要一些帮助来解决这个问题。感谢您的帮助。
英文:
I been working with Apache POI recently and i can't figure out how to set a string like this: "Hello World". This is what i been trying
XWPFDocument document = new XWPFDocument();
String path = System.getProperty("user.home")+ "/Desktop/"+ array.get(0); //"array" is an ArrayList<String>
path = path.replace("\\","/");
XWPFParagraph paragraph = document.createParagraph();
XWPFRun run = paragraph.createRun();
String str1 = "Price: ";
String str2 = array.get(1); // This needs to be Bold
run.setFontSize(9);
run.setFontFamily("Arial");
run.setText(str1);
run.setBold(true);
run.setText(str2);
paragraph.setSpacingBetween(1);
paragraph.setAlignment(ParagraphAlignment.RIGHT);
try {
FileOutputStream output = new FileOutputStream(ruta);
document.write(output);
output.close();
document.close();
}catch(Exception e) {
e.printStackTrace();
}
I know that "run.setBold(true)" its supposed to apply it to the whole parapraph but its the only thing i found for word documents so i need some help to fix this. Thanks for your help.
答案1
得分: 3
一般来说,一个"run"就是一个"run",一个段落就是一个段落。两者是不同的。你可以将"run"设置成单个词、相邻的词或整个段落。唯一重要的是:a)如果你想要"加粗"某些内容,那么b)你需要"加粗"相应的"run"。
在POI中,有点令人困惑的是,你在"段落"方面创建一个"run"
... 但是...
你可以在同一个段落中创建多个"run",并且它们可以具有不同的属性。
例如:
XWPFParagraph p = doc.createParagraph();
XWPFRun r1 = p.createRun();
r1.setText("Some Text");
r1.setBold(true);
r2 = p.createRun();
r2.setText("Goodbye");
我没有尝试过这段代码,但我相信"Some Text"将会是粗体,而"Goodbye"则不会。你也可以尝试不同的语法,看看哪种对你最有效。
希望这有所帮助,祝你好运!
英文:
In general, a run is a run, and a paragraph is a paragraph. Different things. You can make the run a single word, adjacent words or an entire paragraph. The only thing that matters is a) if you want to "bold" something, then b) you need to "bold" the corresponding run.
Confusing things, in POI you create a "run" in terms of a "paragraph"
... BUT ...
You can have multiple runs - with different attributes - in the SAME paragraph.
For example:
XWPFParagraph p = doc.createParagraph();
XWPFRun r1 = p.createRun();
r1.setText("Some Text");
r1.setBold(true);
r2 = p.createRun();
r2.setText("Goodbye");
I haven't tried this code, but I believe "Some Text" will be bold, and "Goodbye" won't. You can also experiment with different syntax, to see what works best for you.
I hope that helps - and good luck!
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论