Java 替換PDF中的字型

Mia張發表於2022-06-24

文件中可通過應用不同的字型來呈現不一樣的視覺效果,通過字型來實現文件佈局、排版等設計需要。應用字型時,可在建立文件時指定字型,也可以用新字型去替換文件中已有的字型。下面,以Java程式碼展示如何來替換PDF中的已有字型,包括:

  • 替換所有字型

  • 替換指定字型

___________________________________________________________________________________________________

引入jar

Maven程式中配置pom.xml:

<repositories>
        <repository>
            <id>com.e-iceblue</id>
            <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();
     }
 }



—END—



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31499788/viewspace-2902564/,如需轉載,請註明出處,否則將追究法律責任。

相關文章