我使用apache作为ppt生成。我想写文本框就像第一行是标题和粗体,rest是内容和非粗体。我使用HSLFTextRun来保持标题和内容设置的不同,我面临的问题是,每当我为标题文本应用set粗体(True)时,都会运行。它也使内容粗体。虽然我已经尝试了设置set阔叶(假)的内容,但没有用。以下是代码
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();
}在这件事上有任何帮助是非常感谢的,谢谢。
发布于 2017-08-26 21:59:33
不管出于什么原因,如果你把粗体的文字设置在最后,它对我有效:
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();
}https://stackoverflow.com/questions/45899751
复制相似问题