国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Aspose.Words:如何添加另一個WORD文檔中的Node對象

2019-11-17 02:55:56
字體:
來源:轉載
供稿:網友

aspose.Words:如何添加另一個WORD文檔中的Node對象

首先看一段代碼,這段代碼意圖從docSource中獲取第一個表格,并插入docTarget的末尾:

1 var table = (Table)docSource.GetChild(NodeType.Table, 0, true);2 docTarget.FirstSection.Body.ChildNodes.Add(table);

這段代碼會拋出異常:“The newChild was created from a different document than the one that created this node.”,這是什么原因呢?

原因是,對于Aspose.Words的Node對象,它的一系列樣式和格式的控制,取決于它所在的DocumentBase父對象,這也是很多Aspose.Words對象聲明時,必須指定它的DocumentBase參數,比如聲明一個Table,應該如下:

1 Document doc=new Document();2 Table table=new Table(doc);

那么,我們有沒有辦法添加另一個文檔中的對象呢?有,必須通過Document.ImportNode方法或者使用NodeImporter對象。

這兩種方法思路都是將源文檔中的Node導入到目標文檔中,再追加Node到合適的位置。

Document.ImportNode
 1 /// <summary> 2 /// A manual implementation of the Document.AppendDocument function which shows the general  3 /// steps of how a document is appended to another. 4 /// </summary> 5 /// <param name="dstDoc">The destination document where to append to.</param> 6 /// <param name="srcDoc">The source document.</param> 7 /// <param name="mode">The import mode to use when importing content from another document.</param> 8 public void AppendDocument(Document dstDoc, Document srcDoc, ImportFormatMode mode) 9 {10     // Loop through all sections in the source document. 11     // Section nodes are immediate children of the Document node so we can just enumerate the Document.12     foreach (Section srcSection in srcDoc)13     {14         // Because we are copying a section from one document to another, 15         // it is required to import the Section node into the destination document.16         // This adjusts any document-specific references to styles, lists, etc.17         //18         // Importing a node creates a copy of the original node, but the copy19         // is ready to be inserted into the destination document.20         Node dstSection = dstDoc.ImportNode(srcSection, true, mode);21 22         // Now the new section node can be appended to the destination document.23         dstDoc.AppendChild(dstSection);24     }25 }
NodeImporter
 1 public static Document GenerateDocument(Document srcDoc, ArrayList nodes) 2         { 3             // Create a blank document. 4             Document dstDoc = new Document(); 5             // Remove the first paragraph from the empty document. 6             dstDoc.FirstSection.Body.RemoveAllChildren(); 7  8             // Import each node from the list into the new document. Keep the original formatting of the node. 9             NodeImporter importer = new NodeImporter(srcDoc, dstDoc, ImportFormatMode.KeepSourceFormatting);10 11             foreach (Node node in nodes)12             {13                 Node importNode = importer.ImportNode(node, true);14                 dstDoc.FirstSection.Body.AppendChild(importNode);15             }16 17             // Return the generated document.18             return dstDoc;19         }

參考文檔:

http://www.aspose.com/docs/display/wordsnet/Aspose.Words.DocumentBase.ImportNode+Overload_1


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 化隆| 北京市| 江达县| 玉门市| 娱乐| 武定县| 阳谷县| 天峻县| 南漳县| 梧州市| 大渡口区| 军事| 吴桥县| 焉耆| 怀来县| 团风县| 边坝县| 建始县| 社会| 铅山县| 肇州县| 都匀市| 偏关县| 英吉沙县| 临清市| 青阳县| 蕉岭县| 六盘水市| 重庆市| 贵州省| 且末县| 丘北县| 洛川县| 桂平市| 富锦市| 合作市| 荣成市| 冷水江市| 弥渡县| 栾城县| 克拉玛依市|