最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實(shí)現(xiàn)替換PDF中的字體功能

 更新時(shí)間:2022年03月07日 11:52:30   作者:E-iceblue  
文檔中可通過(guò)應(yīng)用不同的字體來(lái)呈現(xiàn)不一樣的視覺(jué)效果,通過(guò)字體來(lái)實(shí)現(xiàn)文檔布局、排版等設(shè)計(jì)需要。本文將詳細(xì)為大家介紹如何利用Java實(shí)現(xiàn)替換PDF文中的字體,需要的可以參考一下

文檔中可通過(guò)應(yīng)用不同的字體來(lái)呈現(xiàn)不一樣的視覺(jué)效果,通過(guò)字體來(lái)實(shí)現(xiàn)文檔布局、排版等設(shè)計(jì)需要。應(yīng)用字體時(shí),可在創(chuàng)建文檔時(shí)指定字體,也可以用新字體去替換文檔中已有的字體。下面,以Java代碼展示如何來(lái)替換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>

如需手動(dòng)導(dǎo)入的話,可將 Jar包下載到本地,然后解壓,找到lib文件夾下的Spire.Pdf.jar文件。在IDEA中打開“Project Structure”并將本地路徑下的jar導(dǎo)入程序,如圖:

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{
        //創(chuàng)建PdfDocument類的對(duì)象
        PdfDocument pdf = new PdfDocument();

        //加載PDF文檔
        pdf.loadFromFile("input.pdf");

        //獲取文檔中的所有字體
        PdfUsedFont[] fonts = pdf.getUsedFonts();

        //遍歷所有字體
        for (PdfUsedFont font: fonts) {

            //獲取字體大小
            float fontSize = font.getSize();

            //創(chuàng)建新字體
            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{
        //創(chuàng)建PdfDocument類的對(duì)象
        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();

                //創(chuàng)建新字體
                PdfFont newfont = new PdfFont(PdfFontFamily.Times_Roman, fontSize, PdfFontStyle.Italic);

                //替換Calibri字體
                font.replace(newfont);
            }
        }

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

到此這篇關(guān)于Java實(shí)現(xiàn)替換PDF中的字體功能的文章就介紹到這了,更多相關(guān)Java替換PDF字體內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中synchronized鎖的深入理解

    Java中synchronized鎖的深入理解

    這篇本文主要對(duì)Java中synchronized鎖進(jìn)行深入理解,文中通過(guò)synchronized的優(yōu)化,synchronized的實(shí)現(xiàn)原理及synchronized的升級(jí)過(guò)程來(lái)介紹Java中synchronized鎖,感興趣的同學(xué)可以跟著小編一起來(lái)學(xué)習(xí)
    2023-05-05
  • java分割文本字符串的方法

    java分割文本字符串的方法

    這篇文章主要為大家詳細(xì)介紹了java分割文本字符串的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 全面了解java異常

    全面了解java異常

    本文非常詳細(xì)的介紹了java異常,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們可以學(xué)習(xí)一下這篇文章
    2021-08-08
  • SpringBoot中整合Ehcache實(shí)現(xiàn)熱點(diǎn)數(shù)據(jù)緩存的詳細(xì)過(guò)程

    SpringBoot中整合Ehcache實(shí)現(xiàn)熱點(diǎn)數(shù)據(jù)緩存的詳細(xì)過(guò)程

    這篇文章主要介紹了SpringBoot中整合Ehcache實(shí)現(xiàn)熱點(diǎn)數(shù)據(jù)緩存,SpringBoot 中使用 Ehcache 比較簡(jiǎn)單,只需要簡(jiǎn)單配置,說(shuō)白了還是 Spring Cache 的用法,合理使用緩存機(jī)制,可以很好地提高項(xiàng)目的響應(yīng)速度,需要的朋友可以參考下
    2023-04-04
  • java數(shù)據(jù)結(jié)構(gòu)和算法學(xué)習(xí)之漢諾塔示例

    java數(shù)據(jù)結(jié)構(gòu)和算法學(xué)習(xí)之漢諾塔示例

    這篇文章主要介紹了java數(shù)據(jù)結(jié)構(gòu)和算法中的漢諾塔示例,需要的朋友可以參考下
    2014-02-02
  • 使用Javacsv.jar的jar包操作csv文件的方法

    使用Javacsv.jar的jar包操作csv文件的方法

    使用javacsv的jar包很方便的可以操作csv文件。下面通過(guò)本教程給大家介紹使用javacsv.jar操作csv文件的方法,感興趣的朋友一起看下吧
    2016-08-08
  • Java實(shí)現(xiàn)堆算法的使用示例

    Java實(shí)現(xiàn)堆算法的使用示例

    本文主要介紹了Java實(shí)現(xiàn)堆算法的使用示例,Java中提供了一個(gè)Heap類,可以用來(lái)實(shí)現(xiàn)堆的操作,可以實(shí)現(xiàn)如插入、刪除、獲取最大最小值等,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-12-12
  • Java通過(guò)在主循環(huán)中判斷Boolean來(lái)停止線程的方法示例

    Java通過(guò)在主循環(huán)中判斷Boolean來(lái)停止線程的方法示例

    這篇文章主要介紹了Java通過(guò)在主循環(huán)中判斷Boolean來(lái)停止線程的方法,結(jié)合具體實(shí)例形式分析了java針對(duì)線程的判斷與停止操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-04-04
  • 解決BigDecimal轉(zhuǎn)long丟失精度的問(wèn)題

    解決BigDecimal轉(zhuǎn)long丟失精度的問(wèn)題

    這篇文章主要介紹了解決BigDecimal轉(zhuǎn)long丟失精度的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • Java微信公眾平臺(tái)之素材管理

    Java微信公眾平臺(tái)之素材管理

    這篇文章主要為大家詳細(xì)介紹了Java微信公眾平臺(tái)之素材管理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05

最新評(píng)論

湘潭县| 清水县| 开江县| 玉山县| 策勒县| 阿拉善右旗| 离岛区| 海盐县| 日照市| 偃师市| 长寿区| 安西县| 孟村| 绥中县| 金溪县| 绿春县| 淳化县| 长武县| 蓬莱市| 南城县| 务川| 墨竹工卡县| 平利县| 安仁县| 宁海县| 额济纳旗| 清苑县| 重庆市| 隆回县| 上饶市| 绥德县| 玉环县| 丰宁| 敦化市| 汽车| 华蓥市| 库伦旗| 建始县| 大埔区| 房产| 沧州市|