使用 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 应该适合所有情况。