Java 添加、替換、刪除PDF中的圖片的示例代碼
概述
本文介紹通過(guò)java程序向PDF文檔添加圖片,以及替換和刪除PDF中已有的圖片。另外,關(guān)于圖片的操作還可參考設(shè)置PDF 圖片背景、設(shè)置PDF圖片水印、讀取PDF中的圖片、將PDF保存為圖片等文章。
工具:Free Spire.PDF for Java (免費(fèi)版)
Jar獲取及導(dǎo)入:官網(wǎng)下載,并解壓將lib文件夾下的jar文件導(dǎo)入java程序,或者通過(guò)maven倉(cāng)庫(kù)下載并導(dǎo)入。
jar導(dǎo)入效果:
Java代碼示例
【示例1】添加圖片到PDF
import com.spire.pdf.*; import com.spire.pdf.graphics.*; public class AddImage { public static void main(String[] args) { //創(chuàng)建文檔 PdfDocument pdf = new PdfDocument(); //添加一頁(yè) PdfPageBase page = pdf.getPages().add(); //加載圖片,并獲取圖片高寬 PdfImage image = PdfImage.fromFile("fj.png"); int width = image.getWidth()/2; int height = image.getHeight()/2; //繪制圖片到PDF page.getCanvas().drawImage(image,50,50,width, height); //保存文檔 pdf.saveToFile("AddImage.pdf"); pdf.dispose(); } }
圖片添加效果:
【示例2】替換PDF中的圖片
import com.spire.pdf.*; import com.spire.pdf.graphics.PdfImage; public class ReplaceImage { public static void main(String[] args) { //加載PDF文檔 PdfDocument pdf = new PdfDocument(); pdf.loadFromFile("AddImage.pdf"); //獲取第一頁(yè) PdfPageBase page = pdf.getPages().get(0); //加載一張圖片 PdfImage image = PdfImage.fromFile("lh.png"); //使用加載的圖片替換第一頁(yè)上的第一張圖片 page.replaceImage(0, image); //保存文檔 pdf.saveToFile("ReplaceImage.pdf"); pdf.dispose(); } }
圖片替換效果:
【示例3】刪除PDF中的圖片
import com.spire.pdf.*; public class DeleteImage { public static void main(String[] args) { //創(chuàng)建PdfDocument對(duì)象 PdfDocument pdf = new PdfDocument(); //加載PDF文檔 pdf.loadFromFile("AddImage.pdf"); //獲取指定頁(yè) PdfPageBase page = pdf.getPages().get(0); //刪除頁(yè)面上的指定圖片 page.deleteImage(0); //保存文檔 pdf.saveToFile("DeleteSpecificImage.pdf", FileFormat.PDF); pdf.dispose(); } }
圖片刪除效果:
總結(jié)
以上所述是小編給大家介紹的Java 添加、替換、刪除PDF中的圖片的示例代碼,希望對(duì)大家有所幫助,也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Java開(kāi)發(fā)中的容器概念、分類(lèi)與用法深入詳解
這篇文章主要介紹了Java開(kāi)發(fā)中的容器概念、分類(lèi)與用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了java容器的相關(guān)概念、分類(lèi)、使用方法與注意事項(xiàng),需要的朋友可以參考下2017-11-11Seata分布式事務(wù)出現(xiàn)ABA問(wèn)題解決
這篇文章主要為大家介紹了Seata分布式事務(wù)出現(xiàn)ABA問(wèn)題解決方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11詳解Spring Cloud中Hystrix 線(xiàn)程隔離導(dǎo)致ThreadLocal數(shù)據(jù)丟失
這篇文章主要介紹了詳解Spring Cloud中Hystrix 線(xiàn)程隔離導(dǎo)致ThreadLocal數(shù)據(jù)丟失,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03使用Java語(yǔ)言將XML轉(zhuǎn)為PDF的方法
這篇文章主要介紹了使用Java語(yǔ)言將XML轉(zhuǎn)為PDF的方法,本文將介紹通過(guò)Java代碼來(lái)實(shí)現(xiàn)該格式轉(zhuǎn)換的方法,需要的朋友可以參考下2022-03-03java中Spring Security的實(shí)例詳解
這篇文章主要介紹了java中Spring Security的實(shí)例詳解的相關(guān)資料,spring security是一個(gè)多方面的安全認(rèn)證框架,提供了基于JavaEE規(guī)范的完整的安全認(rèn)證解決方案,需要的朋友可以參考下2017-09-09Java并發(fā)編程深入理解之Synchronized的使用及底層原理詳解 上
在并發(fā)編程中存在線(xiàn)程安全問(wèn)題,主要原因有:1.存在共享數(shù)據(jù) 2.多線(xiàn)程共同操作共享數(shù)據(jù)。關(guān)鍵字synchronized可以保證在同一時(shí)刻,只有一個(gè)線(xiàn)程可以執(zhí)行某個(gè)方法或某個(gè)代碼塊,同時(shí)synchronized可以保證一個(gè)線(xiàn)程的變化可見(jiàn)(可見(jiàn)性),即可以代替volatile2021-09-09MyBatis幾種不同類(lèi)型傳參的方式總結(jié)
這篇文章主要介紹了MyBatis幾種不同類(lèi)型傳參的方式總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12Spring Boot定時(shí)器創(chuàng)建及使用解析
這篇文章主要介紹了Spring Boot定時(shí)器創(chuàng)建及使用解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07java開(kāi)發(fā)分布式服務(wù)框架Dubbo暴露服務(wù)過(guò)程詳解
這篇文章主要為大家介紹了java開(kāi)發(fā)分布式服務(wù)框架Dubbo暴露服務(wù)的過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11