通过JAVA将模板附加到word文档中

发布于 2024-10-17 20:52:08 字数 33 浏览 2 评论 0原文

谁能帮我通过Java编码将模板附加到word文档中。

Can anyone help me to attach a template to a word document through Java coding.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

絕版丫頭 2024-10-24 20:52:08

如果您知道如何在 VBA 中执行此操作,则可以使用 Com4J,生成 Word 的 JavaProxies,然后从 Java 调用相同的函数。

If you know how to do this in VBA, you can use Com4J, generate the JavaProxies for Word, and then call the same functions from Java.

输什么也不输骨气 2024-10-24 20:52:08

使用 docx4j:

    // Create settings part, and init content
    DocumentSettingsPart dsp = new DocumentSettingsPart();
    CTSettings settings = Context.getWmlObjectFactory().createCTSettings();
    dsp.setJaxbElement(settings);
    wordMLPackage.getMainDocumentPart().addTargetPart(dsp);

    // Create external rel
    RelationshipsPart rp = RelationshipsPart.createRelationshipsPartForPart(dsp);       
    org.docx4j.relationships.Relationship rel = new org.docx4j.relationships.ObjectFactory().createRelationship();
    rel.setType( "http://schemas.openxmlformats.org/officeDocument/2006/relationships/attachedTemplate"  );
    rel.setTarget("file:///C:\\Users\\jsmith\\AppData\\Roaming\\Microsoft\\Templates\\yours.dotm");
    rel.setTargetMode("External");          
    rp.addRelationship(rel); // addRelationship sets the rel's @Id

    settings.setAttachedTemplate(
            (CTRel)XmlUtils.unmarshalString("<w:attachedTemplate xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" r:id=\"" + rel.getId() + "\"/>", Context.jc, CTRel.class)
            );

请参阅 docx4j svn 中的 org.docx4j.samples.TemplateAttach 以获取完整示例。

with docx4j:

    // Create settings part, and init content
    DocumentSettingsPart dsp = new DocumentSettingsPart();
    CTSettings settings = Context.getWmlObjectFactory().createCTSettings();
    dsp.setJaxbElement(settings);
    wordMLPackage.getMainDocumentPart().addTargetPart(dsp);

    // Create external rel
    RelationshipsPart rp = RelationshipsPart.createRelationshipsPartForPart(dsp);       
    org.docx4j.relationships.Relationship rel = new org.docx4j.relationships.ObjectFactory().createRelationship();
    rel.setType( "http://schemas.openxmlformats.org/officeDocument/2006/relationships/attachedTemplate"  );
    rel.setTarget("file:///C:\\Users\\jsmith\\AppData\\Roaming\\Microsoft\\Templates\\yours.dotm");
    rel.setTargetMode("External");          
    rp.addRelationship(rel); // addRelationship sets the rel's @Id

    settings.setAttachedTemplate(
            (CTRel)XmlUtils.unmarshalString("<w:attachedTemplate xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" r:id=\"" + rel.getId() + "\"/>", Context.jc, CTRel.class)
            );

See org.docx4j.samples.TemplateAttach in docx4j svn for the complete example.

ぃ双果 2024-10-24 20:52:08

尝试 Apache POI,它提供了用于操作 MS Office 文档的跨平台纯 Java 解决方案。

Try Apache POI that provides cross platform pure Java solution for manipulating MS Office documents.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文