溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

關(guān)于Aspose.NET使用的幾點(diǎn)注意事項(xiàng)

發(fā)布時(shí)間:2020-07-10 16:55:17 來源:網(wǎng)絡(luò) 閱讀:613 作者:mikez1026 欄目:編程語(yǔ)言

說明

為了消除于原生交互操作庫(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ù)本身所決定的。

向AI問一下細(xì)節(jié)

免責(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)容。

AI