java中word转PDF遇到的中文字体问题

无标题

记一次将word文档转为PDF文档中遇到的Maven依赖问题,在网上查找解决方案时选择了

   <dependency>
        <groupId>fr.opensagres.xdocreport</groupId>
        <artifactId>org.apache.poi.xwpf.converter.pdf</artifactId>
        <version>1.0.6</version>
    </dependency>


这个工具包,虽然转换起来比较慢,但是使用起来非常简单.这里不做使用方法的介绍,只做一个使用问题的记录; 虽然版本是最新版但是已经是2016年老代码了;
其中该工具存在以下依赖


1.其中org.apache.poi提供了java对office文档的基础支持,
2.com.lowagie:itext提供了对PDF文档的支持,到这里从word转成PDF格式的功能基本可以实现的,但是存在不支持中文的问题,具体体现在word里的中文转换成PDF后中文消失;
3.又去网上查找解决itext对中文的支持,网上大部分的答案是加入com.itextpdf:itextasian包.(com.itextpdf之前的包名是叫com.lowagie)
4.但是我使用的…converter.pdf:1.0.6只支持com.lowagie所以你引入com.itextpdf:itextasian是徒劳的;需要引入com.lowagie:itextasian才可以;
5.也就是说converter.pdf使用的itext依赖包版本太老了,你需要使用itext对应的老版本才work;


下面贴出项目中使用到的maven依赖:

第一部分:

     <!-- poi  对微软的文档进行操作的工具包-->
		<dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>3.15</version>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>3.15</version>
    </dependency>
    <dependency>
        <groupId>org.apache.xmlbeans</groupId>
        <artifactId>xmlbeans</artifactId>
        <version>2.5.0</version>
    </dependency>
    <!--poi  对doc格式文档的支持-->
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-scratchpad</artifactId>
        <version>3.15</version>
    </dependency>

第二部分:

    <!-- pdf转换工具-万恶之源-->
    <dependency>
        <groupId>fr.opensagres.xdocreport</groupId>
        <artifactId>org.apache.poi.xwpf.converter.pdf</artifactId>
        <version>1.0.6</version>
    </dependency>
    <!--没有该包的话,会有中文显示问题-->
    <dependency>
        <groupId>com.lowagie</groupId>
        <artifactId>itextasian</artifactId>
        <version>1.5.2</version>
    </dependency>
要在使用 Aspose 将 Word 转换PDF 时设置字体为 Linux 字体,您可以按照以下步骤进行操作: 1. 确保您已经安装了所需的 Linux 字体。可以从适合您需求的字体提供商或在线字体库获取所需字体文件。 2. 在代码指定要使用的字体名称。例如,如果您希望使用 Linux 下的 Arial 字体,可以将字体名称设置为 "Arial"。 3. 使用 Aspose 提供的 API 来设置所需字体。以下是一个示例代码片段,演示如何在 Aspose.Words 将字体设置为 Linux 字体并将 Word 文档转换PDF: ```java // 加载 Word 文档 Document doc = new Document("input.docx"); // 创建 FontSettings 对象 FontSettings fontSettings = new FontSettings(); fontSettings.setFontsFolder("/path/to/linux/fonts/folder", true); // 设置 Linux 字体文件夹路径 fontSettings.DefaultFontName = "Arial"; // 设置要使用的字体名称 // 将 FontSettings 对象分配给文档 doc.FontSettings = fontSettings; // 保存为 PDF doc.Save("output.pdf", SaveFormat.Pdf); ``` 在上述示例,通过创建一个 `FontSettings` 对象并使用 `setFontsFolder` 方法指定 Linux 字体文件夹的路径,然后将该对象分配给文档的 `FontSettings` 属性。同时,将 `DefaultFontName` 属性设置为所需的字体名称。 请注意,具体的 API 调用方式可能因您使用的 Aspose 产品和版本而有所不同。因此,请参考相关的 Aspose 文档或示例代码以获取更多详细信息。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

b0b0大魔王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值