使用LEADTOOLS文档库创建文档

文档库可以创建新的空文档。中可设置空文档主题是,寄往文档转换器,并像其他文档一样保存到缓存中。尽管它本身的作用很小,但是当用作虚拟文档的基础时,它是非常强大的。

为了说明这一点,假设您有两个扫描的PDF文档。一个包含奇数页,另一个包含原始扫描文档的偶数页。您现在可以创建一个新的虚拟文档,从现有文档中按正确顺序添加所有页面,然后在主题是,或将其发送到文档转换器完成。

想象另一种情况,在这种情况下,您想快速创建一个新的法律文档,其中包含PDF文档的标题和内容页表、两个传真图像(来自TIFF文件)、四个免责声明和内容页(来自Word DOCX文件)和一个AutoCAD绘图(来自DWG文件)。您希望能够在LEADTOOLS文档查看器中查看此文档。在虚拟文档出现之前,必须将所有这些源页物理连接到一个文件中(使用LEADTOOLS文档作者)和缓存。这样的操作需要时间,服务器必须跟踪何时删除不再需要的文件。

对于虚拟文档,所需要的只是创建虚拟文档、加载源文档和添加所需的页面。完成后,只需将此Document对象发送到查看器。无需采取进一步行动。新文档在磁盘上没有任何形式的物理表示。它只是将获取页面图像、SVG或文本的调用重定向到底层原始文档。

创建新文档

的实例来创建新文档CreateDocumentOptions并调用DocumentFactory。创建DocumentFactory。创建将返回一个新的空的非只读的LEADDocument对象。的文档。页面的值为空文档。IsReadOnly

添加和删除页面

假设virtualDocumentLEADDocument对象,并且sourceDocument1文件是通过调用获得的吗DocumentFactory。LoadFromUri一个多页的PDF文件。要添加第一页和第二页(页索引0和1),只需调用virtualDocument.Pages.AddPage (sourceDocument1.Pages [0])而且virtualDocument.Pages.AddPage (sourceDocument1.Pages [1]).现在的价值virtualDocument。页面将包含两个项目。

在内部,DocumentPage两个文档之间共享引用,不复制任何数据。的价值DocumentPage。文档仍将指向其原始所有者文档(sourceDocuement1).这意味着sourceDocument1必须活多久virtualDocument还活着。如果你检查virtualDocument。文档集合,你会发现它现在有一个项目:sourceDocument1.对原始文档中的源页面所做的任何更改都会立即反映在虚拟文档中。

DocumentPages收集来自LeadCollection不仅可以添加页面,还可以删除、替换和重新排序页面。如果你叫virtualDocument.Pages.Clear,集合现在为空,如果检查virtualDocument。文档集合,它也将是空的。这两份文件之间已经没有联系了sourceDocument1如有需要可处理掉。

LEADDocument。文档是只读集合,这意味着不能直接从其中添加或删除项。类型的项目LEADDocument)的添加和删除取决于添加或删除的页面。例如,如果从同一个源文档添加了两个页面,那么Documents集合只包含一个项,因为两个页面都来自同一个文档。现在假设您将一个多页TIFF文件加载到sourceDocument2并从这个文档中添加一页到virtualDocument(尽管它仍然包含来自的两页sourceDocument1).Documents集合现在将包含两项:sourceDocument1而且sourceDocument2

还可以将空页添加到虚拟文档Document.Pages.CreatePage用所需的尺寸,并将这些页面添加到virtualDocument。页面收集。的价值DocumentPage。文档virtualDocument在本例中,因为这是原始所有者文档。

查看器中的虚拟文档

主题是完全支持虚拟文档。设置文档时,它将订阅CollectionChanged事件的页面集合,如果在查看文档时添加或删除了页面,则将相应地更新视图、缩略图、书签和注释部分。尽管视图会自动跟踪所有更改,但最好还是调用主题是。BeginUpdate/documentviewer.endupdate当一次添加或删除多个页面以最小化闪烁和优化性能时。

查看器将自动合并所有子文档的书签。指向不存在页面(源文档中未添加到虚拟文档中的页面)的书签项将没有功能。同样,页面之间的链接也会被自动检查,任何指向不存在的页面的链接都不会起作用。

只适用于特定类型文档的功能将检查原始源文档类型。例如,如果认为SVG则属于兼容文档(如PDF或DOCX)的页面将被视为SVG,而属于不兼容文档(如TIFF或JPEG)的页面仍将被视为光栅图像。类似地,在使用客户端PDF渲染时,只有最初属于PDF文档的页面直接使用JavaScript从原始数据渲染,其他所有页面都使用SVG或光栅图像渲染。

虚拟文档和缓存

若要将虚拟文档保存到缓存中,请使用DocumentFactory。SaveToCache像往常一样,提供关于页面的信息(从文档。页面)和它们的所有者文档id(从LEADDocument。文档)储存在缓存中。

DocumentFactory。LoadFromCache时,工具箱将尝试自动加载重构虚拟文档所需的所有子文档,方法是调用DocumentFactory。LoadFromCache使用每个子文档的id。如果对任何文档执行此操作失败,则不加载属于该文档的页面,而是从虚拟文档中删除。

虚拟文档和处理

LEADDocument物品是一次性的处理方法在不再需要对象时必须调用。有两种使用源文档和虚拟文档的常见场景:

  1. 虚拟文档是所有源文档的唯一所有者。这是从缓存加载虚拟文档时的默认情况:所有子文档将自动加载为全新的LEADDocument对象。这些对象(默认情况下)只存在于文档虚拟文档的集合,在系统中没有其他地方。

  2. 源文档用于按需创建虚拟文档,可能从相同的源对象创建多个虚拟文档,并发送到另一个系统。这类似于LEADTOOLS Virtual Document Demo,后者动态地从源文档创建虚拟文档并将它们保存到缓存中。同一个源文档可以同时是多个虚拟文档的一部分。

在第一个场景中,最好设置的值virtualDocument。AutoDisposeDocuments真正的.这样,当virtualDocument。处理调用时,它将自动遍历所有子文档(如果有的话),并调用处理

在第二种场景中,最好设置的值virtualDocument。AutoDisposeDocuments.当virtualDocument。处理调用时,它将只从文档集合,而不调用dispose,因为这些子(源)文档可能是系统中另一个虚拟文档的一部分。调用处理当不再需要源文档时。

另请参阅

文档库的功能

文件查看器应用程序

使用LEADTOOLS文档库加载文档

文档工具箱和缓存

使用文档库上传

文献库坐标系统

使用文档库加载加密文件

使用文档库解析文本

使用文档库进行条码处理

在文档库中使用jQuery承诺

正在文档库中加载图像

文档页面转换

使用LEADTOOLS文档查看器

状态文档工作转换器

文档查看和转换编校

LEADTOOLS HTML5 JavaScript
188金宝搏的网址客服|支持|联系我们|知识产权的通知
©1991 - 2021领先的技术公司。保留所有权利。