国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

java實現(xiàn)pdf文件添加水印,下載到瀏覽器

這篇具有很好參考價值的文章主要介紹了java實現(xiàn)pdf文件添加水印,下載到瀏覽器。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

java實現(xiàn)pdf文件添加水印,下載到瀏覽器

添加itextpdf依賴

<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>itextpdf</artifactId>
    <version>5.5.8</version>
</dependency>

文件下載到瀏覽器和指定路徑

根據(jù)需求,不需要指定路徑可以刪除對應(yīng)的輸出流

public void addPDFImageWaterMark(MultipartFile srcFile, MultipartFile imagePath, HttpServletResponse response) {
    String fileName = "test.pdf";
    PdfReader reader = null;
    PdfStamper stamper = null;
    FileInputStream fileInputStream = null;
  	//這個輸出流要放入PdfStamper構(gòu)造方法中,這里也會下載一個文件,不需要的話可以在finally中刪除
 		FileOutputStream fileOutputStream = null;
  	//下載到你指定的路徑,try里面new的路徑,不需要下載到指定路徑可以刪除
    FileOutputStream fos = null;
    // 設(shè)置響應(yīng)頭,指定內(nèi)容類型和文件名,準(zhǔn)備下載到瀏覽器,下載到指定位置,不需要下載到瀏覽器可以刪除這個輸出流
    ServletOutputStream outputStream = null;
    response.setContentType("application/pdf");
    response.setHeader("Content-Disposition", "attachment; filename=" + srcFile.getOriginalFilename());
    try {
        outputStream = response.getOutputStream();
        //如果是路徑的話可以使用另一個構(gòu)造方法reader = new PdfReader(srcPath);
        reader = new PdfReader(srcFile.getBytes());
        fileOutputStream = new FileOutputStream(fileName);
        stamper = new PdfStamper(reader, fileOutputStream);
        //加載圖片
        //如果是路徑的話可以使用另一個構(gòu)造方法Image image =Image.getInstance(imagePath);
        Image image = Image.getInstance(imagePath.getBytes());
        //將圖片控制大小,適配這個大小
        image.scaleToFit(200, 100);

        PdfGState gs = new PdfGState();
        //gs.setFillOpacity(0.2f);//圖片水印透明度
        //gs.setStrokeOpacity(0.4f);//設(shè)置筆觸字體不透明度
        PdfContentByte content = null;

        int total = reader.getNumberOfPages();//pdf文件頁數(shù)
        for (int i = 0; i < total; i++) {
            float x = reader.getPageSize(i + 1).getWidth();//頁寬度
            float y = reader.getPageSize(i + 1).getHeight();//頁高度
            content = stamper.getOverContent(i + 1);
            content.setGState(gs);
            content.beginText();//開始寫入

            //每頁7行,一行3個
            for (int j=0; j<3; j++) {
                for (int k=0; k<7; k++) {
                    //setAbsolutePosition 方法的參數(shù)(輸出水印X軸位置,Y軸位置)
                    image.setAbsolutePosition(x/3*j-30, y/7*k-20);
                    content.addImage(image);
                }
            }
            content.endText();//結(jié)束寫入
        }
        //要先關(guān)閉流才能將生成的文件寫到指定地方?。?!
        stamper.close();
        reader.close();
        //指定這個文件(這里我用的相對路徑)
        fileInputStream = new FileInputStream(fileName);
        //創(chuàng)建輸出流,下載到指定路徑
        fos = new FileOutputStream("test1.pdf");
        byte[] buffer = new byte[1024];
        int bytesRead = 0;
        while ((bytesRead = fileInputStream.read(buffer)) != -1) {
            // 瀏覽器下載
            outputStream.write(buffer, 0, bytesRead);
            //下載到指定路徑
            fos.write(buffer, 0, bytesRead);
        }
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {
            //關(guān)閉流
            if (stamper != null) {
                stamper.close();
            }
            if (reader != null) {
                reader.close();
            }
            if (fos != null) {
                fos.close();
            }
            if (fileInputStream != null) {
                fileInputStream.close();
            }
            if (fileOutputStream != null) {
                fileOutputStream.close();
            }
            if (outputStream != null) {
                outputStream.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

效果如下:代碼中的相對路徑在src平級目錄下,test.pdf是PdfStamper里面fileOutputStream生成的,test1.pdf是fos生成的

java實現(xiàn)pdf文件添加水印,下載到瀏覽器,java基礎(chǔ),java

瀏覽器下載的如下:

java實現(xiàn)pdf文件添加水印,下載到瀏覽器,java基礎(chǔ),java

生成的pdf內(nèi)容如下(紅框里面是pdf原來的內(nèi)容,可以自己調(diào)整代碼中注釋掉的設(shè)置水印透明度來調(diào)整)

java實現(xiàn)pdf文件添加水印,下載到瀏覽器,java基礎(chǔ),java

提供的前端代碼自行測試文章來源地址http://www.zghlxwxcb.cn/news/detail-743022.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

    <h2>測試PDF添加水印</h2>
    <form method="post" action="http://localhost:8080/addPDFImageWaterMark" enctype="multipart/form-data">
        <label for="srcFile">選擇PDF文件:</label>
        <input type="file" name="srcFile" id="srcFile" accept=".pdf" required>
        <br>
        <label for="imagePath">選擇水印圖片:</label>
        <input type="file" name="imagePath" id="imagePath" accept=".jpg, .png" required>
        <br>
        <button type="submit">添加水印并下載</button>
    </form>

</body>
</html>

到了這里,關(guān)于java實現(xiàn)pdf文件添加水印,下載到瀏覽器的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 微信公眾號 - 實現(xiàn) H5 網(wǎng)頁在微信內(nèi)置瀏覽器中下載文件,可預(yù)覽和下載 office 文件(doc / xls / ppt / pdf 等)適用于任何前端技術(shù)棧網(wǎng)站,兼容安卓和蘋果系統(tǒng)!

    微信公眾號 - 實現(xiàn) H5 網(wǎng)頁在微信內(nèi)置瀏覽器中下載文件,可預(yù)覽和下載 office 文件(doc / xls / ppt / pdf 等)適用于任何前端技術(shù)棧網(wǎng)站,兼容安卓和蘋果系統(tǒng)!

    網(wǎng)上的教程都是讓你寫頁面 “引導(dǎo)” 右上角三個點里,讓用戶自己去瀏覽器打開,其實這樣用戶體驗并不好。 本文實現(xiàn)了 最新微信公眾號 H5 網(wǎng)頁(微信內(nèi)置瀏覽器中),預(yù)覽下載 office 文件,安卓和蘋果全都支持! 您可以直接復(fù)制代碼,移植到自己項目中去, 任何前端項

    2024年01月21日
    瀏覽(37)
  • Vue3實現(xiàn)PDF文件預(yù)覽 (低版本瀏覽器兼容)

    Vue3實現(xiàn)PDF文件預(yù)覽 (低版本瀏覽器兼容)

    前言: ????????最近和小伙伴們一起合作完成一個企業(yè)級知識庫項目,其中一個功能就是后端把所有格式的文件轉(zhuǎn)換為PDF,前端實現(xiàn)渲染PDF文件從而實現(xiàn)預(yù)覽,干了整整一周(考慮到低版本瀏覽器的兼容),試用了幾種方案(iframe預(yù)覽已被廢棄,不適用本項目,想了解的同學(xué)

    2024年01月20日
    瀏覽(30)
  • Java pdf添加文字水印

    Java pdf添加文字水印

    最近在開發(fā)一個項目,其中就有導(dǎo)出的功能,而甲方提了一個需求,要對導(dǎo)出的pdf加文字水印,所以我就加班了整整10分鐘肝出了這個功能,既然做出來了就和大家分享一下吧,拿走不謝!?。?總共就三步,非常簡單 1.導(dǎo)入maven依賴 2.PDF增加水印工具類 3.運行工具類下面的m

    2024年02月12日
    瀏覽(30)
  • Aspose.Pdf使用教程:在PDF文件中添加水印

    Aspose.PDF ?是一款高級PDF處理API,可以在跨平臺應(yīng)用程序中輕松生成,修改,轉(zhuǎn)換,呈現(xiàn),保護和打印文檔。無需使用Adobe Acrobat。此外,API提供壓縮選項,表創(chuàng)建和處理,圖形和圖像功能,廣泛的超鏈接功能,圖章和水印任務(wù),擴展的安全控件和自定義字體處理。本文將為你

    2024年02月01日
    瀏覽(22)
  • Vue實現(xiàn)下載文件而非瀏覽器直接打開

    Vue實現(xiàn)下載文件而非瀏覽器直接打開

    對于一個txt文本、圖片、視頻、音頻等瀏覽器可以直接使用瀏覽器進行預(yù)覽的文件, 使用傳統(tǒng)的a標(biāo)簽加download屬性進行下載是行不通的,會在瀏覽器直接打開,因此需要搞一個新的方式進行下載。 實現(xiàn)思路 這里使用Vue自定義指令,對文件鏈接進行處理,將鏈接轉(zhuǎn)化為blob進行

    2023年04月16日
    瀏覽(26)
  • Java給PDF文檔添加水印信息

    ? ? ? ? 在word生成pdf后,或者上傳pdf文件,用戶希望給pdf文檔添加水印信息,具體代碼如下 ? 一. 首先pom中需要引入 核心代碼如下,寫在某個 service 下面 用到的實體類 ?方法測試

    2024年02月09日
    瀏覽(28)
  • SpringBoot 實現(xiàn) PDF 添加水印

    SpringBoot 實現(xiàn) PDF 添加水印

    PDF(Portable Document Format,便攜式文檔格式)是一種流行的文件格式,它可以在多個操作系統(tǒng)和應(yīng)用程序中進行查看和打印。在某些情況下,我們需要對 PDF 文件添加水印,以使其更具有辨識度或者保護其版權(quán)。本文將介紹如何使用 Spring Boot 來實現(xiàn) PDF 添加水印的方式。 PDFBox

    2024年02月09日
    瀏覽(31)
  • SpringBoot實現(xiàn)pdf添加水印

    SpringBoot實現(xiàn)pdf添加水印

    在某些情況下,我們需要對 PDF 文件添加水印,以使其更具有辨識度或者保護其版權(quán)。本文將介紹幾種方案來實現(xiàn)PDF添加水印。 git地址:https://gitee.com/ninesuntec/pdf-add-watermark PDFBox 是一個流行的、免費的、用 Java 編寫的庫,它可以用來創(chuàng)建、修改和提取 PDF 內(nèi)容。PDFBox 提供了許

    2024年02月13日
    瀏覽(22)
  • SpringBoot 實現(xiàn) PDF 添加水印方案

    PDF(Portable Document Format,便攜式文檔格式)是一種流行的文件格式,它可以在多個操作系統(tǒng)和應(yīng)用程序中進行查看和打印。在某些情況下,我們需要對 PDF 文件添加水印,以使其更具有辨識度或者保護其版權(quán)。本文將介紹如何使用 Spring Boot 來實現(xiàn) PDF 添加水印的方式。 PDFBox

    2024年02月13日
    瀏覽(27)
  • JAVA PDF 給PDF添加文字/圖片水?。ㄖ付▋?nèi)容),并且設(shè)置位置

    JAVA PDF 給PDF添加文字/圖片水?。ㄖ付▋?nèi)容),并且設(shè)置位置

    提示:看完這個簡單的demo 后就知道怎樣去操作一個PDF了 文章目錄 前言 一、前提準(zhǔn)備 二、使用步驟 1.引入庫 2.以下是部分代碼的作用 總結(jié) 提示:操作PDF其實是一件很簡單的事情,比一般的CRUD都簡單 例如:我們拿到了一個需求,我需要給這個PDF設(shè)置一個 電子簽名 ( 就是一

    2024年04月23日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包