使用Aspose.Words将word转PDF并且去水印。

这篇具有很好参考价值的文章主要介绍了使用Aspose.Words将word转PDF并且去水印。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 😜           :是江迪呀
  • ✒️本文关键词Java工具类转换word转pdfAspose.Words后端
  • ☀️每日   一言只要思想不滑坡,办法总比困难多。

前言

在我们日常开发中经常会有将word文档转为PDF的场景,有很多种方法我最倾向的的是使用Aspose.Words,原因是转出的PDF内容不会缺失很好用。但是Aspose.Words如果使用的话需要付费,不然转出的PDF会带有水印,但是可以通过代码去除,仅供研究学习。下面让我一起来研究学习下吧。

一、引入依赖

Aspose.Words官网地址

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-words</artifactId>
    <version>21.6</version>
    <classifier>jdk16</classifier>
</dependency>

使用Aspose.Words将word转PDF并且去水印。

问题:我们会发现使用POM文件引入依赖的方式无法下载jar包,我们可以通过在官网下载jar放到本地maven仓库的方式解决。

1.1 下载jar包

使用Aspose.Words将word转PDF并且去水印。
使用Aspose.Words将word转PDF并且去水印。

1.2 放入本地Maven仓库

使用Aspose.Words将word转PDF并且去水印。
使用Aspose.Words将word转PDF并且去水印。

使用Aspose.Words将word转PDF并且去水印。

重新加载下maven即可。
使用Aspose.Words将word转PDF并且去水印。
如果你有私有的maven仓库那就更好办了,直接将jar包上传到私有maven仓库即可。

二、示例代码

2.1 WordToPdfUtil工具类:

import com.aspose.words.Document;
import com.aspose.words.SaveFormat;
import lombok.extern.slf4j.Slf4j;

import java.io.FileOutputStream;
import java.io.InputStream;

@Slf4j
public class WordsToPDFUtil {
    /**
     * 输出到指定的目录
     * @param is
     * @param toPath
     * @param fileName
     */
    public static void wordToPdf(InputStream is, String toPath,String fileName){
        Document doc = null;
      	 //去水印
       	removeWaterMark();
        try {
            String resultPath = toPath + fileName + ".pdf";
            FileOutputStream os = new FileOutputStream(resultPath);
            doc = new Document(is);
            doc.save(os, SaveFormat.PDF);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
 	 /**
     * 返回byte数组
     * @param is
     */
    public static byte[] wordToPdf(InputStream is){
        Document doc = null;
        //去水印
       	removeWaterMark();
        try {
            // 创建一个字节数组输出流
            ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
            doc = new Document(is);
            doc.save(outputStream, SaveFormat.PDF);
            return outputStream.toByteArray();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
        /**
     * 去除水印
     * 使用反射替换变量
     * @return
     */
     private void removeWaterMark() throws Exception {
        Class<?> aClass = Class.forName("com.aspose.words.zzXyu");
        java.lang.reflect.Field zzZXG = aClass.getDeclaredField("zzZXG");
        zzZXG.setAccessible(true);
        java.lang.reflect.Field modifiersField = zzZXG.getClass().getDeclaredField("modifiers");
        modifiersField.setAccessible(true);
        modifiersField.setInt(zzZXG, zzZXG.getModifiers() & ~Modifier.FINAL);
        zzZXG.set(null,new byte[]{76, 73, 67, 69, 78, 83, 69, 70});
    }
}

转换前:
使用Aspose.Words将word转PDF并且去水印。
转换后:
使用Aspose.Words将word转PDF并且去水印。
去水印后:
使用Aspose.Words将word转PDF并且去水印。

2.2 去水印思路

当我们有购买了许可证时,我们需要使用 License()方法认证许可证,只需要找到认证代码然后使用Java的反射机制将认证代码替换成认证通过即可。
(1)找到许可证验证

 License license = new License();
 license.setLicense("");
 license.setLicense(new FileInputStream(""));

我们通过Debug可以发现认证使用到了两个静态参数:

package com.aspose.words;

final class zzXyu {
	//认证
    public static final byte[] zzZXG = new byte[]{69, 86, 65, 76, 85, 65, 84, 73, 79, 78};
    //认证通过
    public static final byte[] zz1Y = new byte[]{76, 73, 67, 69, 78, 83, 69, 68};
}

(2)通过Java反射拿到zzXyu类的Class对象

 Class<?> aClass = Class.forName("com.aspose.words.zzXyu");

(3)通过反射获取了名为 “zzZXG” 的字段对应的 Field 对象。=

java.lang.reflect.Field zzZXG = aClass.getDeclaredField("zzZXG");

(4)设置了字段zzZXG可访问,因为它是私有的

zzZXG.setAccessible(true);

(5)获取了zzZXG字段的类型对象(字段的修饰符)

java.lang.reflect.Field modifiersField = zzZXG.getClass().getDeclaredField("modifiers");

(5)设置修饰符可以被修改

 modifiersField.setAccessible(true);

(6)去除zzZXG前面的final修饰符,便于后续修改

modifiersField.setInt(zzZXG, zzZXG.getModifiers() & ~Modifier.FINAL);

(7)设置zzZXG的值为校验通过

zzZXG.set(null,new byte[]{76, 73, 67, 69, 78, 83, 69, 70});

三、总结

我们上述代码仅供参考学习!

注意:我们目前使用的Aspose.Words的版本是21.6,最新的版本是23.5,上面去除水印的代码仅支持到21.6
使用Aspose.Words将word转PDF并且去水印。文章来源地址https://www.toymoban.com/news/detail-500341.html

到了这里,关于使用Aspose.Words将word转PDF并且去水印。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Word处理控件Aspose.Words功能演示:使用 C# 在 Word 文档中创建和修改 VBA 宏

    Aspose.Words 是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。此外, Aspose API支持流行文件格式处理,并允许将各类文档导出或转换为固定布局文件格式和最常用的图像

    2024年02月03日
    浏览(43)
  • 【aspose-words】Aspose.Words for Java模板语法详细剖析

    aspose-words模板语法再了解 垂死病中惊坐起,小丑竟是我自己。对于 aspose-words的使用 本狗自以为已炉火纯青,遂在新的迭代任务中毛遂自荐,并在小姐姐面前吹了一个大牛,分分钟解决完事。 蜜汁自信来源:本狗之前关于aspose-words文章,大家可审阅 【屎上最全vue-pdf+Springboot与

    2024年02月09日
    浏览(49)
  • 关于Unity使用Aspose.Words创建表格单元格垂直合并不生效情况说明

    👉一、前言 最近在使用Aspose.Words.dll实现创建表格功能时,遇到了一个让我费解了好几天的问题——单元格垂直合并失效。我都快要怀疑人生了都,关键是它水平合并没问题,而且创建别的表格垂直合并也没问题;况且经过我反复测试,代码逻辑也是没有问题的,你说这气不

    2023年04月11日
    浏览(54)
  • Aspose.Pdf使用教程:在PDF文件中添加水印

    Aspose.PDF  是一款高级PDF处理API,可以在跨平台应用程序中轻松生成,修改,转换,呈现,保护和打印文档。无需使用Adobe Acrobat。此外,API提供压缩选项,表创建和处理,图形和图像功能,广泛的超链接功能,图章和水印任务,扩展的安全控件和自定义字体处理。本文将为你

    2024年02月01日
    浏览(63)
  • Word控件 Aspose.words for.NET 授权须知

    Aspose.Words 是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。此外, Aspose API支持流行文件格式处理,并允许将各类文档导出或转换为固定布局文件格式和最常用的图像

    2024年02月04日
    浏览(51)
  • aspose-words按需求导出图像

    使用aspose-words时,经常会遇到需要导出文档中所有图片,或者按需求导出特定图片的需求。使用 Aspose.Words API,这项任务变得很简单,它已经提供了提取和保存图像数据的功能, 但是,有时可能想要类似地 提取由不同类型的绘图对象表示的其他类型的图形内容 ,例如包含段

    2024年02月22日
    浏览(53)
  • Aspose.Words for JasperReports Crack

    Added support for text wrapping in headers and footers. Added the ability to remove digital signatures from ODT documents. Added the ability to read chart category. Added the ability to modify/remove chart series data. Added support for Microsoft Azure Rights Management RMS Encryption. Added the ability to format data series in scatter charts.   You can now

    2024年02月10日
    浏览(47)
  • 借助文档控件Aspose.Words,将 Word DOC/DOCX 转换为 TXT

    在文档处理领域,经常需要将 Word 文档转换为更简单的纯文本格式。无论是出于数据提取、内容分析还是兼容性原因,将 Word(.doc、.docx)文件转换为纯文本(.txt)的能力对于开发人员来说都是一项宝贵的技能。在这篇博文中,我们将探讨如何在 C# 应用程序中将 Word 文档转换

    2024年01月19日
    浏览(57)
  • 关于Unity使用Aspose.Words.dll发布Windows平台后运行报错:Operation is not supported on this platform.说明

    👉一、报错来源 Unity版本:Unity 2018.4.36f1。 Aspose.Words.dll版本:18.7.0.0 Targets .NET 3.5。 打包为exe文件运行后执行到Aspose.Words的相关Api时报错(编辑器运行无报错)。 👉二、报错信息 PlatformNotSupportedException:Operation is supported on this platform. 大概意思是,平台不支持的异常:当前平

    2024年02月12日
    浏览(66)
  • Java版Word开发工具Aspose.Words基础教程:检测文件格式并检查格式兼容性

    Aspose.Words for Java是功能丰富的文字处理API,开发人员可以在自己的Java应用程序中嵌入生成,修改,转换,呈现和打印Microsoft Word支持的所有格式的功能。它不依赖于Microsoft Word,但是它提供了Microsoft Word通过其API支持的功能。 Aspose.Words for Java最新下载 https://www.evget.com/product/

    2024年02月14日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包