← 返回所有博客文章

简介

将一个Word文档转换为一个PDF文件。查看这个PDF、注释并保存它。这个过程相当简单,不是吗?那如果原始文档为一个TIFF文件呢?将TIFF文件转化为一个PDF然后查看注释保存新文件一样容易吗?如果你要查看、注释和保存十个不同的文件类型呢?如果这些不同的文件都是光栅图像和矢量文档呢?如果你的工作要求你在一个应用程序的一个查看器控件中完成呢?这些通常的请求听起来并没有那么简单。只有既能处理通常文档类型(如PDF和DOC)还能处理TIFF、JPEG、SVG等类型的查看器才能完成。这个查看器既需要显示基于光栅的图像还要显示基于向量的文档,同时它还要能够转换两种完全不同的图像数据类型。对于最有经验的程序员,这都不是一项简单的任务。

LEADTOOLS Version19中的全新文档转换器和文档查看器不仅将在同一控件中查看和注释光栅及基于向量的文件格式变为可能,还将这一切变得容易。这些独特的框架不仅能满足需求,甚至超出了端到端企业级内容管理(ECM)、文档检索和文档标准化解决方案开发者的期望。使用短短几行代码,程序员就可以实现通常需要多年开发才能完成的文档转换和查看功能。

在下面的白皮书中,我们将进一步介绍文档转换器和文档查看器,以及如何在你的应用程序中使用它们。

 

文档转换器

文档转换器SDK自动使用LEADTOOLS光栅、SVG和OCR引擎的组合来转换图像和文档,最大化了准确性和速度。例如,SVG转换模式能以100%的准确率在向量或文档格式间转换,且不用添加OCR步骤。另一方面,如果转换器检测到了一个光栅图像输入文件如TIFF或JPEG,它会使用LEADTOOLS Advantage OCR 引擎提取文本然后将其转换为任何支持的文档格式。

转换器易于使用,只需选择一些偏好,转换设置,当然还有输入输出文件。一个基本的对话框就足够了,如LEADTOOLS文档转换器示例中包含的就可以:

clip_image002

一旦完成了所有参数设置,就可以启动转换器,创建作业,运行。

DocumentConverter converter = new DocumentConverter();
// 设置RasterCodecsDocumentFactory 使用它加载文件
DocumentFactory.RasterCodecsTemplate = this.RasterCodecsInstance;
// 设置OCR引擎和文档
Writerconverter.SetOcrEngineInstance(this.OcrEngineInstance, false);
converter.SetDocumentWriterInstance(this.DocumentWriterInstance);
// 为光栅图像类型设置预处理选项
converter.Preprocessor.Deskew = this.PreprocessingDeskew;
converter.Preprocessor.Invert = this.PreprocessingInvert;
converter.Preprocessor.Orient = this.PreprocessingOrient;
// 设置加载文档选项和缓存
var loadDocumentOptions = new LoadDocumentOptions();
loadDocumentOptions.UseCache = DocumentFactory.Cache != null;
converter.LoadDocumentOptions = loadDocumentOptions;
// 设置选项
converter.Options.EnableSvgConversion = this.EnableSvgConversion;
converter.Diagnostics.EnableTrace = this.EnableTrace;
// 创建一个作业
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);
// 运行作业
converter.Jobs.RunJob(job);

当在文档格式间转换时,SVG模式可以获得更快的速度,且不需要OCR准确率为100%。转换器可以控制具有多种字体、颜色、图像等的复杂文档。从下面的对比可以看出,左边的源Word文档包含所有这些特性,还有超链接和Unicode日语,所有的这些都能被准确的转化为PDF。

clip_image004

 

文档查看器

LEADTOOLS文档查看器是一个OEM-ready文档查看解决方案,可以创建健壮的功能完整的应用程序,此应用具有丰富的文本查看功能,包括文本搜索、注释、节省内存的分页、惯性滚动以及不限制放大的向量显示。它自动使用文档转换器将任何文档、向量或光栅图像文件规范化为SVG,这样,在一个应用程序中查看、搜索和注释所有的文件类型变为可能。

我们可以自定义文档查看器,它由五个组件组成,你可以在布局中禁用或启用它们,同时还能调整它们的位置。

1. 查看器

2. 缩略图

3. 书签

4. 注释

5. 用户界面菜单和命令

clip_image006

使用通用的容器(如HTML<div>,.NET面板)创建你的UI布局,然后将文档查看器组件添加到每一个容器中。

 

查看HTML5 / JavaScript中的文档

首先,在你的HTML中创建布局:

<!-- 视图 --><div id="view"></div>
<!-- 缩略图 --><div id="thumbnails"></div>

然后使用JavaScript初始化查看器和它的组件:

window.onload = function () {
   // 使用DIV元素创建文档查看器
  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);
 
   //加载一个PDF文档 
   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) {
      // 准确就绪,在查看器中设置
documentViewer.setDocument(document);
   });
   
   // 现在设置非必须的选项
 documentViewer.view.preferredItemType = lt.Documents.UI.DocumentViewerItemType.svg;
   documentViewer.commands.run(lt.Documents.UI.DocumentViewerCommands.interactivePanZoom);
};

clip_image008

查看.NET中的文档

针对你的.NET应用,可以遵循相同的步骤。你可以在设计模式下创建布局,也可以以编程方式添加对象。

// 创建应用程序的UI
var splitContainer = new SplitContainer { Dock = DockStyle.Fill };this.Controls.Add(splitContainer);
// 使用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 documentvar document = DocumentFactory.LoadFromUri(new Uri("http://demo.leadtools.com/images/pdf/leadtools.pdf"), 
  new Leadtools.Documents.LoadDocumentOptions { UseCache = false });
// 准备就绪,在查看器中设置
documentViewer.SetDocument(document);
// 现在设置非必须的选项
documentViewer.View.PreferredItemType = DocumentViewerItemType.Svg;
documentViewer.Commands.Run(DocumentViewerCommands.InteractivePanZoom);

clip_image010

 

总结

在一个应用程序中转换和查看数百个文档、向量和光栅图像文件类型只是LEADTOOLS诸多实际解决方案中的一个。其先进的文档查看器和转换器框架让创建动态的功能齐全的文档查看解决方案变为可能。

 

支持

关于其他产品的更多信息,请访问我们的官方网站

欢迎下载免费的全功能评估版SDK,全功能试用版中有这个例子的全部源代码。

同时欢迎您使用评估版期间的免费技术支持