java PDF添加圖層的方法 支援多頁圖層添加,pdf多頁

來源:互聯網
上載者:User

java PDF添加圖層的方法 支援多頁圖層添加,pdf多頁

 java PDF添加圖層,支援多頁圖層添加,具體如下

代碼:

import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.util.List;import com.itextpdf.text.DocumentException;import com.itextpdf.text.Image;import com.itextpdf.text.pdf.PdfContentByte;import com.itextpdf.text.pdf.PdfReader;import com.itextpdf.text.pdf.PdfStamper;public class PdfUtils { /**  * PDF添加圖層  *   * @param srcPdf  *   原PDF檔案路徑  * @param distPdf  *   合成PDF輸出路徑  * @param layerPathArr  *   圖層路徑列表,圖層名稱需為數字(按照圖片名稱數字順序合成在PDF對應頁數上)  * @return  * @throws IOException  * @throws DocumentException  */ public static String markLocalImage42Dist(String srcPdf, String distPdf, List<String> layerPathArr)   throws IOException, DocumentException {   File srcPdfFile = new File(srcPdf);   if (!srcPdfFile.exists()) {    throw new IllegalArgumentException("找不到需要添加圖層的pdf檔案");   }   PdfReader reader = new PdfReader(srcPdf);   int n = reader.getNumberOfPages(); // PDF頁數   PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(distPdf));   PdfContentByte over;   for (String layerPath : layerPathArr) {    File layerFile = new File(layerPath);    String currentPageNo = layerFile.getName().substring(0, layerFile.getName().lastIndexOf(".")); // 圖片名稱(對應頁數)    boolean isNum = currentPageNo.matches("[0-9]+");    if (!isNum) {     throw new IllegalArgumentException("圖層名稱是不是數字");    }    Image img = Image.getInstance(layerPath);    img.setAbsolutePosition(0, 0);    if (n > 0 && n >= Integer.parseInt(currentPageNo)) {     over = stamp.getOverContent(Integer.parseInt(currentPageNo));     over.addImage(img);    }   }   stamp.close();   reader.close();  return distPdf; }}

測試:

public static void main(String[] args) throws IOException, DocumentException {  List<String> imgUrlList = new ArrayList<>();  imgUrlList.add("D:/ts/testPDF/1.png");  //imgUrlList.add("D:/ts/testPDF/2.png");  imgUrlList.add("D:/ts/testPDF/3.png");  markLocalImage42Dist("D:/ts/testPDF/testPDF.pdf", "D:/ts/testPDF/testPDF2.pdf", imgUrlList); }

結果:

原PDF:

合成後PDF:

以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援幫客之家。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.