簡體   English   中英

Docx4j-替換占位符會破壞格式

[英]Docx4j - replacing placeholder destroys format

當嘗試使用docx4j框架將我的占位符文本替換為word模板時,格式總是丟失:

之前
模板中的原始格式


更換后的格式

我試圖將代碼簡化為我在這里所做的工作的核心:

private void replacePlaceholder(WordprocessingMLPackage template,
                                String name,
                                String placeholder) {
    List<Object> texts =
        doc.getAllElementFromObject(template.getMainDocumentPart(), Text.class);
    for (Object text : texts) {
        Text textElement = (Text) text;

        if (textElement != null
                && textElement.getValue() != null
                && placeholder != null
                && textElement.getValue().equals(placeholder)) {
            textElement.setValue(name);
        }
    }
}

WordprocessingMLPackage wp = 
    WordprocessingMLPackage.load(context.getResourceAsStream("/template.docx"));
replacePlaceholder(wp, "Apr. 2007 - Dez. 2012", "tempDatum");

有人知道我應該怎么做才能保持原始格式嗎?

就像Jason在評論中指出的那樣,我的代碼不會更改格式!
但是由於它總是跳回到標准格式,所以我只是在模板中編輯了該標准格式,將其保存后就可以使用了!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM