欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java實(shí)現(xiàn)在pdf模板的指定位置插入圖片

 更新時(shí)間:2018年10月30日 11:53:41   作者:yieku  
這篇文章主要為大家詳細(xì)介紹了java如何實(shí)現(xiàn)在pdf模板的指定位置插入圖片,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了java在pdf模板的指定位置插入圖片的具體代碼,供大家參考,具體內(nèi)容如下

java操作pdf有個非常好用的庫itextpdf,maven:

<dependency>
  <groupId>com.itextpdf</groupId>
  <artifactId>itextpdf</artifactId>
  <version>5.5.6</version>
</dependency>
<!-- itextpdf的亞洲字體支持 -->
<dependency>
  <groupId>com.itextpdf</groupId>
  <artifactId>itext-asian</artifactId>
  <version>5.2.0</version>
</dependency>

思路:

  • Adobe的Acrobat可以對pdf進(jìn)行編輯,在文檔中插入域,這個插入的域就是圖片的位置。這兒有關(guān)于域的介紹,但是這不重要,我們只是把域作為一個占位符用;
  • 利用itextpdf得到目標(biāo)域所在的頁面、位置、大小;
  • 利用域的坐標(biāo),把圖片以絕對位置的方式插入到pdf中。

代碼

public static void main(String[] args) throws Exception {
    // 模板文件路徑
    String templatePath = "template.pdf";
    // 生成的文件路徑
    String targetPath = "target.pdf";
    // 書簽名
    String fieldName = "field";
    // 圖片路徑
    String imagePath = "image.jpg";

    // 讀取模板文件
    InputStream input = new FileInputStream(new File(templatePath));
    PdfReader reader = new PdfReader(input);
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(targetPath));
    // 提取pdf中的表單
    AcroFields form = stamper.getAcroFields();
    form.addSubstitutionFont(BaseFont.createFont("STSong-Light","UniGB-UCS2-H", BaseFont.NOT_EMBEDDED));

    // 通過域名獲取所在頁和坐標(biāo),左下角為起點(diǎn)
    int pageNo = form.getFieldPositions(fieldName).get(0).page;
    Rectangle signRect = form.getFieldPositions(fieldName).get(0).position;
    float x = signRect.getLeft();
    float y = signRect.getBottom();

    // 讀圖片
    Image image = Image.getInstance(imagePath);
    // 獲取操作的頁面
    PdfContentByte under = stamper.getOverContent(pageNo);
    // 根據(jù)域的大小縮放圖片
    image.scaleToFit(signRect.getWidth(), signRect.getHeight());
    // 添加圖片
    image.setAbsolutePosition(x, y);
    under.addImage(image);

    stamper.close();
    reader.close();
  }

參考

How to show an image at a text field position?

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 一文帶你了解Java中的ForkJoin

    一文帶你了解Java中的ForkJoin

    這篇文章主要介紹了一文帶你了解Java中的ForkJoin,F(xiàn)orkJoinTask本身的依賴關(guān)系并不復(fù)雜,它與異步任務(wù)計(jì)算FutureTask一樣均實(shí)現(xiàn)了Future接口,下文更多相關(guān)資料,需要的小伙伴可以參考一下
    2022-04-04
  • JavaWeb中的Filter過濾器解讀

    JavaWeb中的Filter過濾器解讀

    這篇文章主要介紹了JavaWeb中的Filter過濾器解讀,Filter過濾器是JavaWeb的三大組件之一,Filter過濾器是JavaEE的規(guī)范也就是接口,Filter的作用是攔截請求,過濾響應(yīng),需要的朋友可以參考下
    2023-10-10
  • 基于java中BlockingQueue的使用介紹

    基于java中BlockingQueue的使用介紹

    本篇文章小編為大家介紹,基于java中BlockingQueue的使用介紹。需要的朋友參考下
    2013-04-04
  • SpringBoot整合新版SpringSecurity完整過程

    SpringBoot整合新版SpringSecurity完整過程

    Spring Security是保障Spring應(yīng)用程序安全的強(qiáng)大框架,而新版的Spring Security引入了lambda表達(dá)式來配置,使得安全配置更加簡潔、優(yōu)雅,本文將介紹如何在Spring Boot項(xiàng)目中整合新版Spring Security,需要的朋友可以參考下
    2024-02-02
  • spring?retry方法調(diào)用失敗重試機(jī)制示例解析

    spring?retry方法調(diào)用失敗重試機(jī)制示例解析

    這篇文章主要為大家介紹了spring?retry方法調(diào)用失敗重試機(jī)制的示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-03-03
  • Java_Spring之XML?的?AOP?配置

    Java_Spring之XML?的?AOP?配置

    這篇文章主要介紹了Java_Spring中基于XML的AOP配置,上篇講到的是基于注解的AOP配置,對XML感興趣的同學(xué)可以參考閱讀本文
    2023-04-04
  • springboot上傳文件過大的500異常解決

    springboot上傳文件過大的500異常解決

    這篇文章主要介紹了springboot上傳文件過大的500異常解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Mybatis-plus常見的坑@TableField不生效問題

    Mybatis-plus常見的坑@TableField不生效問題

    這篇文章主要介紹了Mybatis-plus常見的坑@TableField不生效問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • JAVA中五個重定向的方式盤點(diǎn)

    JAVA中五個重定向的方式盤點(diǎn)

    頁面重定向即頁面從當(dāng)前請求的頁面,有條件或者定時(shí)跳轉(zhuǎn)到其他頁面,下面這篇文章主要給大家介紹了關(guān)于JAVA中五個重定向的方式,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • Java獲取指定字符串出現(xiàn)次數(shù)的方法

    Java獲取指定字符串出現(xiàn)次數(shù)的方法

    這篇文章主要為大家詳細(xì)介紹了Java獲取指定字符串出現(xiàn)次數(shù)的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12

最新評論