在此主题▼< / div >< div id ="inThisTopicDialog" class="hide">

DocumentStructure对象

总结< / div >

管理文档的结构。

语法< / div >< div id ="mainSourceContainerSyntax">
打印稿< / div >
JavaScript< / div >< / div >
函数lt.Document.DocumentStructure
lt.Document.DocumentStructure ()
讲话< / div >

DocumentStructure管理文档的结构。这包括表示内容表的书签。可以通过结构的属性LEADDocument

并非所有文档类型都包含对文档结构的支持。对于这些类型的文档(例如TIFF文件或Text文档),的值IsStructureSupported文档结构而不应使用。本节其余的讨论与何时相关IsStructureSupported真正的

当结构得到支持时(例如,在PDF文档中),的值IsStructureSupported真正的而且结构是可使用的有效对象。

加载文档结构可能需要一些时间。因此,当一个新的LEADDocument从磁盘或URL文档创建。这样做是为了尽可能快地加载文档,而不是让用户在应用程序中不需要书签或目录时等待。

要解析文档中的书签和目录,请使用解析的值ParseBookmarks真正的(默认值)。方法之后通常可以调用此方法一次LEADDocument加载。的IsParsed属性可用于检查结构是否已解析。

如果解析是不叫,还是值ParseBookmarks,然后书签是一个空列表。

解析被称为,ParseBookmarks真正的(默认值)书签列表将更新原始文档中的所有书签和目录项。然后,如果需要,您可以阅读和修改这些书签。的值ParseBookmarks被设置为,然后解析不会尝试解析文档中的书签。

解析也将解析文档中的任何链接,如果值ParsePageLinks真正的(默认值)。这些链接可以通过DocumentPage。GetLinks方法。的值ParsePageLinks被设置为,然后解析不会尝试解析在页面中找到的链接。

设置ParseBookmarksParsePageLinks可以帮助提高速度解析方法,如果用户对其中一个或另一个不感兴趣。

例子< / div >

这个例子展示了如何解析PDF文档的结构(书签)。

从中的例子开始LEADDocument并将示例函数调用替换为下面的函数。

Structure.ts< / div >
DocumentHelper.ts< / div >
Structure.js< / div >
DocumentHelper.js< / div >
Structure.html< / div >< / div >< div id ="GenericContainerEntry5349" class="GenericContainerEntry">
进口{documententhelper}从“. . / . . /工具/ DocumentHelper”出口LEADDocument_StructureExample {私人艾尔:HTMLElement;公共构造函数() {lt.RasterSupport.setLicenseUri (“https://demo.leadtools.com/licenses/v200/LEADTOOLSEVAL.txt”“EVAL”);DocumentHelper.initFactory ();公共运行(buttonID:字符串){.el = . getelementbyid (buttonID);.el。onclick =.loadDocument;loadDocument = () => {常量url =“https://demo.leadtools.com/images/pdf/leadtools.pdf”DocumentHelper.log (“加载文件……”);lt.Document.DocumentFactory.loadFromUri (url,.done((doc: lt.Document.LEADDocument) => {DocumentHelper.log (“完成。显示结构……”);如果(! doc.isStructureSupported) {//此文档不支持内容表或链接DocumentHelper.log (“结构不支持”);返回如果(doc.structure.isParsed) {/ /向他们展示.showBookmarks (doc.structure.bookmarks);其他的//我们支持它,但我们还没有解析它doc.structure.parse ().done ((doc) = > {DocumentHelper.log ("文档结构已成功解析");.showBookmarks (doc.structure.bookmarks);})fail (DocumentHelper.showServiceError);})fail (DocumentHelper.showServiceError);showBookmarks = (bookmarks: lt.Document.DocumentBookmark[]) => {常量ul =.makeBookmarkList(书签);.el.parentNode.appendChild (ul);makeBookmarkList = (bookmarks: lt.Document.DocumentBookmark[]) => {如果(bookmarks && marks.length) {常量ul = document.createElement (“ul”);(设I = 0;我< bookmarks.length;我+ +){常量书签=书签(我);常量李= document.createElement (“李”);常量跨度= document.createElement (“跨越”);跨度。innerHTML =书签。标题+“(页面”+ bookmark.target.pageNumber +“)”li.appendChild(跨度);如果(bookmark.children.length)li.appendChild (.makeBookmarkList (bookmark.children));ul.appendChild(李);返回ul;返回
出口DocumentHelper {静态showServiceError = (jqXHR, statusText, errorthrow) => {alert ("从服务返回错误。详情请参见控制台。”);常量serviceError = lt.Document.ServiceError。parseError (jqXHR statusText errorThrown);console.error (serviceError);静态日志=(信息:字符串、数据?:任何)= > {常量outputElement = . getelementbyid (“输出”);如果(outputElement) {常量时间= (日期()).toLocaleTimeString ();常量textElement = document.createElement (“p”);textElement。innerHTML = (outputElement。child delementcount + 1)“(”+时间+“:”+消息;outputElement。方法(textElement outputElement.firstChild);如果数据(!)console.log(消息);其他的console.log(消息、数据);静态initFactory = () => {//要与DocumentsService通信,它必须正在运行!//修改这些参数以匹配服务的路径。lt.Document.DocumentFactory.serviceHost =“http://localhost: 40000”lt.Document.DocumentFactory.servicePath =""lt.Document.DocumentFactory.serviceApiPath =“api”
进口{documententhelper}从“. . / . . /工具/ DocumentHelper”出口LEADDocument_StructureExample {埃尔;构造函数(){lt.RasterSupport.setLicenseUri (“https://demo.leadtools.com/licenses/v200/LEADTOOLSEVAL.txt”“EVAL”);DocumentHelper.initFactory ();运行(buttonID) {.el = . getelementbyid (buttonID);.el。onclick =.loadDocument;loadDocument = () => {常量url =“https://demo.leadtools.com/images/pdf/leadtools.pdf”DocumentHelper.log (“加载文件……”);lt.Document.DocumentFactory.loadFromUri (url,.done ((doc) = > {DocumentHelper.log (“完成。显示结构……”);如果(! doc.isStructureSupported) {//此文档不支持内容表或链接DocumentHelper.log (“结构不支持”);返回如果(doc.structure.isParsed) {/ /向他们展示.showBookmarks (doc.structure.bookmarks);其他的//我们支持它,但我们还没有解析它doc.structure.parse ().done ((doc) = > {DocumentHelper.log ("文档结构已成功解析");.showBookmarks (doc.structure.bookmarks);})fail (DocumentHelper.showServiceError);})fail (DocumentHelper.showServiceError);showBookmarks = (bookmarks) => {常量ul =.makeBookmarkList(书签);.el.parentNode.appendChild (ul);makeBookmarkList =(书签)=> {如果(bookmarks && marks.length) {常量ul = document.createElement (“ul”);(设I = 0;我< bookmarks.length;我+ +){常量书签=书签(我);常量李= document.createElement (“李”);常量跨度= document.createElement (“跨越”);跨度。innerHTML =书签。标题+“(页面”+ bookmark.target.pageNumber +“)”li.appendChild(跨度);如果(bookmark.children.length)li.appendChild (.makeBookmarkList (bookmark.children));ul.appendChild(李);返回ul;返回
出口DocumentHelper {静态showServiceError = (jqXHR, statusText, errorthrow) => {alert ("从服务返回错误。详情请参见控制台。”);常量serviceError = lt.Document.ServiceError。parseError (jqXHR statusText errorThrown);console.error (serviceError);静态日志= (message, data) => {常量outputElement = . getelementbyid (“输出”);如果(outputElement) {常量时间= (日期()).toLocaleTimeString ();常量textElement = document.createElement (“p”);textElement。innerHTML = (outputElement。child delementcount + 1)“(”+时间+“:”+消息;outputElement。方法(textElement outputElement.firstChild);如果数据(!)console.log(消息);其他的console.log(消息、数据);静态initFactory = () => {//要与DocumentsService通信,它必须正在运行!//修改这些参数以匹配服务的路径。lt.Document.DocumentFactory.serviceHost =“http://localhost: 40000”lt.Document.DocumentFactory.servicePath =""lt.Document.DocumentFactory.serviceApiPath =“api”
<!doctype html >< html lang =“en”>文档示例|结构




< >头< script src =“https://code.jquery.com/jquery-2.2.4.min.js”诚信=“sha256-BbhdlvQf / xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44 = "crossorigin =“匿名”> < /脚本>< script src =“. . / . . / LT / Leadtools.js”> < /脚本>< script src =“. . / . . / LT / Leadtools.Controls.js”> < /脚本>< script src =“. . / . . / LT / Leadtools.Annotations.Engine.js”> < /脚本>< script src =“. . / . . / LT / Leadtools.Annotations.Designers.js”> < /脚本>< script src =“. . / . . / LT / Leadtools.Annotations.Rendering.Javascript.js”> < /脚本>< script src =“. . / . . / LT / Leadtools.Annotations.Automation.js”> < /脚本>< script src =“. . / . . / LT / Leadtools.ImageProcessing.Main.js”> < /脚本>< script src =“. . / . . / LT / Leadtools.ImageProcessing.Color.js”> < /脚本>< script src =“. . / . . / LT / Leadtools.ImageProcessing.Core.js”> < /脚本>< script src =“. . / . . / LT / Leadtools.ImageProcessing.Effects.js”> < /脚本>< script src =“. . / . . / LT / Leadtools.Document.js”> < /脚本>< script src =“. . / . . / LT / Leadtools.Document.Viewer.js”> < /脚本>< link rel =“样式表”类型=“文本/ css”href =“. . / . . / css / examples.css”><!——所有的演示文件被打包并附加到窗口——>< script src =“. . / . . / bundle.js”类型=“text / javascript”> < /脚本>> < /头身体< >< div ><按钮类型=“按钮”id =“exampleButton”> > < /按钮运行示例< / div >< div id =“输出”> < / div >< div >< img id =“img”/>< / div >身体< / >< >脚本窗口。Onload = () => {常量示例=window.examples.LEADDocument.Structure ();example.run (“exampleButton”);};> < /脚本< / html >
需求< / div >目标平台
帮助21.0.2021.7.2版本< / div ><!--BEGIN Copyright notice--> 188金宝搏的网址客服|支持|联系我们|知识产权的通知
©1991 - 2021领先的技术公司。保留所有权利。<!--END Copyright notice-->
Leadtools。文档Assembly< / div >