首页 > 其他分享 >Word文档转换为PDF并去除水印

Word文档转换为PDF并去除水印

时间:2025-01-16 14:59:20浏览次数:3  
标签:Word 水印 Java wordPath pdf PDF new fileOutputStream

在Java开发中,有时我们需要将Word文档转换为PDF格式。Aspose.Words for Java是一个非常强大的工具库,可以帮助我们轻松完成这项任务。本文将介绍一个Java工具类,它使用Aspose.Words for Java库来将Word文档转换为PDF,并去除水印。

准备工作

首先,你需要确保已经下载并添加了Aspose.Words for Java库到你的项目中。你可以从Aspose官方网站下载该库,并将其添加到你的项目依赖中。此外,你还需要一个有效的许可证字符串,以便能够使用Aspose.Words for Java的所有功能。

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

工具类代码

下面是一个完整的Java工具类,用于将Word文档转换为PDF并去除水印:

import com.aspose.words.Document;
import com.aspose.words.License;
import com.aspose.words.SaveFormat;
import com.aspose.pdf.Document as PdfDocument; // 注意这里的Document是com.aspose.pdf包下的

import java.io.*;

public class WordToPdfConverter {

    /**
     * 许可证字符串(可以放到resource下的xml文件中也可)
     */
    private static final String LICENSE = "<License>" + "<Data>"
            + "<Products><Product>Aspose.Total for Java</Product><Product>Aspose.Words for Java</Product></Products>"
            + "<EditionType>Enterprise</EditionType>" + "<SubscriptionExpiry>20991231</SubscriptionExpiry>"
            + "<LicenseExpiry>20991231</LicenseExpiry>"
            + "<SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7</SerialNumber>" + "</Data>"
            + "<Signature>sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=</Signature>"
            + "</License>";

    /**
     * 设置 license 去除水印
     */
    private static void setLicense() {
        ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(LICENSE.getBytes());
        License license = new License();
        try {
            license.setLicense(byteArrayInputStream);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * word 转 pdf 生成至指定路径,pdf为空则上传至word同级目录
     *
     * @param wordPath word文件路径
     * @param pdfPath  pdf文件路径
     * @return 生成的PDF页数
     */
    public static long wordConvertPdfFile(String wordPath, String pdfPath) {
        FileOutputStream fileOutputStream = null;
        long pageCount = 0; // 默认为0页
        try {
            pdfPath = pdfPath == null ? getPdfFilePath(wordPath) : pdfPath;
            setLicense();
            File file = new File(pdfPath);
            fileOutputStream = new FileOutputStream(file);
            Document doc = new Document(wordPath);
            doc.save(fileOutputStream, SaveFormat.PDF);
            PdfDocument pdfDocument = new PdfDocument(pdfPath);
            pageCount = pdfDocument.getPages().size();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                assert fileOutputStream != null;
                fileOutputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return pageCount;
    }

    /**
     * word 转 pdf 生成byte字节流
     *
     * @param wordPath word所在的目录地址
     * @return 生成的PDF字节流
     */
    public static byte[] wordConvertPdfByte(String wordPath) {
        ByteArrayOutputStream fileOutputStream = null;
        try {
            setLicense();
            fileOutputStream = new ByteArrayOutputStream();
            Document doc = new Document(wordPath);
            doc.save(fileOutputStream, SaveFormat.PDF);
            return fileOutputStream.toByteArray();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                assert fileOutputStream != null;
                fileOutputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return null;
    }

    /**
     * 获取 生成的 pdf 文件路径,默认与源文件同一目录
     *
     * @param wordPath word文件路径
     * @return 生成的 pdf 文件路径
     */
    private static String getPdfFilePath(String wordPath) {
        int lastIndexOfPoint = wordPath.lastIndexOf(".");
        String pdfFilePath = "";
        if (lastIndexOfPoint > -1) {
            pdfFilePath = wordPath.substring(0, lastIndexOfPoint);
        }
        return pdfFilePath + ".pdf";
    }
}

标签:Word,水印,Java,wordPath,pdf,PDF,new,fileOutputStream
From: https://blog.csdn.net/m0_65292294/article/details/145175201

相关文章

  • 图像修复(3)| 基于mask操作和图像修复的一键去水印
    前言  上篇文章讲了手动去除水印的方法,下面介绍一下自动化去水印的方法,大体思路是这样子的:使用目标分割模型提取水印mask(本文用的U2net),结合mask和修复神经网络(本文用的MI-GAN)实现一键去除水印老规矩,先上效果图:1.目标分割任务介绍  目标分割(ObjectSegmentat......
  • wordpress的火车头商品发布接口
    <?phprequire'../wp-load.php';ini_set('memory_limit','1024M');set_time_limit(180);$top_cat='';#图片链接域名替换$image_host='';$start_time=microtime(true);$counter=0;//临时缓存$products=$sk......
  • 不依赖第三方库,说下如何使用js读取pdf?
    在不依赖第三方库的情况下,使用原生JavaScript来读取PDF文件内容是一项相对复杂的任务,因为PDF是一种二进制文件格式,其解析需要处理很多底层细节。通常,我们会使用像pdf.js这样的库来简化这个过程。但如果你确实想要尝试不使用任何第三方库,以下是一个大致的步骤指南:获取PDF文件:......
  • 为WordPress网站设置第三方社交软件登录
    1.下载SuperSocializer外挂,为WordPress网站设置第三方社交软件登录由于wordpress配置的数据库是本地专用的,所以用户如果使用我们搭建的网站可能需要重新登陆,这无疑会是我们网站登录方面的痛点,所以使用第三方社交软件账号登录会很方便。2.使用域名登录网站昨天搭建网站的时候,使......
  • 【前端】谈谈水印实现的几种方式
    遇到问题日常工作中,经常会遇到很多敏感的数据,为防止数据的泄露,我们要在数据上做一些”包装“。目的就是让那些有心泄露数据的”不法分子“迫于严重的”舆论压力“而放弃不法行为,使之”犯罪未遂“,达到不战而屈人之兵的效果。而在安全部门工作的我们,数据安全的观念早已深入骨髓,每......
  • 文字处理软件 Atlantis Word Processor v4.4.1.3 注册码
    AtlantisWordProcessor 是一款专为Windows用户设计的文字处理工具,提供自定义工具栏、排版和打印设置等功能,极大地提升了文档编辑的效率和灵活性。该版本已内置注册码,可以使用全部功能。使用说明:1、将压缩文件解压到固定位置,不要随意移动。2、解压后,双击start_AWP.bat来......
  • 输出Hello word
    输出Helloword打开Notepad++文档,方便书写代码新建一个java文件编写代码publicclasshello{ publicstaticvoidmain(String[]args){//格式固定的标题头 System.out.print("helloword");//输出的内容 }}在cmd中编译ja......
  • 推荐2款PDF编辑器转换助手,转WORD图片压缩工具
    聊一聊不知道大家有没有跟我一样经常需要修改PDF信息的情况有时候根据需要要将PDF按页拆分出来便于发给其他人因为不是所有的都涉及到所以有时候只要其中一页或一部分就可以了;有时候需要对PDF里面的文字进行修改更多时候是需要将PDF转换成WORD这样更便于编辑有时候......
  • 【Python】拆分、合并PDF
    1.拆分#importsys#sys.path.append(r"c:\users\lenovo\appdata\local\programs\python\python312\lib\site-packages")#这里包的安装目录不同,将其加入系统变量,目录相同不需要这个fromPyPDF3importPdfFileWriter,PdfFileReaderinput_pdf=PdfFileReader(r"F:\需要拆分......
  • 大模型好书推荐 | Transformer 和扩散模型的生成式 AI 实用指南(文末免费下载PDF)
    《Transformer和扩散模型的生成式AI实用指南》是一本关于生成式人工智能的技术指南,特别关注了Transformer和扩散模型在AI领域的应用。这本大模型书籍已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】这本书的内容主要分为以下......