我正在使用apache poi hslf进行ppt genertion。我想写在文本框中,如第一行是标题和粗体,休息是内容和非粗体。我已经使用HSLFTextRun来保持标题和内容的设置不同。我遇到的问题是每当我对标题文本运行应用setbold(true)时。它也使内容变得粗体。虽然我已经尝试为内容设置setbold(false)但没有用。以下是代码
public static void main(String[] args) throws IOException {
HSLFSlideShow ppt = new HSLFSlideShow();
HSLFSlide slide = ppt.createSlide();
HSLFTextBox tb = slide.createTextBox();
tb.setAnchor(new Rectangle(100, 100, 200, 200));
HSLFTextRun titleTR = tb.appendText("Title", true);
titleTR.setBold(true);
HSLFTextRun bullet1TR = tb.appendText(" bullet1", true);
bullet1TR.getTextParagraph().setBullet(true);
bullet1TR.setBold(false);
HSLFTextRun bullet2TR = tb.appendText(" bullet2", true);
bullet2TR.getTextParagraph().setBullet(true);
bullet2TR.setBold(false);
FileOutputStream fos = new FileOutputStream("bullet.ppt");
ppt.write(fos);
fos.close();
ppt.close();
}
对此事的任何帮助表示赞赏, 感谢。
答案 0 :(得分:0)
无论出于何种原因,如果你在最后设置粗体文字,它对我有用:
public static void main(String[] args) throws IOException {
HSLFSlideShow ppt = new HSLFSlideShow();
HSLFSlide slide = ppt.createSlide();
HSLFTextBox tb = slide.createTextBox();
tb.setAnchor(new Rectangle(100, 100, 200, 200));
HSLFTextRun titleTR = tb.appendText("Title", false);
tb.appendText("\n", false);
HSLFTextRun bullet1TR = tb.appendText(" bullet1", true);
bullet1TR.getTextParagraph().setBullet(true);
HSLFTextRun bullet2TR = tb.appendText(" bullet2", true);
bullet2TR.getTextParagraph().setBullet(true);
titleTR.setBold(true);
FileOutputStream fos = new FileOutputStream("bullet.ppt");
ppt.write(fos);
fos.close();
ppt.close();
}