使用 Onlyoffice 建立的 .docx 檔(內含 2 個沒有剔的 checkbox 及 1 個有剔 checkbox), 再使用 aspose 轉換到 pdf 後,所有 checkbox 都剔了
请检查以下解决方案是否适合您?
Document doc = new Document("C:\\225697\\3B984C6CE03A4376-DeclarationofRelationship(2019).docx");
PdfSaveOptions pdfSaveOptions = new PdfSaveOptions();
pdfSaveOptions.setUpdateSdtContent(false);
doc.save("C:\\225697\\awjava-21.2.pdf", pdfSaveOptions);
謝謝
另外,請問有沒有類似的功能,可讓我將 OnlyOffice 的 .docx 檔案儲存為 Aspose 的 WORD 檔而不影響 checkbox
您可以将OoxmlSaveOptions.UpdateSdtContent设置为false。
但是,为了对Aspose.Words API进行任何更正,我们已在问题跟踪系统中使用ID WORDSNET-21877记录了此问题。 我们将进一步调查此问题的详细信息,并将使您随时了解链接问题的状态。 很抱歉给您带来不便。
关于WORDSNET-21877,是为了通知您我们已经完成了对这一问题的分析。 分析显示以下内容:
您已经获得带有复选框类型的SDT(内容控件)的DOCX文档。 'SDT.Checked’属性设置为true。 但是’SDT.ContentChecked’属性设置为false。 这是此SDT的结构:
<w:sdt>
<w:sdtPr>
<w:alias w:val=""/>
<w15:appearance w15:val="boundingBox"/>
<w:label w:val="0"/>
<w:lock w:val="unlocked"/>
<w:tag w:val=""/>
<w14:checkbox>
<w14:checked w14:val="1"/>
<w14:checkedState w14:val="2612" w14:font="MS Gothic"/>
<w14:uncheckedState w14:val="2610" w14:font="MS Gothic"/>
</w14:checkbox>
<w:rPr/>
</w:sdtPr>
<w:sdtContent>
<w:r>
<w:rPr>
<w:rFonts w:eastAsia="MS Gothic" w:cs="MS Gothic" w:hAnsi="MS Gothic" w:ascii="MS Gothic"/>
</w:rPr>
<w:t xml:space="preserve">☐</w:t>
</w:r>
</w:sdtContent>
</w:sdt>
MS Word 2019会使用未选中的符号显示此文档。
Aspose.Words使用选中的符号将该文档重新保存为DOCX和PDF。
如图所示:WORDSNET-21877 Analysis 1.png (2.7 KB)
如果重新保存时将’SaveOption.UpdateSdtContent’设置为false,则生成的DOCX和PDF文档将包含未选中的符号:
Document doc = new Document("X:\\Test21877.docx");
PdfSaveOptions pdfSaveOptions = new PdfSaveOptions();
pdfSaveOptions.setUpdateSdtContent(false);
doc.save("X:\\Test21877.docx_aw.pdf", pdfSaveOptions); // correct results
OoxmlSaveOptions ooxmlSaveOptions = new OoxmlSaveOptions();
ooxmlSaveOptions.setUpdateSdtContent(false);
doc.save("X:\\Test21877.docx_aw.docx", ooxmlSaveOptions); // correct results
MS Word 2019也会使用未经检查的符号将该文档重新保存为DOCX和PDF。
因此,默认情况下,Aspose.Words通过更新SDT内容重新保存文档。
简而言之,问题是由于MS Word问题引起的。 如您所见,实际上复选框的内容控件已选中。
<w14:checked w14:val="1" />
无论出于何种原因,MS Word都不会更新内容控件的外观。 相反,Aspose Words尝试将实际的内容控制值与视觉呈现进行同步,并在默认情况下对其进行更新。 如果要保留视觉表示并忽略实际的内容控件值,则应使用SaveOption.UpdateSdtContent并将其设置为false。