文档库可以创建新的空文件。空的文件可以设置的主题是,发送到DocumentConverter像往常一样,保存到缓存。虽然这是本身很少使用,使用时很强大的文档作为一个虚拟的基础。
为了说明这一点,想象一个情景,在这个情景中你有两个扫描PDF文档。一个包含奇数页和其他包含甚至原始扫描文档的页面。您现在可以创建一个新的虚拟文档,添加所有的页面从现有文件以正确的顺序,然后把这个新PDF主题是,或将其发送DocumentConverter完成它。
想象另一种情况中,您想要快速创建一个新的法律文档,其中包含一个头从PDF文档和内容页表,两个传真图像(从TIFF文件),四个免责声明和内容页(多克斯从Word文件),和一个AutoCAD绘图(DWG文件中)。你希望能够把这个文档在LEADTOOLS文档查看器。虚拟文件之前,一个物理文件,其中包含所有这些来源页面必须生成的(使用DocumentWriter)和缓存。这个操作需要时间和文件的服务器必须跟踪为了不再需要时删除它。
与虚拟文件,所需要的就是创建虚拟文件,加载的源文件,并添加所需的页面。当完成时,只需把这个文档对象查看器。没有进一步的行动是必要的。新文档没有磁盘上的物理表示。它只是重定向页面调用获得图像,SVG或文本底层原始文档。
创建一个新文档,创建一个实例CreateDocumentOptions并调用DocumentFactory.Create。DocumentFactory.Create返回一个新的空,非只读的LEADDocument对象。的LEADDocument.Pages集合是空的和的值LEADDocument.IsReadOnly被设置为假。
如果文件已经存在于缓存中,调用DocumentFactory.CloneDocument创建一个克隆。
假设virtualDocument
是LEADDocument前一节中创建的对象sourceDocument1
是一个文档获得通过调用吗DocumentFactory.LoadFromUri在一个多页的PDF文件。添加第一和第二页(指数0和1页),简单地调用virtualDocument.Pages.AddPage (sourceDocument1.Pages [0])
和virtualDocument.Pages.AddPage (sourceDocument1.Pages [1])
。现在的价值virtualDocument.Pages
将包含两个项目。
在内部,DocumentPage引用这两个文档之间共享和数据复制。的价值DocumentPage.Document文档(仍然指向原来的店主sourceDocuement1
)。这意味着sourceDocument1
必须保持活着只要virtualDocument
还活着。如果你检查virtualDocument.Documents
集合,你会发现现在有一项:sourceDocument1
。任何更改源页面在原始的文件中反映在虚拟文档。
的DocumentPages收集来自LeadCollection并允许您不仅添加、删除、替换,和再订购页面。如果你叫virtualDocument.Pages.Clear
,集合为空,如果你检查virtualDocument.Documents
集合,它将是空的。没有了和两个文档之间的链接sourceDocument1
可以处理,如果需要的话。
LEADDocument.Documents是一个只读集合:意味着你不能添加或删除条目直接从它。项目的类型LEADDocument)添加和删除这取决于页面添加或删除。举例来说,如果我们添加了两个页面相同的源文档,文档收集以来只包含一个条目页面都是来自同一个文档。如果你多页TIFF文件加载到现在sourceDocument2
并添加一个页面virtualDocument
(虽然它仍然包含的两页sourceDocument1
),文档集将包含两个项目:sourceDocument1
和sourceDocument2
。
您还可以添加空白页通过调用一个虚拟的文档LEADDocument.Pages.CreatePage这个页面所需的大小和增加virtualDocument.Pages
收集。的价值DocumentPage.Document将virtualDocument
在这种情况下,因为这是原始所有者文档。
主题是完全支持虚拟文件。当一个文档集,它将订阅CollectionChanged事件的页面收集和更新视图,缩略图,书签,并相应注释部分如果页面添加或删除文档时。尽管视图自动跟踪的所有更改,最好是电话DocumentViewer.BeginUpdate/documentviewer.endupdate当添加或删除超过少数页面一次为了减少闪烁,优化性能。
查看器将自动合并所有子文件的书签。书签项指向不存在的页面(页面的源文档没有被添加到虚拟文档)将非功能性。同样,页面自动检查和任何之间inter-links指向不存在的页面将不会功能。
功能仅适用于某些类型的文件检查原始文档类型。例如,如果认为SVG请求,然后页面属于兼容的文件(如PDF或多克斯)将被视为SVG,虽然页面属于不兼容的文件(如TIFF或JPEG)仍被视为光栅图像。同样,当使用客户端PDF呈现,只有最初属于PDF文档页面呈现从原始数据直接使用JavaScript和所有其他使用SVG呈现或光栅图像。
将一个虚拟的文档保存到缓存中,调用LEADDocument.SaveToCache像往常一样。(从信息页面LEADDocument.Pages(从)和主人文档的idLEADDocument.Documents)存储在缓存中。
当DocumentFactory.LoadFromCache叫做虚拟文档的ID,工具箱将尝试自动负载所需的所有子文件重建虚拟文档通过调用DocumentFactory.LoadFromCache与每一个的ID。如果这对任何文档失败,那么属于它的页面没有加载并从虚拟文档中删除。
修改这个行为,订阅DocumentFactory.LoadDocumentFromCache事件。
LEADDocument对象是一次性的处理方法必须调用当对象不再需要。
有两种常见的场景使用源和虚拟文件,如下:
虚拟文件是唯一的所有源文件的所有者。这是默认情况下从缓存中加载一个虚拟文件:所有的子文档将自动加载到崭新的LEADDocument对象。这些对象只存在(默认情况下)文档集合的虚拟文档和系统中其他地方。在这种情况下,最好的价值virtualDocument.AutoDisposeDocuments来真正的。这样,当virtualDocument.Dispose被调用时,它会自动循环通过所有的子文档(如果有的话)和电话吗处理。
源文档是用于创建虚拟文件需求(可能不止一个相同的源对象),并被发送到另一个系统。这种行为类似于LEADTOOLS虚拟文档演示创建虚拟动态文件从源文件并保存到缓存中。相同的源文档可以属于多个虚拟文件在同一时间。
在这种情况下,最好的价值virtualDocument.AutoDisposeDocuments来假。当virtualDocument.Dispose被调用时,它只会把孩子的文档吗文档收集没有调用处理。因为这些孩子(源)文件可能是另一个虚拟文件系统的一部分,用户应该叫处理在源文件后,他们不再需要。
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗Web查看器net
188宝金博怎么下载
支持的平台上
net, Java, Android和iOS / macOS组件
C / c++类库的API
HTML5 JavaScript库
你的邮件已经发送到支持!有人应该联系!如果你的问题是紧急请回到聊天。
聊天时间:
周一——周五,上午6点等
谢谢你的反馈!
请填写表单重新开始一个新的聊天。
所有代理目前离线。
聊天时间:
周一-周五
早上8:30 - 6点
联系我们请填写这张表格,我们将通过电子邮件联系你。