代码之家  ›  专栏  ›  技术社区  ›  user3768904

在使用apache poi hslf的ppt文本框中,标题应为粗体,但非标题应为非粗体

  •  2
  • user3768904  · 技术社区  · 7 年前

    我正在使用apache poi hslf生成ppt。我想在文本框中写,第一行是标题,加粗,其余是内容,非加粗。我使用了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();
    }
    

    在此问题上的任何帮助都将不胜感激, 谢谢

    1 回复  |  直到 7 年前
        1
  •  0
  •   JensS    7 年前

    无论出于何种原因,如果您在最后设置粗体文本,这对我来说都适用:

    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();
    }