学习GroupDocs.Viewer的简单实践

GroupDocsGroupDocs.Viewer
placeholder image
admin 发布于:2025-03-27 17:32:43
阅读:loading

前面在摸索了Aspose For Java的全量产品组件共计23款,闲来无事偶然又发现了在GroupDocs方向又存在一些产品,这些产品基本都是取自于一个又一个的组件,取自所有组件中的一个方向进行汇总,组成一个统一的产品包。本次摸索学习GroupDocs.Redaction产品,经过一些持续的分析和摸索,结合使用反射的形式来调用,也就是说在API的使用前进行一次特殊的代码注册,即可实现授权,全程不需要License之类的xml,或是文档无水印、或是文档页数限制、或是获取内容无限制,等等。

特别说明:只为单纯的学习摸索与自我突破,商业软件请勿直接使用于生产环境(购买商业授权)

1.基本介绍

本次实践的是GroupDocs.Viewer for Java的24.12版本(当前最新版本),使用 Java API 渲染和显示文档,强大的查看器 API,可通过多种配置选项将 180 多种文档格式呈现为 PDF、HTML 和图像。GroupDocs.Viewer for Java 是一个专为 Java 开发者设计的文档查看器库,允许将多种文档格式渲染为可在 Web 应用程序中查看的格式。这种库的主要作用是提供一个简便的方式来展示文档内容,而不必依赖于用户的设备是否安装了相关软件。用于在 Java 应用程序中呈现、显示、转换文档、幻灯片、图表和许多其他文档类型的 API。

(1)高效可靠地查看文档,借助 GroupDocs.Viewer API,您可以使用灵活而强大的选项将任何支持格式的文档高效呈现为 HTML、JPEG、PNG 和 PDF,同时保持内容和文档结构的完整性。 GroupDocs.Viewer 适用于 Windows 和 Linux 平台;

(2)支持最流行的文件和文档格式,我们支持渲染 180 多种最流行的文件和文档格式,包括 Word、Excel、PDF、PowerPoint、OpenDocument 格式系列、档案、光栅和矢量图像、电子书、编程语言和标记以及许多其他文件类型,包括加密的文件类型受密码保护的文件;

(3)可定制的输出,GroupDocs.Viewer 不仅允许渲染文档,还可以控制渲染的准确方式、文档的哪些部分应该渲染或现在渲染、如何渲染,以及对渲染的输出应用不同的转换;

(4)Spring 框架的 Web UI,我们为 Spring 框架提供了一个开源 UI 包,可以在几分钟内将其添加到您的项目中。 Viewer.UI 包包含一个基于 Angular 的 Web UI,并提供了一组有用的 API 和数据存储提供程序;

总的来说,GroupDocs.Viewer for Java 是一个非常实用的工具,提供了直观的 API,开发者可以轻松地将其集成到 Java 应用程序中。由于它是一个跨平台库,开发者可以在多种操作系统上运行和部署应用,是一个强大的文档内容预览的解决方案。

(1)支持的文档格式

A.Microsoft Office、OpenDocument 和文本格式

    便携式: PDF

    Word: DOC, DOCX, DOCM, DOT, DOTX, DOTM, RTF, TXT

    Excel: XLS, XLSX, XLSM, XLSB, XLTM, XLT, XLTM, XLTX

    PowerPoint: PPT, PPTX, PPS, PPSX, PPSM, POT, POTM, POTX, PPTM

    Project: MPP, MPT, MPX

    Outlook: MSG, EML, EMLX, PST, OST

    OneNote: ONE

    OpenDocument: ODT, OTT, ODS, ODP, OTP, OTS, ODG

    Fixed Page Layout: PDF, TEX, XPS, OXPS

    e-Books: EPUB, MOBI, DjVu

    Delimiter-Separated Values: CSV, TSV

B.图像、图形和图表

    光栅图像: BMP, GIF, JPG, PNG, TIFF, WebP, DNG, DIB, Jpeg2000 family

    Windows Icon: ICO

    Scalable Vector Graphics: SVG, CDR, CMX, IGS, SVGZ

    Adobe Photoshop: PSD, PSB

    Stereo Lithography (3D Printing): STL

    Medical Imaging: DICOM

    Plotter Documents: PLT, HPG

    Autodesk Design Web Formats: DWF, DWG

    AutoCAD Drawing: DWT, IFC, STL, CF2

C.其他

    网络: HTML, MHT, MHTML, XML

    Metafile: WMF, EMF, CGM, EMZ, WMZ

    Visio: VSD, VDX, VSS, VSSX, VSX, VST, VSTX, VTX, VSDX, VDW, VSTM, VSSM, VSDM

    Project: MPP, MPT, MPX

    PostScript: PS, EPS

    档案: ZIP, TAR, BZ2, GZ, RAR, RAR5

    其他: VCF, VCARD, NUMBERS, NSF, OBJ

    C/C++/C# Files: C, CC, C# , CPP, CXX, CS, H, HH, M, MM

    Java/JavaScript Files: JAVA, JS, JSON, PROPERTIES

(2)支持的功能如下:无缝渲染、显示和转换 PDF 和 Office 文档。

    A.查看 HTML 格式的文档:使用 CSS 和 SVG 将任何类型的文档转换为 HTML 文档,可以在任何现代网络浏览器中显示;

    B.光栅化文档:将任何支持的文档格式光栅化为光栅图像,并具有可调整的图像格式和压缩质量;

    C.渲染并突出显示编程代码:支持所有流行的编程、脚本和标记语言,能够解析和突出显示其语法;

    D.转换为 PDF:任何支持格式的文档都可以通过可调整的选项轻松转换并保存为 PDF;

    E.应用转换:输出文档可以在渲染过程中进行转换 - 页面可以旋转和/或重新排列,并且文本水印可以放置在它们的顶部;

    F.HTML 输出调整:由 GroupDocs.Viewer 生成的输出 HTML 文档可以进行非常精细的调整:允许使用外部或嵌入资源、回调等保存到流或文件;

    G.支持复杂的文档结构:GroupDocs.Viewer 不仅支持单个文档,还支持内部包含文档列表或层次结构的文件,例如带有附件的电子邮件、文件夹内带有内部文件的 ZIP 存档、多页 TIFF 图像等;

    H.优化选项:GroupDocs.Viewer 包含一个可调整的缓存子系统,它可以通过使用文档的缓存版本来缩短加载时间。此外,针对不同格式的一组不同选项允许从渲染中排除文档的一些不必要的部分或方面(字体、隐藏的工作表、电子邮件附件),以优化整体性能;

    I.支持受密码保护的文档:GroupDocs.Viewer 允许通过在加载选项中指定密码来打开不同类型的加密文档:PDF、WordProcessing、电子表格、演示文稿等;

上面这一段摘自官网的介绍,整体上觉得很抽象,运行示例项目中相关的例子后我理解的意思:GroupDocs.Viewer是一个文档内容转换与预览的开发工具包,旨在帮助开发人员在其应用程序中实现对多种不同文档格式文件搜索的功能,是一个强大的文档搜索与索引解决方案

2.示例实践

以官网提供的Github示例`https://github.com/groupdocs-viewer/GroupDocs.Viewer-for-Java`为准,上面介绍说GroupDocs.Viewer for Java 是面向Java 开发人员的文档查看器 API。它支持 170 多种热门类别的文档类型,例如 Microsoft Office、OpenOffice、AutoCAD、Photoshop、Visio、图像、元文件、编程、档案、消息、PDF 等。以 HTML5、PDF 或图像模式快速、高质量地查看 PDF、DOC、PPT、ODT、OTT、ODP 等众多文档。您还可以选择自己的渲染策略,逐页处理文档、一次处理整个文档或自定义页面范围。API 还提供了通过其他渲染选项自定义文档外观的功能,例如添加水印、旋转或重新排序页面、提取文档文本等等。本次实践运行了Github Examples示例包下的示例代码,主要介绍官方提供的功能为主,简单过一下示例的功能,详细参考如下:

image.png

(预览Docx文件并增加水印)

image.png

(预览AI文件)


(预览Cdr文件)

image.png

(预览Rar文件)

image.png

(预览Chm文件)

image.png

(预览Outlook)

image.png

(预览IGS)

参考代码如下:

public static void run() {
    Path outputDirectory = Utils.getOutputDirectoryPath("RenderingIgs");
    Path pageFilePathFormat = outputDirectory.resolve("IGS_result.html");
    // TO HTML
    try (Viewer viewer = new Viewer(TestFiles.SAMPLE_IGS)) {
        HtmlViewOptions options = HtmlViewOptions.forEmbeddedResources(pageFilePathFormat);
        viewer.view(options);
    }
    // TO JPG
    pageFilePathFormat = outputDirectory.resolve("IGS_result.jpg");

    try (Viewer viewer = new Viewer(TestFiles.SAMPLE_IGS)) {
        JpgViewOptions options = new JpgViewOptions(pageFilePathFormat);
        viewer.view(options);
    }
    // TO PNG
    pageFilePathFormat = outputDirectory.resolve("IGS_result.png");
    try (Viewer viewer = new Viewer(TestFiles.SAMPLE_IGS)) {
        PngViewOptions options = new PngViewOptions(pageFilePathFormat);
        viewer.view(options);
    }
    // TO PDF
    pageFilePathFormat = outputDirectory.resolve("IGS_result.pdf");

    try (Viewer viewer = new Viewer(TestFiles.SAMPLE_IGS)) {
        PdfViewOptions options = new PdfViewOptions(pageFilePathFormat);
        viewer.view(options);
    }
    System.out.println("\nSource document rendered successfully.\nCheck output in " + outputDirectory);
}

3.其它说明

(1)`GroupDocx.xxx`不是开源免费的使用,Github上有示例项目,包含了大量的示例,示例的结果就是生成了一些《Evaluation Warning》警告、水印、内容页数限制、内容文本限制等;

(2)aspose旗下有许多的产品,都是商业付费版本,常见于各种文档格式文件的操作,都需要商业授权使用,也基本都是支持多种编程语言的,如有Java、C++、.NET等等,官网也有多种在线示例;

(3)示例与相关文件下载:《GroupDocs.Viewer示例相关文件.zip》,注:下载并不包含具体的科学实现部分,只是源文件与示例输出文件;

(4)科学实现分为两种情况,一种是使用反射,另一种是使用License.xml文件;

(5)aspose相关的各个产品组件为独立存在的各个产品,GroupDocs是提取全集产品中的某个功能的集合,提供了一个大类的功能操作,并且统一对外提供API;


 点赞


 发表评论

当前回复:作者

 评论列表


留言区