• <menu id="w2i4a"></menu>
  • logo Aspose.Words開發(fā)者指南

    文檔首頁>>Aspose.Words開發(fā)者指南>>Word格式處理控件Aspose.Words for .NET教程——更新和刪除字段

    Word格式處理控件Aspose.Words for .NET教程——更新和刪除字段


    Aspose.Words for .NET是一種高級Word文檔處理API,用于執(zhí)行各種文檔管理和操作任務(wù)。API支持生成,修改,轉(zhuǎn)換,呈現(xiàn)和打印文檔,而無需在跨平臺應(yīng)用程序中直接使用Microsoft Word。此外,API支持所有流行的Word處理文件格式,并允許將Word文檔導(dǎo)出或轉(zhuǎn)換為固定布局文件格式和最常用的圖像/多媒體格式。

    >>Aspose.Words for .NET已經(jīng)更新至v20.7,添加了新節(jié)點以處理多節(jié)結(jié)構(gòu)化文檔標(biāo)簽,改進(jìn)了SmartArt冷渲染的性能,RevisionOptions類擴展了新的屬性,點擊下載體驗


    如何更新字段

    加載文檔后,Aspose.Words模仿Microsoft Word的行為,并且自動更新字段選項已關(guān)閉。該行為可以總結(jié)如下:

    • 當(dāng)您打開/保存文檔時,這些字段保持不變。
    • 根據(jù)需要顯式更新文檔中的所有字段(例如,重建TOC)。
    • 當(dāng)打印/渲染為PDF或XPS時,頁眉/頁腳中與頁碼相關(guān)的字段將更新。
    • 執(zhí)行郵件合并時,所有字段都會自動更新。
    以編程方式更新字段

    要顯式更新整個文檔中的字段,只需調(diào)用Document.UpdateFields。要更新文檔一部分中包含的字段,請獲取Range對象并調(diào)用Range.UpdateFields方法。在Aspose.Words中,可以使用Node.Range屬性為文檔樹中的任何節(jié)點(例如Section,HeaderFooter,Paragraph等)獲取Range??梢酝ㄟ^調(diào)用Field.Update來更新單個字段的結(jié)果。

    渲染期間頁面相關(guān)字段的自動更新

    當(dāng)執(zhí)行將文檔轉(zhuǎn)換為固定頁面格式(例如PDF或XPS)時,Aspose.Words會自動更新與頁面布局相關(guān)的字段PAGE,PAGEREF,這些字段位于文檔的頁眉/頁腳中。此行為模仿了打印文檔時Microsoft Word的行為。如果要更新文檔中的所有其他字段,則需要在呈現(xiàn)文檔之前調(diào)用Document.UpdateFields。

    // The path to the documents directory.
    string dataDir = RunExamples.GetDataDir_WorkingWithFields();
    
    Document doc = new Document(dataDir + "Rendering.doc");
    
    // This updates all fields in the document.
    doc.UpdateFields();
    dataDir = dataDir + "Rendering.UpdateFields_out.pdf";
    doc.Save(dataDir);
    郵件合并期間的自動字段更新

    當(dāng)執(zhí)行郵件合并時,文檔中的所有字段都會自動更新。這是因為郵件合并是字段更新的情況。該程序遇到一個郵件合并字段,需要更新其結(jié)果,這涉及從數(shù)據(jù)源獲取值并將其插入該字段中。邏輯當(dāng)然更復(fù)雜,例如,當(dāng)?shù)竭_(dá)文檔/郵件合并區(qū)域的末尾但仍然有其他數(shù)據(jù)要合并時,則需要復(fù)制該區(qū)域并更新新的字段集。

    更新具有dirty屬性的字段

    w:dirty是一個字段級屬性,將僅在您打開文檔時刷新您指定的字段。它告訴MS Word僅在下次打開文檔時刷新此字段。使用LoadOptions.UpdateDirtyFields屬性來指定是否使用dirty屬性更新字段。當(dāng)LoadOptions.UpdateDirtyFields的值設(shè)置為true時,將在文檔加載時更新Field.IsDirty或FieldChar.IsDirty屬性具有真值的所有字段。以下示例顯示如何更新具有臟屬性的字段。

    LoadOptions lo = new LoadOptions();
    
    //Update the fields with the dirty attribute
    lo.UpdateDirtyFields = true;
    
    //Load the Word document
    Document doc = new Document(dataDir + @"input.docx", lo);
     
    //Save the document into DOCX
    doc.Save(dataDir + "output.docx", SaveFormat.Docx);

    保存前更新LastSavedTime屬性

    使用SaveOptions.UpdateLastSavedTimeProperty屬性是否在保存文檔時更新相應(yīng)的內(nèi)置文檔屬性(BuiltInDocumentProperties.LastSavedTime)。 下面的示例顯示如何更新此屬性。

    Document doc = new Document(dataDir + "Document.doc");
    
    OoxmlSaveOptions options = new OoxmlSaveOptions();
    options.UpdateLastSavedTimeProperty = true;
    
    dataDir = dataDir + "UpdateLastSavedTimeProperty_out.docx";
    
    // Save the document to disk.
    doc.Save(dataDir, options);

    調(diào)用UpdateFields會更新所有字段類型

    在以前的版本中,調(diào)用Document.UpdateFields或Range.UpdateFields只會更新常規(guī)字段(例如IF或DOCPROPERTY),而不會更新與頁面布局相關(guān)的字段(例如PAGE或NUMPAGES)?,F(xiàn)在,較新的版本將更新常規(guī)和頁面布局相關(guān)的字段。當(dāng)Document.UpdateFields或Range.UpdateFields被稱為所有字段在整個文件/范圍更新。如果在更新過程中遇到與頁面布局相關(guān)的字段(例如PAGE字段),則可能涉及構(gòu)建文檔布局。 下例顯示了如何更新文檔中的所有字段。

    // The path to the documents directory.
    string dataDir = RunExamples.GetDataDir_WorkingWithFields();
    
    Document doc = new Document(dataDir + "Rendering.doc");
    
    // This updates all fields in the document.
    doc.UpdateFields();
    dataDir = dataDir + "Rendering.UpdateFields_out.pdf";
    doc.Save(dataDir);

    刪除字段

    如前所述,所有字段現(xiàn)在都使用Document.UpdateFields更新?,F(xiàn)在,這意味著更新文檔中字段的更簡潔明了的方法。這也意味著在諸如更新TOC字段之類的情況下,不再需要對Document.UpdatePageLayout的任何調(diào)用。所有工作都在Document.UpdateFields調(diào)用中處理。 下面的示例顯示如何通過調(diào)用字段更新來完全重建文檔中的TOC字段。

    // The path to the documents directory.
    string dataDir = RunExamples.GetDataDir_WorkingWithFields();
    
    Document doc = new Document(dataDir + "Field.RemoveField.doc");
    
    Field field = doc.Range.Fields[0];
    // Calling this method completely removes the field from the document.
    field.Remove();

    還想要更多嗎?您可以點擊閱讀
    【2020 · Aspose最新資源整合】查找需要的教程資源。如果您有任何疑問或需求,請隨時加入Aspose技術(shù)交流群(642018183),我們很高興為您提供查詢和咨詢。
    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();