Java实现替换PDF中的字体功能

 更新时间:2022年03月07日 11:52:30   作者:E-iceblue  
文档中可通过应用不同的字体来呈现不一样的视觉效果,通过字体来实现文档布局、排版等设计需要。本文将详细为大家介绍如何利用Java实现替换PDF文中的字体,需要的可以参考一下

文档中可通过应用不同的字体来呈现不一样的视觉效果,通过字体来实现文档布局、排版等设计需要。应用字体时,可在创建文档时指定字体,也可以用新字体去替换文档中已有的字体。下面,以Java代码展示如何来替换PDF中的已有字体,包括:

替换所有字体

替换指定字体

引入jar

Maven程序中配置pom.xml:

<repositories>
        <repository>
            <id>com.e-iceblue</id>
            <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
        </repository>
    </repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.pdf.free</artifactId>
        <version>5.1.0</version>
    </dependency>
</dependencies>

如需手动导入的话,可将 Jar包下载到本地,然后解压,找到lib文件夹下的Spire.Pdf.jar文件。在IDEA中打开“Project Structure”并将本地路径下的jar导入程序,如图:

Java代码

1. 替换所有字体

思路:加载PDF文档后,获取源文档中的字体,然后定义新字体,替换原有字体,最后保存文档。

Java

import com.spire.pdf.*;
import com.spire.pdf.graphics.PdfFont;
import com.spire.pdf.graphics.PdfFontFamily;
import com.spire.pdf.graphics.PdfFontStyle;
import com.spire.pdf.graphics.fonts.PdfUsedFont;

public class ReplaceAllFonts {
    public static void main(String[] args) throws Exception{
        //创建PdfDocument类的对象
        PdfDocument pdf = new PdfDocument();

        //加载PDF文档
        pdf.loadFromFile("input.pdf");

        //获取文档中的所有字体
        PdfUsedFont[] fonts = pdf.getUsedFonts();

        //遍历所有字体
        for (PdfUsedFont font: fonts) {

            //获取字体大小
            float fontSize = font.getSize();

            //创建新字体
            PdfFont newfont = new PdfFont(PdfFontFamily.Times_Roman, fontSize, PdfFontStyle.Italic);

            //替换原有字体
            font.replace(newfont);
        }

        //保存文档
        pdf.saveToFile("ReplaceAllFonts.pdf");
        pdf.dispose();
    }
}

2. 替换指定字体

思路:加载PDF文档后,查找、获取文档中的指定字体,然后定义新字体,替换查找到的原有字体,最后保存文档。

Java

import com.spire.pdf.PdfDocument;
import com.spire.pdf.graphics.*;
import com.spire.pdf.graphics.fonts.PdfUsedFont;

public class ReplaceSpecificFont {
    public static void main(String[] args) throws Exception{
        //创建PdfDocument类的对象
        PdfDocument pdf = new PdfDocument();

        //加载PDF文档
        pdf.loadFromFile("sample.pdf");

        //获取文档中的所有字体
        PdfUsedFont[] fonts = pdf.getUsedFonts();

        //遍历所有字体
        for (PdfUsedFont font: fonts)
        {
            //判断符合条件的字体
            if(font.getName().equals("Calibri"))
            {
                //获取字体大小
                float fontSize = font.getSize();

                //创建新字体
                PdfFont newfont = new PdfFont(PdfFontFamily.Times_Roman, fontSize, PdfFontStyle.Italic);

                //替换Calibri字体
                font.replace(newfont);
            }
        }

        //保存文档
        pdf.saveToFile("ReplaceSpecificFont.pdf");
        pdf.dispose();
    }
}

到此这篇关于Java实现替换PDF中的字体功能的文章就介绍到这了,更多相关Java替换PDF字体内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java打乱数组元素简单代码例子

    Java打乱数组元素简单代码例子

    在Java编程中,我们经常需要对数组进行乱序操作(即将数组中的元素随机打乱顺序),这篇文章主要给大家介绍了关于Java打乱数组元素的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-03-03
  • Java多线程之ReentrantReadWriteLock源码解析

    Java多线程之ReentrantReadWriteLock源码解析

    这篇文章主要介绍了Java多线程之ReentrantReadWriteLock源码解析,文中有非常详细的代码示例,对正在学习java基础的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-05-05
  • java开发只要tomcat设计模式用的好下班就能早

    java开发只要tomcat设计模式用的好下班就能早

    这篇文章主要为大家介绍了java开发只要tomcat设计模式的示例详解,<BR>只要设计模式用的好下班就能早,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • Java静态工厂方法的实例详解

    Java静态工厂方法的实例详解

    这篇文章主要介绍了 Java静态工厂方法的实例详解的相关资料,希望通过本文大家能掌握java今天工厂方法,需要的朋友可以参考下
    2017-09-09
  • Java程序包不存在问题的解决办法

    Java程序包不存在问题的解决办法

    最近工作中遇到个问题,代码中没有报错,启动时报错,但是程序包不存在,这篇文章主要给大家介绍了关于Java程序包不存在问题的解决办法,需要的朋友可以参考下
    2022-06-06
  • maven多moudle项目在idea里面显示多个root问题及解决

    maven多moudle项目在idea里面显示多个root问题及解决

    这篇文章主要介绍了maven多moudle项目在idea里面显示多个root问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • Spring中的拦截器HandlerInterceptor详细解析

    Spring中的拦截器HandlerInterceptor详细解析

    这篇文章主要介绍了Spring中的拦截器HandlerInterceptor详细解析,HandlerInterceptor 是 Spring 框架提供的一个拦截器接口,用于在请求处理过程中拦截和处理请求,需要的朋友可以参考下
    2024-01-01
  • Spring Boot支持Crontab任务改造的方法

    Spring Boot支持Crontab任务改造的方法

    这篇文章主要介绍了Spring Boot支持Crontab任务改造的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • SpringCloud容器化服务发现及注册实现方法解析

    SpringCloud容器化服务发现及注册实现方法解析

    这篇文章主要介绍了SpringCloud容器化服务发现及注册实现方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • 详解Spring Boot 2.0.2+Ajax解决跨域请求的问题

    详解Spring Boot 2.0.2+Ajax解决跨域请求的问题

    这篇文章主要介绍了详解Spring Boot 2.0.2+Ajax解决跨域请求的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03

最新评论