日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Java修改PDF文件内容

發布時間:2023/12/19 综合教程 22 生活家
生活随笔 收集整理的這篇文章主要介紹了 Java修改PDF文件内容 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

下載工具

    鏈接:https://pan.baidu.com/s/1Ta8iokGyPhJOnetGqPwtUg
    提取碼:e0m3

    壓縮文件解壓密碼:www.downza.cn

    使用 Adobe Acrobat DC打開想要修改的PDF文件,點擊【準備表單】

  

    

上圖中的fill_1,就是可以修改的文本域key,雙擊可以重命名

    2.導入使用的jar包

  

       <dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itextpdf</artifactId>
            <version>5.5.5</version>
        </dependency>
        <dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itext-asian</artifactId>
            <version>5.2.0</version>
        </dependency> 

  3. 復制下面代碼,修改文件地址

  

import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Image;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.*;

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;


public class Demo {

    public static void main(String[] args) throws IOException, DocumentException {
        Map<String, Object> data = new HashMap<>();//要插入的數據
        data.put("fill_1", "隔壁老王");
        data.put("fill_2", "隔壁老李");
        //初始化itext
        //設置編碼
        BaseFont baseFont = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
        //要修改的模本文件:E:谷歌下載	emplat.pdf
        PdfReader pdfReader = new PdfReader("E:\谷歌下載\templat.pdf");
        //修改之后輸出文件地址 E:谷歌下載update_tempalte.pdf
        PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileOutputStream("E:\谷歌下載\update_tempalte.pdf"));
        AcroFields form = pdfStamper.getAcroFields();
        form.addSubstitutionFont(baseFont);

        //寫入數據
        for (String key : data.keySet()) {
            String value = data.get(key).toString();
            //key對應模板數據域的名稱
            form.setField(key, value);
        }

        //還要將圖片添加到指定的key文本域中
        int pageNo = form.getFieldPositions("fill_11_2").get(0).page;
        Rectangle signRect = form.getFieldPositions("fill_11_2").get(0).position;
        float x = signRect.getLeft();
        float y = signRect.getBottom();
        //要添加的圖片地址 C:UsersAdministratorDesktop6.jpeg
        Image image = Image.getInstance("C:\Users\Administrator\Desktop\6.jpeg");
        PdfContentByte under = pdfStamper.getOverContent(pageNo);
        //設置圖片大小
        image.scaleAbsolute(signRect.getWidth(), signRect.getHeight());
        //設置圖片位置
        image.setAbsolutePosition(x, y);
        under.addImage(image);

        //設置不可編輯
        pdfStamper.setFormFlattening(true);
        pdfStamper.close();
    }

}

  

  參考地址:https://www.cnblogs.com/mingyueyy/p/14821398.html

       https://www.cnblogs.com/ruowei/p/11419358.html

  感謝兩位大佬。

總結

以上是生活随笔為你收集整理的Java修改PDF文件内容的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。