真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

利用java實(shí)現(xiàn)一個圖片轉(zhuǎn)PDF文件的方法

小編給大家分享一下利用java實(shí)現(xiàn)一個圖片轉(zhuǎn)PDF文件的方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

成都創(chuàng)新互聯(lián)公司主要從事網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)射陽,10年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108

出于某些需求需要將一張簡單的圖片轉(zhuǎn)換為PDF的文件格式,因此自己動手寫了一個圖片轉(zhuǎn)換PDF的系統(tǒng),現(xiàn)在將該系統(tǒng)分享在這里,供大家參考。

具體代碼:

引入依賴:



    org.springframework.boot
    spring-boot-starter-parent
    2.0.4.RELEASE
    



	
    
        org.springframework.boot
        spring-boot-starter-web
    
    
    
        com.itextpdf
        itextpdf
        5.4.2
    

前端頁面:




    
    圖片轉(zhuǎn)換Pdf
    


    

圖片轉(zhuǎn)換pdf工具


控制層接口

package com.hrp.controller;

import com.hrp.util.PdfUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;

/**
 * @description: 用于處理Pdf相關(guān)的請求
 */
@Controller
@RequestMapping("pdf")
public class PdfController {

    @PostMapping("image/to")
    public void imageToPdf(@RequestParam("file") MultipartFile file,HttpServletResponse response) throws Exception{
        PdfUtils.imageToPdf(file,response);
    }

}

PDF工具類

package com.hrp.util;

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Image;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.pdf.PdfWriter;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URLEncoder;


/**
 * @description: pdf相關(guān)的工具類
 */
@Component
public class PdfUtils {

    /**
     * 圖片轉(zhuǎn)換PDF的公共接口
     *
     * @param file     SpringMVC獲取的圖片文件
     * @param response HttpServletResponse
     * @throws IOException       IO異常
     * @throws DocumentException PDF文檔異常
     */
    public static void imageToPdf(MultipartFile file, HttpServletResponse response) throws IOException, DocumentException {
        File pdfFile = generatePdfFile(file);
        downloadPdfFile(pdfFile, response);
    }

    /**
     * 將圖片轉(zhuǎn)換為PDF文件
     *
     * @param file SpringMVC獲取的圖片文件
     * @return PDF文件
     * @throws IOException       IO異常
     * @throws DocumentException PDF文檔異常
     */
    private static File generatePdfFile(MultipartFile file) throws IOException, DocumentException {
        String fileName = file.getOriginalFilename();
        String pdfFileName = fileName.substring(0, fileName.lastIndexOf(".")) + ".pdf";
        Document doc = new Document(PageSize.A4, 20, 20, 20, 20);
        PdfWriter.getInstance(doc, new FileOutputStream(pdfFileName));
        doc.open();
        doc.newPage();
        Image image = Image.getInstance(file.getBytes());
        float height = image.getHeight();
        float width = image.getWidth();
        int percent = getPercent(height, width);
        image.setAlignment(Image.MIDDLE);
        image.scalePercent(percent);
        doc.add(image);
        doc.close();
        File pdfFile = new File(pdfFileName);
        return pdfFile;
    }

    /**
     *
     * 用于下載PDF文件
     *
     * @param pdfFile  PDF文件
     * @param response HttpServletResponse
     * @throws IOException IO異常
     */
    private static void downloadPdfFile(File pdfFile, HttpServletResponse response) throws IOException {
        FileInputStream fis = new FileInputStream(pdfFile);
        byte[] bytes = new byte[fis.available()];
        fis.read(bytes);
        fis.close();

        response.reset();
        response.setHeader("Content-Type", "application/pdf");
        response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(pdfFile.getName(), "UTF-8"));
        OutputStream out = response.getOutputStream();
        out.write(bytes);
        out.flush();
        out.close();
    }


    /**
     * 等比壓縮,獲取壓縮百分比
     *
     * @param height 圖片的高度
     * @param weight 圖片的寬度
     * @return 壓縮百分比
     */
    private static int getPercent(float height, float weight) {
        float percent = 0.0F;
        if (height > weight) {
            percent = PageSize.A4.getHeight() / height * 100;
        } else {
            percent = PageSize.A4.getWidth() / weight * 100;
        }
        return Math.round(percent);
    }
}

實(shí)現(xiàn)效果:

利用java實(shí)現(xiàn)一個圖片轉(zhuǎn)PDF文件的方法

以上是利用java實(shí)現(xiàn)一個圖片轉(zhuǎn)PDF文件的方法的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


網(wǎng)站名稱:利用java實(shí)現(xiàn)一個圖片轉(zhuǎn)PDF文件的方法
標(biāo)題網(wǎng)址:http://weahome.cn/article/goechj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部