使用 apache POI 创建文本段落时如何删除换行符
How to remove a line break when creating a text paragraph with apache POI
我正在从事一个旨在创建自动化 PPTX 的项目。一切都很好,除了在创建 XSLFTextBox 时,换行符出现在框的开头。这是代码的一部分
XSLFTextBox shape = slide.createTextBox();
XSLFTextParagraph p = shape.addNewTextParagraph();
XSLFTextRun r1 = p.addNewTextRun();
r1.setText("Example");
Here is an example of the result
我想知道是否有任何方法可以避免这种行为,或者我是否必须采用其他方式。
感谢阅读。
用 XSLFTextBox textbox = slide.createTextBox();
创建后 textbox
中似乎已经有一个段落。因此,只有在没有段落的情况下,才需要检查这一点并添加一段,
代码:
...
XSLFTextBox textbox = slide.createTextBox();
textbox.setAnchor(new Rectangle(100, 100, 100, 50));
XSLFTextParagraph paragraph = null;
if(textbox.getTextParagraphs().size() > 0) paragraph = textbox.getTextParagraphs().get(0);
if(paragraph == null) paragraph = textbox.addNewTextParagraph();
XSLFTextRun run = paragraph.addNewTextRun();
run.setText("Example");
...
不幸的是,创建后不能依赖段落的存在。这可能会在 apache poi
中因版本而异。这很烦人,但无法改变。使用显示的 check-routine 应该适合所有情况。
我正在从事一个旨在创建自动化 PPTX 的项目。一切都很好,除了在创建 XSLFTextBox 时,换行符出现在框的开头。这是代码的一部分
XSLFTextBox shape = slide.createTextBox();
XSLFTextParagraph p = shape.addNewTextParagraph();
XSLFTextRun r1 = p.addNewTextRun();
r1.setText("Example");
Here is an example of the result
我想知道是否有任何方法可以避免这种行为,或者我是否必须采用其他方式。 感谢阅读。
用 XSLFTextBox textbox = slide.createTextBox();
创建后 textbox
中似乎已经有一个段落。因此,只有在没有段落的情况下,才需要检查这一点并添加一段,
代码:
...
XSLFTextBox textbox = slide.createTextBox();
textbox.setAnchor(new Rectangle(100, 100, 100, 50));
XSLFTextParagraph paragraph = null;
if(textbox.getTextParagraphs().size() > 0) paragraph = textbox.getTextParagraphs().get(0);
if(paragraph == null) paragraph = textbox.addNewTextParagraph();
XSLFTextRun run = paragraph.addNewTextRun();
run.setText("Example");
...
不幸的是,创建后不能依赖段落的存在。这可能会在 apache poi
中因版本而异。这很烦人,但无法改变。使用显示的 check-routine 应该适合所有情况。