1

私の要件は、テンプレートファイルを読み取り、そのコンテンツのいくつかの値を変更して、別のファイルに書き戻す必要があることです。最も重要なのは、テンプレートと同じスタイルである必要があります。

私が直面している問題は、私が読み書きできることですが、スタイルを転送することも非常に困難です。特に、段落スタイルをドキュメントに適用しようとすると疲れます。plsは私を助けます.....これは私のコードです

  public static void main(String[] args) {
    try {
          HWPFDocument templateFile = new HWPFDocument(new FileInputStream("D:\\POI\\testPOIin.doc"));
          HWPFDocument blankFile = new HWPFDocument(new FileInputStream("D:\\POI\\blank.doc"));

        ParagraphProperties pp = templateFile.getRange().getParagraph(4).cloneProperties();
        blankFile.getRange().insertAfter(pp, 0);
        OutputStream out = new FileOutputStream("D:\\POI\\testPOIout.doc");
        blankFile.write(out);

      } catch (FileNotFoundException fnfe) {
          // TODO: Add catch code
          fnfe.printStackTrace();
      } catch (Exception ioe) {
          // TODO: Add catch code
          ioe.printStackTrace();
      }
  }
}

plsは私が間違っていることを私に知らせます.....

4

1 に答える 1

0

同様のタスクもあり、調査後にソリューションを作成しましたが、docx ファイルに対してのみ機能します。

public static void main(String[] args) throws Exception {
    FileOutputStream fos = new FileOutputStream(new File("transformed.docx"));
    XWPFDocument doc = new XWPFDocument(new FileInputStream(new File("original.docx")));
    for(XWPFParagraph p:doc.getParagraphs()){
        for(XWPFRun r:p.getRuns()){
            for(CTText ct:r.getCTR().getTList()){
                String str = ct.getStringValue();
                if(str.contains("NAME")){
                    str = str.replace("NAME", "Java Dev");
                    ct.setStringValue(str);
                }
            }
        }
    }
    doc.write(fos);
}

低レベルの要素で動作するため、スタイルやその他の小道具が保存されます。それが誰かを助けることを願っています。

于 2012-10-18T12:58:54.300 に答える