Java 查詢並替換PDF中的指定文字
阿新 • • 發佈:2020-12-29
本文介紹通過Java程式批量替換PDF中的指定文字內容。
1. 程式環境準備如下:
程式使用環境如圖,需要注意的是,本文使用了免費版的PDF jar工具;另外JDK版本建議使用高版本更佳。
jar檔案匯入後,可呼叫Spire.PDF提供的介面、方法等操作PDF,參考如下匯入結果:
注:可手動下載jar包。下載後,解壓檔案,將lib資料夾下的Spire.Pdf.jar檔案匯入Java程式。
Java 程式碼示例
import com.spire.pdf.*; import com.spire.pdf.general.find.PdfTextFind; import com.spire.pdf.general.find.PdfTextFindCollection;import com.spire.pdf.graphics.PdfBrushes; import com.spire.pdf.graphics.PdfRGBColor; import com.spire.pdf.graphics.PdfSolidBrush; import com.spire.pdf.graphics.PdfTrueTypeFont; import java.awt.*; import java.awt.geom.Rectangle2D; public class FindAndReplaceText { public static void main(String[] args) {//載入示例PDF文件 PdfDocument pdf = new PdfDocument(); pdf.loadFromFile("咖啡豆.pdf"); //遍歷文件每一頁 for (int i = 0; i < pdf.getPages().getCount(); i++) { //獲取所有頁面 PdfPageBase page = pdf.getPages().get(i); //查詢指定文字 PdfTextFindCollection textFindCollection; textFindCollection= page.findText("咖啡",false); //建立畫刷、字型 PdfSolidBrush brush1 = new PdfSolidBrush(new PdfRGBColor(Color.red)); PdfTrueTypeFont font1= new PdfTrueTypeFont(new Font("宋體",Font.PLAIN,9),true); //用新的文字字元替換原有文字 Rectangle2D rec; for(PdfTextFind find: textFindCollection.getFinds()) { rec = find.getBounds(); page.getCanvas().drawRectangle(PdfBrushes.getWhite(), rec); page.getCanvas().drawString("Coffee", font1, brush1, rec); } } //儲存文件 pdf.saveToFile("FindAndReplaceText.pdf"); pdf.close(); } }
文字替換前後效果: