您好,登錄后才能下訂單哦!
說明
為了消除于原生交互操作庫(kù)對(duì)Microsoft Word軟件依賴性,我們已經(jīng)改變了進(jìn)程。我們用Aspose庫(kù)在內(nèi)存中管理所有進(jìn)程并更有效地管理文檔有兩個(gè)目的:
避免為了自動(dòng)化而在一個(gè)服務(wù)器上安裝Microsoft Word。
直接在代碼中的庫(kù)有更好的性能。
同時(shí),Aspose有完整的Microsoft Ofiice庫(kù),并且對(duì)于為我們的網(wǎng)絡(luò)應(yīng)用程序添加彈性和功能性非常有用。你的mileage將依據(jù)處理有關(guān)整合它們的庫(kù)的文檔的方式而發(fā)生變化,但它們是功能完整的,并且該文檔是提供的產(chǎn)品中不可分割的一部分。
使用代碼
(1)設(shè)置許可證
Aspose組件需要你加載許可證到庫(kù),以解鎖它的真正功能。
你可以在它們的網(wǎng)站上申請(qǐng)臨時(shí)許可證(通過創(chuàng)建引用你感興趣的組件,表明你感興趣的組件,在引用的最后階段,該選項(xiàng)將變?yōu)榭捎茫?/p>
Dim License As New Aspose.Words.License() Try License.SetLicense("Aspose.Words.lic") Catch ' Make sure to trap and record any licensing issues here End Try
添加許可證到你的庫(kù)作為靜態(tài)資源,不然它會(huì)駐留在和應(yīng)用程序相同的文件夾。
(2)處理你的文檔
現(xiàn)在是你的設(shè)計(jì)容易出偏差的時(shí)候,我們用隱藏的書簽來控制動(dòng)態(tài)節(jié)(里和外), 如果你用其它方式,你將需要深度挖掘庫(kù)的功能。
兩個(gè)主要的類將在大部分處理過程中被使用:Aspose.Word.WordDocument 和 Aspose.Word.WordDocumentBuilder。
Dim oWordFile As System.IO.MemoryStream Dim oWordDocument As Aspose.Words.Document Dim oWordDocumentBuilder As Aspose.Words.DocumentBuilder ' oDocument represents an external resource extracted from a database oWordFile = New System.IO.MemoryStream(oDocument.Content, True) oWordDocument = New Aspose.Words.Document(oWordFile) oWordDocumentBuilder = New Aspose.Words.DocumentBuilder(oWordDocument) ' Clean up, passed this point the MemoryStream is no longer required oWordFile.Dispose() oWordFile = Nothing
現(xiàn)在有了這項(xiàng)設(shè)置,你就已經(jīng)準(zhǔn)備好鋪開你的代碼來利用文檔。Aspose.Word.NET對(duì)象層管理文檔(如XML文檔),無論它是遺留的(RTF,DDC1997/2003等)還是新的格式(DOCX,DOCM等),為了正確地修改或利用現(xiàn)有的數(shù)據(jù),你都需要穿過對(duì)象節(jié)點(diǎn)樹。
(3)書簽管理上的幾個(gè)例子和注意點(diǎn)
' Retrieve data Dim sValue As String = oWordDocument.Range.Bookmarks(sBookmarkName).Text ' Change data sValue = “Test” oWordDocument.Range.Bookmarks(sBookmarkName).Text = sValue
這包括操縱現(xiàn)有的書簽。
創(chuàng)建書簽本身就很簡(jiǎn)單,你將需要新增兩個(gè)子節(jié)點(diǎn)到文檔架構(gòu)中:
Dim oBookmarkStart As New Aspose.Words.BookmarkStart(oWordDocument, sNewName) Dim oBookmarkEnd As New Aspose.Words.BookmarkEnd(oWordDocument, sNewName) ' oNodeStart and oNodeEnd represent content nodes already identified to become the ' boundaries of the new bookmark oNodeStart.AppendChild(oBookmarkStart) oNodeEnd.AppendChild(oBookmarkEnd)
識(shí)別書簽邊界的方式將依據(jù)你管理文檔的方式而變化,如果你是在構(gòu)建文檔,你將只需要簡(jiǎn)單地添加它到文檔內(nèi)容中;如果你是用先前存在的模板,則需要更復(fù)雜的解決方案來管理書簽。
唯一一個(gè)你需要當(dāng)心的點(diǎn)是當(dāng)克隆一個(gè)節(jié)點(diǎn)(文檔中的任意成分都是節(jié)點(diǎn)并且也能被克隆為它自己的樹)時(shí),要注意克隆的書簽仍然保持著它們的原始名稱,你必須為其重命名,否則將發(fā)生異常。
通過捕捉上述兩種節(jié)點(diǎn)來相應(yīng)地改變書簽名稱
(4)保存你的修改
雖然這些實(shí)例都很基礎(chǔ),它們包含I/O使用書簽,你將需要做的是使用適當(dāng)?shù)腦SaveOptions類保存文檔。請(qǐng)注意,使用提供的其他保存方式(由文件擴(kuò)展名來檢測(cè))可能是錯(cuò)誤的。
在此說明PDF保存事項(xiàng):
' The options are up to you, this setup is for lighter files oPDFOptions = New Aspose.Words.Saving.PdfSaveOptions() oPDFOptions.EmbedFullFonts = False oPDFOptions.ExportCustomPropertiesAsMetadata = False oPDFOptions.FontEmbeddingMode = Aspose.Words.Saving.PdfFontEmbeddingMode.EmbedNone ' For Left to Right text support (Arabic, Hebrew, etc…) oWordDocument.FieldOptions.IsBidiTextSupportedOnUpdate = False ' oNewMemoryStream being the target for the push oWordDocument.Save(oNewMemoryStream, oPDFOptions)
注意點(diǎn)
從性能上看,不需要舉例說明文檔來自一個(gè)硬盤驅(qū)動(dòng)綁定文件已經(jīng)是一個(gè)很大的改進(jìn),不需要依靠Microsoft Office添加更多,但處理本身顯示相對(duì)于原生.NET交互操作庫(kù)有6:1的增益。
另一個(gè)注意點(diǎn)是關(guān)于組件的性能,清理是繁瑣的,因此應(yīng)該孤立到非關(guān)鍵路徑。
對(duì)象提取層也大大簡(jiǎn)化了代碼需要操縱的文檔本身,不包括同樣的的quirks出現(xiàn)在文檔最終結(jié)構(gòu)中,其復(fù)雜性是由庫(kù)本身所決定的。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。