65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 LEADTOOLS 转换和查看文档

starIconstarIconstarIconstarIconemptyStarIcon

4.00/5 (1投票)

2014年12月12日

CPOL

4分钟阅读

viewsIcon

25590

LEADTOOLS 19 版本中新推出的文档转换器和文档查看器不仅能够在一个控件中查看和注释基于光栅和矢量格式的文件,而且操作简便。

引言

将 Word 文档转换为 PDF 文件,查看 PDF,进行注释,然后保存。这个过程听起来很简单,对吧?如果原始文档是 TIFF 文件呢?将 TIFF 转换为 PDF,然后查看、注释并保存新文件是否同样容易?如果您有十种不同的文件类型需要查看、注释和保存,而且这些文件既有光栅图像又有矢量文档怎么办?而且,您的工作要求规定只能在一个应用程序中使用一个查看器控件来完成此任务怎么办?这个常见的需求听起来就不那么简单了。只有能够注释的查看器,不仅支持 PDF 和 DOC 等典型文档文件,还支持 TIFF、JPEG、SVG 等格式,才能胜任这项工作。这个查看器控件必须能够显示基于光栅的图像和基于矢量文档,并且必须能够在这两种截然不同的图像数据类型之间进行转换。即使对于经验最丰富的程序员来说,做到这一点也并非易事。

LEADTOOLS 19 版本中新推出的 文档转换器文档查看器 不仅能够在一个控件中查看和注释基于光栅和矢量格式的文件,而且操作简便。这些独特的框架将满足并超越开发人员在创建端到端企业内容管理 (ECM)、文档检索和文档规范化解决方案时的需求。只需几行代码,程序员就可以实现通常需要数年才能开发的文档转换和查看功能。

在下面的白皮书中,我们将仔细研究文档转换器和文档查看器,以及如何将它们集成到您的应用程序中。

文档转换器

文档转换器 SDK 自动结合使用 LEADTOOLS 的光栅、SVG 和 OCR 引擎,以最佳组合的准确性和速度来转换图像和文档。例如,SVG 转换模式可以在任何矢量或文档格式之间以 100% 的准确率进行转换,而无需添加 OCR 的额外步骤。另一方面,如果转换器检测到 TIFF 或 JPEG 等光栅图像输入文件,它将使用 LEADTOOLS Advantage OCR 引擎提取文本,然后将其转换为任何支持的文档格式。

转换器使用起来非常简单,只需要选择一些首选项、转换设置,当然还有输入和输出文件。基本的对话框,例如 LEADTOOLS 文档转换器演示版中包含的对话框,就足够了。

收集完所有首选项和设置后,将其集成到转换器中,创建一个作业并运行。

DocumentConverter converter = new DocumentConverter();

// Set the RasterCodecs used by the DocumentFactory to load files
DocumentFactory.RasterCodecsTemplate = this.RasterCodecsInstance;

// Set the OCR engine and Document Writer
converter.SetOcrEngineInstance(this.OcrEngineInstance, false);
converter.SetDocumentWriterInstance(this.DocumentWriterInstance);

// Set pre-processing options for raster image file types
converter.Preprocessor.Deskew = this.PreprocessingDeskew;
converter.Preprocessor.Invert = this.PreprocessingInvert;
converter.Preprocessor.Orient = this.PreprocessingOrient;

// Setup the load document options and caching
var loadDocumentOptions = new LoadDocumentOptions();
loadDocumentOptions.UseCache = DocumentFactory.Cache != null;
converter.LoadDocumentOptions = loadDocumentOptions;

// Set options
converter.Options.EnableSvgConversion = this.EnableSvgConversion;
converter.Diagnostics.EnableTrace = this.EnableTrace;

// Create a job
var jobData = new DocumentConverterJobData
{
   InputDocumentFileName = document == null ? this.InputDocumentFileName : null,
   Document = document,
   InputDocumentFirstPageNumber = this.InputFirstPage,
   InputDocumentLastPageNumber = this.InputLastPage,
   DocumentFormat = this.DocumentFormat,
   OutputDocumentFileName = this.OutputDocumentFileName,
   AnnotationsMode = this.OutputAnnotationsMode,
   JobName = this.JobName,
   UserData = null,
};
var job = converter.Jobs.CreateJob(jobData);

// Run the job
converter.Jobs.RunJob(job);

在文档格式之间进行转换时,SVG 模式可以在无需 OCR 的情况下实现更快的速度和 100% 的准确率。转换器能够处理具有不同字体、颜色、图像等的复杂文档。正如您从下面的比较中可以看到,我们左侧的源 Word 文档包含所有这些特征,再加上一些超链接和 Unicode 日文文本,所有这些都被准确地转换为 PDF。

文档查看器

LEADTOOLS 文档查看器是一款面向 OEM 的文档查看解决方案,可用于创建功能强大、特性丰富的应用程序,提供丰富的文档查看功能,包括可搜索文本、注释、内存高效分页、惯性滚动以及无限缩放的矢量显示。在后台,它会在需要时自动使用文档转换器,将任何文档、矢量或光栅图像文件规范化为 SVG,从而可以在单个应用程序中查看、搜索和注释所有文件类型。

文档查看器是完全可定制的,由五个组件组成,您可以启用或禁用它们,并将它们放置在布局的任何位置。

  1. 查看器
  2. 缩略图
  3. 书签
  4. 注解
  5. 用户界面菜单和命令

只需使用通用容器(例如 HTML <div>、.NET Panel)建立您的 UI 布局,然后根据需要将文档查看器组件添加到每个容器中。

在 HTML5 / JavaScript 中查看文档

首先,在您的 HTML 中创建布局

<!-- View -->
<div id="view"></div>
<!-- Thumbnails -->
<div id="thumbnails"></div>

然后使用 JavaScript 初始化查看器及其组件

window.onload = function () {
   // Create the document viewer using the DIV elements
   var createOptions = new lt.Documents.UI.DocumentViewerCreateOptions();
   createOptions.viewContainer = document.getElementById("view");
   createOptions.thumbnailsContainer = document.getElementById("thumbnails");
   var documentViewer = lt.Documents.UI.DocumentViewerFactory.createDocumentViewer(createOptions);

   // Load a PDF document
   var factory = new lt.Documents.DocumentFactory();
   var loadDocumentCommand = lt.Documents.LoadDocumentCommand.create(factory, 
      "http://demo.leadtools.com/images/pdf/leadtools.pdf");
   var prom = loadDocumentCommand.run().done(function (document) {
      // Ready, set in the viewer
      documentViewer.setDocument(document);
   });
   
   // Now set some options, not required
   documentViewer.view.preferredItemType = lt.Documents.UI.DocumentViewerItemType.svg;
   documentViewer.commands.run(lt.Documents.UI.DocumentViewerCommands.interactivePanZoom);
};

在 .NET 中查看文档

对于您的 .NET 应用程序,您可以遵循相同的过程。可以在设计模式下创建布局,也可以以编程方式添加对象。

// Create the UI of the application
var splitContainer = new SplitContainer { Dock = DockStyle.Fill };
this.Controls.Add(splitContainer);

// Create the document viewer using panels of a System.Windows.Forms.SplitterPanel
var createOptions = new Leadtools.Documents.UI.DocumentViewerCreateOptions();
createOptions.ViewContainer = splitContainer.Panel2;
createOptions.ThumbnailsContainer = splitContainer.Panel1;
var documentViewer = DocumentViewerFactory.CreateDocumentViewer(createOptions);

// Load a PDF document
var document = DocumentFactory.LoadFromUri(new Uri("http://demo.leadtools.com/images/pdf/leadtools.pdf"), 
  new Leadtools.Documents.LoadDocumentOptions { UseCache = false });

// Ready, set in the viewer
documentViewer.SetDocument(document);

// Now set some options, not required
documentViewer.View.PreferredItemType = DocumentViewerItemType.Svg;
documentViewer.Commands.Run(DocumentViewerCommands.InteractivePanZoom);

结论

在单个应用程序中使用单个查看器控件来转换和查看数百种文档、矢量和光栅图像文件类型,这只是您可以使用 LEADTOOLS 解决的众多实际问题之一。其最先进的文档查看器和文档转换器框架使得创建动态且功能齐全的文档查看解决方案成为可能。

下载完整的文档转换器和文档查看器示例

您可以下载包含上述功能的完整功能演示。要运行此示例,您需要以下条件:

  • LEADTOOLS 免费 60 天试用版
  • Visual Studio 2008 或更高版本
  • 浏览至 LEADTOOLS 示例文件夹(例如,C:\LEADTOOLS 19\Examples\),您可以在其中找到此示例以及 LEADTOOLS 中许多其他技术的示例项目。

支持

需要帮助来上手这个示例吗?联系我们的支持团队以获得免费技术支持!有关定价或许可问题,您可以联系我们的销售团队(sales@leadtools.com)或致电 704-332-5532。

© . All rights reserved.