docx4j - 用文本和样式替换书签

docx4j - replacing a bookmark with text and style

我遇到了与 XPages - docx4j - replacing a bookmark with text 类似的问题,但我想保持这种风格。 我的书签不在文本上(因为它是由 Google Docs 创建的 docx),我想在我的书签之后保留文本以将其包含在书签中并保持其样式。 例如:

<w:bookmarkStart w:colFirst="0" w:colLast="0" w:name="3znysh7" w:id="2"/><w:bookmarkEnd w:id="2"/>
<w:r w:rsidDel="00000000" w:rsidR="00000000" w:rsidRPr="00000000">
    <w:rPr>
        <w:rFonts w:ascii="Calibri" w:cs="Calibri" w:eastAsia="Calibri" w:hAnsi="Calibri"/>
        <w:i w:val="1"/>
        <w:color w:val="1e4d78"/>
        <w:rtl w:val="0"/>
    </w:rPr>
    <w:t xml:space="preserve">MY_BOOKMARK</w:t>
</w:r>

我找到了擦除书签后文字的解决方案,我找到了在书签内添加文字的解决方案,但我无法保持样式。

我的母语不是英语,所以如果我不清楚,请随时问我。

在这种情况下,我创建了一个新的 R 并将其插入到 bookmarkStart 和 bookmarkEnd 之间。 我对这种例子还有另一个问题:

<w:bookmarkStart w:colFirst="0" w:colLast="0" w:name="30j0zll" w:id="1" />
      <w:bookmarkEnd w:id="1" />
      <w:p w:rsidR="00000000" w:rsidDel="00000000" w:rsidP="00000000" w:rsidRDefault="00000000" w:rsidRPr="00000000">
         <w:pPr>
            <w:pBdr />
            <w:tabs>
               <w:tab w:val="left" w:pos="1560" />
            </w:tabs>
            <w:spacing w:after="0" w:lineRule="auto" />
            <w:contextualSpacing w:val="0" />
            <w:rPr>
               <w:color w:val="2f5496" />
               <w:sz w:val="28" />
               <w:szCs w:val="28" />
            </w:rPr>
         </w:pPr>
         <w:r w:rsidDel="00000000" w:rsidR="00000000" w:rsidRPr="00000000">
            <w:rPr>
               <w:color w:val="2f5496" />
               <w:sz w:val="20" />
               <w:szCs w:val="20" />
               <w:rtl w:val="0" />
            </w:rPr>
            <w:t xml:space="preserve">MY_BOOKMARK1.</w:t>
         </w:r>
         <w:bookmarkStart w:colFirst="0" w:colLast="0" w:name="1fob9te" w:id="2" />
         <w:bookmarkEnd w:id="2" />
         <w:r w:rsidDel="00000000" w:rsidR="00000000" w:rsidRPr="00000000">
            <w:rPr>
               <w:color w:val="2f5496" />
               <w:sz w:val="20" />
               <w:szCs w:val="20" />
               <w:rtl w:val="0" />
            </w:rPr>
            <w:t xml:space="preserve">MY_BOOKMARK2</w:t>
         </w:r>
         <w:r w:rsidDel="00000000" w:rsidR="00000000" w:rsidRPr="00000000">
            <w:rPr>
               <w:rtl w:val="0" />
            </w:rPr>
         </w:r>
      </w:p>

我的解决方案:

  1. 保留名称为 0j0zll 的书签
  2. 创建一个新书签(id 是 xml 文件中书签的编号;id++)并插入

希望能帮到别人