C1MultiDocument 组件被设计用作允许创建,保存以及导出大型文档,用来解决由于内存限制单个C1PrintDocument 无法处理的使用场景。
C1MultiDocument对象提供了一个Items集合,该集合可以包含一个或多个C1MultiDocumentItem类型的元素。每一个这样的元素代表了一个C1PrintDocument。通过使用压缩以及临时的磁盘存储,可以允许将几个C1PrintDocument合并为一个大的多重文档,这个过程可能会造成内存溢出,如果所有页面隶属于单个的C1PrintDocument。下面的代码片段演示了如何创建并预览一个一个多重文档:
Visual Basic
Visual Basic |
拷贝代码
|
---|---|
Dim mdoc As New C1MultiDocument() mdoc.Items.Add(C1PrintDocument.FromFile("myDoc1.c1dx")) mdoc.Items.Add(C1PrintDocument.FromFile("myDoc2.c1dx")) mdoc.Items.Add(C1PrintDocument.FromFile("myDoc3.c1dx")) Dim pview As New C1PrintPreviewDialog() pview.Document = mdoc pview.ShowDialog() |
C#
C# |
拷贝代码
|
---|---|
C1MultiDocument mdoc = new C1MultiDocument(); mdoc.Items.Add(C1PrintDocument.FromFile("myDoc1.c1dx")); mdoc.Items.Add(C1PrintDocument.FromFile("myDoc2.c1dx")); mdoc.Items.Add(C1PrintDocument.FromFile("myDoc3.c1dx")); C1PrintPreviewDialog pview = new C1PrintPreviewDialog(); pview.Document = mdoc; pview.ShowDialog(); |
C1MultiDocument支持所包含文档之间的链接,共通的TOC目录,共通的页面编码,以及整体的页数计算。
请注意,C1MultiDocument不存储到C1PrintDocument 对象的引用,而是将他们序列化(做为.cid/x文件格式)并存储该结果。因此,您可以创建非常大的多重文档而不会导致内存耗尽,当然您的代码如果引用了单独的C1PrintDocument,那么在添加到一个C1MultiDocument之后,这个引用关系将不会被保持。所以,当使用C1MultiDocument时,请确保不要将引用添加到多重文档之中的单个文档。
C1MultiDocument可以保存为“C1 Open XML Multi Document”格式,后缀名为.c1mdx。通过使用任意的Export方法的重载,C1MultiDocument可以导出成多种格式。详细信息请参见导出一个 C1MultiDocument 文件。
C1MultiDocument 可以通过任何Print以及PrintDialog进行打印。更多细节,请参见打印一个C1MultiDocument 文件。