彩票走势图

关于Aspose.NET使用的几点注意事项

原创|行业资讯|编辑:郝浩|2013-09-16 09:57:44.000|阅读 1758 次

概述:本文主要讲述了Aspose.NET使用代码中设置许可证、处理文档和书签管理需要注意的几个点。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

说明

为了消除于原生交互操作库对Microsoft Word软件依赖性,我们已经改变了进程。我们用Aspose库在内存中管理所有进程并更有效地管理文档有两个目的:

  • 避免为了自动化而在一个服务器上安装Microsoft Word。
  • 直接在代码中的库有更好的性能

同时,Aspose有完整的Microsoft Ofiice库,并且对于为我们的网络应用程序添加弹性功能性非常有用。你的mileage将依据处理有关整合它们的库的文档的方式而发生变化,但它们是功能完整的,并且该文档是提供的产品中不可分割的一部分。

使用代码

(1)设置许可证

Aspose组件需要你加载许可证到库,以解锁它的真正功能。

你可以在它们的网站上申请临时许可证(通过创建引用你感兴趣的组件,表明你感兴趣的组件,在引用的最后阶段,该选项将变为可用)

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

添加许可证到你的库作为静态资源,不然它会驻留在和应用程序相同的文件夹。

(2)处理你的文档

现在是你的设计容易出偏差的时候,我们用隐藏的书签来控制动态节(里和外), 如果你用其它方式,你将需要深度挖掘库的功能。

两个主要的类将在大部分处理过程中被使用: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

现在有了这项设置,你就已经准备好铺开你的代码来利用文档。Aspose.Word.NET对象层管理文档(如XML文档),无论它是遗留的(RTF,DDC1997/2003等)还是新的格式(DOCX,DOCM等),为了正确地修改或利用现有的数据,你都需要穿过对象节点树。

(3)书签管理上的几个例子和注意点

' Retrieve data
Dim sValue As String = oWordDocument.Range.Bookmarks(sBookmarkName).Text
' Change data
sValue = “Test”
oWordDocument.Range.Bookmarks(sBookmarkName).Text = sValue

这包括操纵现有的书签。

创建书签本身就很简单,你将需要新增两个子节点到文档架构中:

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)

 识别书签边界的方式将依据你管理文档的方式而变化,如果你是在构建文档,你将只需要简单地添加它到文档内容中;如果你是用先前存在的模板,则需要更复杂的解决方案来管理书签。

唯一一个你需要当心的点是当克隆一个节点(文档中的任意成分都是节点并且也能被克隆为它自己的树)时,要注意克隆的书签仍然保持着它们的原始名称,你必须为其重命名,否则将发生异常。

通过捕捉上述两种节点来相应地改变书签名称

(4)保存你的修改

虽然这些实例都很基础,它们包含I/O使用书签,你将需要做的是使用适当的XSaveOptions类保存文档。请注意,使用提供的其他保存方式(由文件扩展名来检测)可能是错误的。

在此说明PDF保存事项:

' 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)

注意点

从性能上看,不需要举例说明文档来自一个硬盘驱动绑定文件已经是一个很大的改进,不需要依靠Microsoft Office添加更多,但处理本身显示相对于原生.NET交互操作库有6:1的增益。

另一个注意点是关于组件的性能,清理是繁琐的,因此应该孤立到非关键路径。

对象提取层也大大简化了代码需要操纵的文档本身,不包括同样的的quirks出现在文档最终结构中,其复杂性是由库本身所决定的。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn

文章转载自:慧都控件网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP