←选择平台

LoadDocumentFromCache事件

总结

在从缓存加载子文档时由工厂调用。

语法
c#
VB
c++
公共事件EventHandler <ResolveDocumentEventArgs> LoadDocumentFromCache
公共事件LoadDocumentFromCache作为事件(ResolveDocumentEventArgs
公共事件EventHandler <ResolveDocumentEventArgs^ > ^ LoadDocumentFromCache
讲话

期间调用loaddocumentfromache事件LoadFromCache (LoadFromCacheOptions)如果正在加载的文档包含子文档。该事件为每个子文档触发一次,并允许应用程序自定义此行为。

事件数据
参数 类型 描述
发送方 对象 事件的来源
e ResolveDocumentEventArgs 事件数据

ResolveDocumentEventArgs包含以下成员:

输入:正在加载的源(所有者)文档。

Input:加载此子文档时使用的选项。处理程序可以修改此成员的属性(例如,replaceLoadFromCacheOptions。缓存使用不同的缓存)。

输出:加载的子文档。如果处理程序将此值保留为,则工厂将尝试使用中设置的选项加载文档LoadFromCacheOptions

例子

这个示例将从子文档创建一个文档,将其保存到缓存中,然后重新加载它。它将使用LoadDocumentFromCache事件手动加载子文档。

c#
VB
使用Leadtools;使用Leadtools.Codecs;使用Leadtools.Document.Writer;使用Leadtools.Document;使用Leadtools.Caching;使用Leadtools.Annotations.Engine;使用Leadtools.Ocr;使用Leadtools.Barcode;使用Leadtools.Document.Converter;公共无效LoadDocumentFromCache ()//我们正在使用的缓存FileCache cache =FileCache ();缓存。PolicySerializationMode = CacheSerializationMode.Json;缓存。DataSerializationMode = CacheSerializationMode.Json;缓存。缓存Directory =@“c: \ cache-dir”//要使用的文档id常量字符串virtualDocumentId =“虚拟”常量字符串childDocumentId1 =“child1”常量字符串childDocumentId2 =“child2”//创建一个新文档varcreateDocumentOptions =CreateDocumentOptions ();createDocumentOptions。Cache = Cache;createDocumentOptions。文档Id = virtualDocumentId;使用(LEADDocument document = DocumentFactory.Create(createDocumentOptions))文档。Name =“虚拟”调试。作为sert(virtualDocumentId == document.DocumentId);//应该有0页和文档Debug.Assert (document.Pages。Count == 0);Debug.Assert (document.Documents。Count == 0);//从PDF文件中添加第1页和第2页varloadDocumentOptions =LoadDocumentOptions ();loadDocumentOptions。Cache = Cache;loadDocumentOptions。文档Id = childDocumentId1;LEADDocument childDocument = DocumentFactory。LoadFromFile (@“C: \ LEADTOOLS21 \资源\ \ leadtools.pdf图像”, loadDocumentOptions);//设置名称childDocument。Name =“Child1”childDocument.SaveToCache ();//现在添加页面document.Pages.Add (childDocument.Pages [0]);document.Pages.Add (childDocument.Pages [1]);//添加一个空页面DocumentPage DocumentPage = document.Pages.CreatePage(leadsize . create (LEADDocument. create)UnitsPerInch * 8.5, LEADDocument。UnitsPerInch * 11), 300);document.Pages.Add (documentPage);//从TIF文件中添加第3页和第4页loadDocumentOptions =LoadDocumentOptions ();loadDocumentOptions。Cache = Cache;loadDocumentOptions。文档Id = childDocumentId2;childDocument = DocumentFactory。LoadFromFile (@“C: \ LEADTOOLS21 \资源\图片\ ocr1气管无名动脉瘘管的- 4.”, loadDocumentOptions);//设置名称childDocument。Name =“Child2”//也将它保存到缓存中childDocument.SaveToCache ();//现在添加页面document.Pages.Add (childDocument.Pages [2]);document.Pages.Add (childDocument.Pages [3]);// 5页,2份文件(PDF和TIF)Debug.Assert (document.Pages。Count == 5);Debug.Assert (document.Documents。Count == 2);//当父文档被处理时,告诉父文档处理所有子文档文档。AutoDisposeDocuments =真正的//现在保存,父文档到缓存中document.SaveToCache ();//并告诉所有文档不要从缓存中删除自己文档。AutoDeleteFromCache =//钩子到DocumentFactoryLoadDocumentFromCache事件to log the documents being loadedEventHandler loadDocumentFromCacheHandler = (sender, e) =>控制台。WriteLine ("从缓存加载子文档:");控制台。WriteLine ($" Source documententid:{e.s ourcedocument . documententid}");控制台。WriteLine ($"加载的documententid {e. loadfromcacheoptions . documententid}");//源文档必须是虚拟的virtualDocumentId调试。作为sert(virtualDocumentId == e.SourceDocument.DocumentId);//正在加载的子文档为childDocumentId1或childDocumentId2调试。作为sert(childDocumentId1 == e.LoadFromCacheOptions.DocumentId || childDocumentId2 == e.LoadFromCacheOptions.DocumentId);//如果这是childDocumentId2,我们将自己加载它,并更改它的名称以表明它已被我们加载如果(childdocumententid2 == e. loadfromcacheoptions . documententid)//如果需要修改e.LoadFromCacheOptions,或者创建一个新实例并使用它e.Document = DocumentFactory.LoadFromCache(e.LoadFromCacheOptions);e.Document.Name =“LoadedByEvent”//否则,让工厂正常加载};DocumentFactory。loaddocumentfromcache++ = loadDocumentFromCacheHandler;//现在,从缓存中加载文档varloadFromCacheOptions =LoadFromCacheOptions ();loadFromCacheOptions。Cache = Cache;loadFromCacheOptions。文档Id = virtualDocumentId;使用(LEADDocument document = DocumentFactory.LoadFromCache(loadFromCacheOptions))控制台。WriteLine ($"加载的虚拟文档id{文档。DocumentId}名称:{文档。名称}”);Debug.Assert(文档。名字= =“虚拟”);// 5页,2份文件(PDF和TIF)Debug.Assert (document.Pages。Count == 5);Debug.Assert (document.Documents。Count == 2);//显示子文档名称,它应该是Child1,然后是LoadedByEventLEADDocument childDocument = document.Documents[0];控制台。WriteLine ($"第一个子文档id{childDocument。DocumentId}名称:{childDocument。名称}”);Debug.Assert (childDocument。名字= =“Child1”);childDocument = document.Documents[1];控制台。WriteLine ($"第二个子文档id{childDocument。DocumentId}名称:{childDocument。名称}”);Debug.Assert (childDocument。名字= =“LoadedByEvent”);DocumentFactory。loadDocumentFromCacheHandler -= loadDocumentFromCacheHandler;//完成,删除缓存中的所有文档保龄球isDeleted = DocumentFactory。DeleteFromCache (LoadFromCacheOptions {Cache = Cache, DocumentId = childDocumentId1});Debug.Assert (isDeleted);isDeleted = DocumentFactory。DeleteFromCache (LoadFromCacheOptions {Cache = Cache, documententid = childdocumententid2});Debug.Assert (isDeleted);isDeleted = DocumentFactory。DeleteFromCache (LoadFromCacheOptions {Cache = Cache, documententid = virtualdocumententid});Debug.Assert (isDeleted);
进口Leadtools进口Leadtools。编解码器进口Leadtools.Document.Writer进口Leadtools.Svg进口Leadtools。文档进口Leadtools。缓存进口Leadtools.Annotations.Engine进口Leadtools。条形码进口Leadtools。光学字符识别进口LeadtoolsDocumentExamples.LeadtoolsExamples.Common进口Leadtools.Document.Converter公共LoadDocumentFromCacheTest ()“我们正在使用的缓存昏暗的缓存作为FileCache ()缓存。PolicySerializationMode = cachesserializationmode。Json缓存。DataSerializationMode = cacheserialize mode。Json缓存。缓存Directory =“c: \ cache-dir”要使用的文档id常量virtualDocumentId作为字符串“虚拟”常量childDocumentId1作为字符串“child1”常量childDocumentId2作为字符串“child2”创建一个新文档昏暗的createDocumentOptions作为CreateDocumentOptions ()createDocumentOptions。Cache = CachecreateDocumentOptions。文档Id = virtualDocumentId使用文档作为LEADDocument = DocumentFactory.Create(createDocumentOptions)文档。Name =“虚拟”调试。作为sert(virtualDocumentId = document.DocumentId)应该有0页和文件Debug.Assert (document.Pages。= 0)Debug.Assert (document.Documents。= 0)从PDF文件中添加第1页和第2页昏暗的loadDocumentOptions作为LoadDocumentOptions ()loadDocumentOptions。Cache = CacheloadDocumentOptions。文档Id = childDocumentId1昏暗的childDocument作为LEADDocument = DocumentFactory。LoadFromFile (“C: \ LEADTOOLS21 \资源\ \ leadtools.pdf图像”loadDocumentOptions)设置名字childDocument。Name =“Child1”childDocument.SaveToCache ()“现在添加页面document.Pages.Add (childDocument.Pages (0))document.Pages.Add (childDocument.Pages (1))添加一个空白页面昏暗的documentPage作为DocumentPage = document.Pages.CreatePage(leadsize . create (LEADDocument。UnitsPerInch * 8.5, LEADDocument。* 1), 300)document.Pages.Add (documentPage)从TIF文件中添加第3页和第4页loadDocumentOptions =LoadDocumentOptions ()loadDocumentOptions。Cache = CacheloadDocumentOptions。文档Id = childDocumentId2childDocument = DocumentFactory。LoadFromFile (“C: \ LEADTOOLS21 \资源\图片\ ocr1气管无名动脉瘘管的- 4.”loadDocumentOptions)设置名字childDocument。Name =“Child2”’同时将它保存到缓存中childDocument.SaveToCache ()“现在添加页面document.Pages.Add (childDocument.Pages (2))document.Pages.Add (childDocument.Pages (3))’应该有5页和2个文档(PDF和TIF)Debug.Assert (document.Pages。= 5)Debug.Assert (document.Documents。= 2)'告诉父文档在父文档被销毁时销毁所有子文档文档。AutoDisposeDocuments =真正的'现在保存,父文档到缓存document.SaveToCache ()“并告诉所有文档不要从缓存中删除自己文档。AutoDeleteFromCache =结束使用'挂钩到DocumentFactory。LoadDocumentFromCache事件to log the documents being loaded昏暗的loadDocumentFromCacheHandler作为EventHandler(ResolveDocumentEventArgs) =(发送方作为对象e作为ResolveDocumentEventArgs)控制台。WriteLine ("从缓存加载子文档:"控制台。WriteLine ($" Source documententid:{e.s ourcedocument . documententid}"控制台。WriteLine ($"加载的documententid {e. loadfromcacheoptions . documententid}"源文档必须是虚拟的virtualDocumentId调试。作为sert(virtualDocumentId = e.SourceDocument.DocumentId)正在加载的子文档是childDocumentId1或childdocumententid2调试。作为sert(childDocumentId1 = e.LoadFromCacheOptions.DocumentIdOrElsechilddocumententid2 = e.d ofromcacheoptions . documententid)如果这是childDocumentId2,我们将自己加载它,并更改它的名称,以表明它已被我们加载如果childDocumentId2 = e. loadfromcacheoptions . documententid然后'修改e.LoadFromCacheOptions如果需要,或创建一个新实例并使用它e.Document = DocumentFactory.LoadFromCache(e.LoadFromCacheOptions)e.Document.Name =“LoadedByEvent”结束如果’否则,让工厂正常装车结束AddHandlerDocumentFactory。LoadDocumentFromCache, loadDocumentFromCacheHandler’现在,从缓存中加载文档昏暗的loadFromCacheOptions作为LoadFromCacheOptions ()loadFromCacheOptions。Cache = CacheloadFromCacheOptions。文档Id = virtualDocumentId使用文档作为LEADDocument = DocumentFactory.LoadFromCache(loadFromCacheOptions)控制台。WriteLine ($"加载的虚拟文档id{文档。DocumentId}名称:{文档。名称}”Debug.Assert(文档。Name =“虚拟”’应该有5页和2个文档(PDF和TIF)Debug.Assert (document.Pages。= 5)Debug.Assert (document.Documents。= 2)’显示子文档名称,它应该是Child1,然后是LoadedByEvent昏暗的childDocument作为LEADDocument = document.Documents(0)控制台。WriteLine ($"第一个子文档id{childDocument。DocumentId}名称:{childDocument。名称}”Debug.Assert (childDocument。Name =“Child1”childDocument = document.Documents(1)控制台。WriteLine ($"第二个子文档id{childDocument。DocumentId}名称:{childDocument。名称}”Debug.Assert (childDocument。Name =“LoadedByEvent”结束使用RemoveHandlerDocumentFactory。LoadDocumentFromCache, loadDocumentFromCacheHandler完成,删除缓存中的所有文档昏暗的isDeleted作为布尔= DocumentFactory。DeleteFromCache (LoadFromCacheOptions{.Cache = Cache, . documententid = childdocumententid1})Debug.Assert (isDeleted)isDeleted = DocumentFactory。DeleteFromCache (LoadFromCacheOptions{.Cache = Cache, . documententid = childdocumententid2})Debug.Assert (isDeleted)isDeleted = DocumentFactory。DeleteFromCache (LoadFromCacheOptions{.Cache = Cache, . documententid = virtualdocumententid})Debug.Assert (isDeleted)结束
需求
目标平台
Leadtools。文档作为sembly
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领德科技有限公司版权所有。