aspose-words word转pdf 服务器不需要重启

本文介绍了如何在服务器上安装Windows字体并应用于Aspose Words进行PDF转换,包括字体配置步骤、使用许可证管理水印以及Maven打包处理。还提供了详细的资源复制和签名验证方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章综合了其他网友的方法,方便观看,后面附有链接

用到的jar aspose-words-15.8.0-jdk16.jar
服务器字体设置:

 
yum install -y fontconfig mkfontscale
cd /usr/share/fonts目录
把windows机器中 C:\Windows\Fonts里面的内容,全部拷贝到linux的上述目录(/usr/share/fonts中)
mkfontscale
mkfontdir
fc-cache


服务器不需要重启,但是安装完新字体需要执行
mkfontscale
mkfontdir
fc-cache

服务器字体目录图:

服务器字体目录

license.xml 文件内容(用于破解水印)


<?xml version="1.0" encoding="UTF-8" ?>
<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>

pom.xml打包

<resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
                <excludes>
                    <exclude>font/*.ttf</exclude>
                    <exclude>font/*.woff</exclude>
                </excludes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>false</filtering>
                <includes>
                    <include>font/*.ttf</include>
                    <include>font/*.woff</include>
                </includes>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <configuration>
                    <nonFilteredFileExtensions>
                        <nonFilteredFileExtension>ttf</nonFilteredFileExtension>
                        <nonFilteredFileExtension>woff</nonFilteredFileExtension>
                        <nonFilteredFileExtension>woff2</nonFilteredFileExtension>
                    </nonFilteredFileExtensions>
                </configuration>
                <version>3.2.0</version>
            </plugin>

代码(适当自行修改):

  public static boolean doc2pdf(String inPath, String outPath) {
        // 验证License 若不验证则转化出的pdf文档会有水印产生
        if (!getLicense()) {
            return false;
        }
        FileOutputStream os = null;
        try {
           //把项目下的字体拷贝到服务器字体目录下
            ClassPathResource resource = new ClassPathResource("font" + File.separator + "msyh.ttf");
            InputStream is = resource.getInputStream();
            String linuxFontBasePath = "/usr/share/fonts";
            File fontFile = new File(linuxFontBasePath + File.separator + "msyh.ttf");
            if (!fontFile.exists()) {
                FileCopyUtils.copy(FileCopyUtils.copyToByteArray(is),fontFile);
            }
            File file = new File(outPath);  //新建一个空白pdf文档
            os = new FileOutputStream(file);
            long old = System.currentTimeMillis();
            Document doc = new Document(inPath);
            Environment environment = SpringContextUtil.getBean(Environment.class);
            String[] activeProfiles = environment.getActiveProfiles();
            //非开发环境则拷贝字体到服务器系统字体目录中
            if (null != activeProfiles && !"local".equals(activeProfiles[0])) {
                FontSettings.setFontsFolder(linuxFontBasePath + File.separator, true);
            }
            //sourcerFile是将要被转化的word文档
            doc.save(os, SaveFormat.PDF);
            os.close();
            long now = System.currentTimeMillis();
            System.out.println("共耗时:" + ((now - old) / 1000.0) + "秒");  //转化用时
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }finally {
            if (os != null) {
                try {
                    os.flush();
                    os.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return true;
    }
    

参考地址:

地址一:https://blog.youkuaiyun.com/somdip/article/details/100098976
地址二:https://blog.youkuaiyun.com/somdip/article/details/100098976
地址三:https://blog.youkuaiyun.com/somdip/article/details/100098976

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值