创建文档LEADTOOLS文档库

文档库可以创建新的空文件。空的文件可以设置的主题是,发送到DocumentConverter像往常一样,保存到缓存。虽然这是本身很少使用,使用时很强大的文档作为一个虚拟的基础。

为了说明这一点,想象一个情景,在这个情景中你有两个扫描PDF文档。一个包含奇数页和其他包含甚至原始扫描文档的页面。您现在可以创建一个新的虚拟文档,添加所有的页面从现有文件以正确的顺序,然后把这个新PDF主题是,或将其发送DocumentConverter完成它。

想象另一种情况中,您想要快速创建一个新的法律文档,其中包含一个头从PDF文档和内容页表,两个传真图像(从TIFF文件),四个免责声明和内容页(多克斯从Word文件),和一个AutoCAD绘图(DWG文件中)。你希望能够把这个文档在LEADTOOLS文档查看器。虚拟文件之前,一个物理文件,其中包含所有这些来源页面必须生成的(使用DocumentWriter)和缓存。这个操作需要时间和文件的服务器必须跟踪为了不再需要时删除它。

与虚拟文件,所需要的就是创建虚拟文件,加载的源文件,并添加所需的页面。当完成时,只需把这个文档对象查看器。没有进一步的行动是必要的。新文档没有磁盘上的物理表示。它只是重定向页面调用获得图像,SVG或文本底层原始文档。

创建新文档

创建一个新文档,创建一个实例CreateDocumentOptions并调用DocumentFactory.CreateDocumentFactory.Create返回一个新的空,非只读的LEADDocument对象。的LEADDocument.Pages集合是空的和的值LEADDocument.IsReadOnly被设置为

如果文件已经存在于缓存中,调用DocumentFactory.CloneDocument创建一个克隆。

添加和删除页面

假设virtualDocumentLEADDocument前一节中创建的对象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),文档集将包含两个项目:sourceDocument1sourceDocument2

您还可以添加空白页通过调用一个虚拟的文档LEADDocument.Pages.CreatePage这个页面所需的大小和增加virtualDocument.Pages收集。的价值DocumentPage.DocumentvirtualDocument在这种情况下,因为这是原始所有者文档。

虚拟文件的查看器

主题是完全支持虚拟文件。当一个文档集,它将订阅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对象是一次性的处理方法必须调用当对象不再需要。

有两种常见的场景使用源和虚拟文件,如下:

  1. 虚拟文件是唯一的所有源文件的所有者。这是默认情况下从缓存中加载一个虚拟文件:所有的子文档将自动加载到崭新的LEADDocument对象。这些对象只存在(默认情况下)文档集合的虚拟文档和系统中其他地方。在这种情况下,最好的价值virtualDocument.AutoDisposeDocuments真正的。这样,当virtualDocument.Dispose被调用时,它会自动循环通过所有的子文档(如果有的话)和电话吗处理

  2. 源文档是用于创建虚拟文件需求(可能不止一个相同的源对象),并被发送到另一个系统。这种行为类似于LEADTOOLS虚拟文档演示创建虚拟动态文件从源文件并保存到缓存中。相同的源文档可以属于多个虚拟文件在同一时间。

在这种情况下,最好的价值virtualDocument.AutoDisposeDocuments。当virtualDocument.Dispose被调用时,它只会把孩子的文档吗文档收集没有调用处理。因为这些孩子(源)文件可能是另一个虚拟文件系统的一部分,用户应该叫处理在源文件后,他们不再需要。

另请参阅

文档库的功能

使用文档库LEADTOOLS加载

文档工具包和缓存

使用文档库上传

文档库坐标系统

使用文档库加载加密的文件

解析文本文档库

条形码处理文档库

文档工具包历史跟踪

文档页面转换

使用LEADTOOLS文档查看器

使用LEADTOOLS文档转换器

查看和转换编校文档

LEADTOOLS成像、医学和文档
188金宝搏的网址客服|支持|联系我们|知识产权的通知
©1991 - 2021领先的技术公司。保留所有权利。