电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Java實現圖片轉換PDF文件的示例代碼

瀏覽:5日期:2022-08-25 16:51:09

最近因為一些事情,需要將一張簡單的圖片轉換為PDF的文件格式,在網上找了一些工具,但是這些工具不是需要注冊賬號,就是需要下載軟件。

而對于只是轉換一張圖片的情況下,這些操作顯然是非常繁瑣的,所以作者就直接使用Java寫了一個圖片轉換PDF的系統,現在將該系統分享在這里。

引入依賴

<!--該項目以SpringBoot為基礎搭建--><parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.4.RELEASE</version> <relativePath/></parent><dependencies><!--SpringMVC的依賴,方便我們可以獲取前端傳遞過來的文件信息--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--ITextPdf,操作PDF文件的工具類--> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.4.2</version> </dependency></dependencies>

前端頁面

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>圖片轉換Pdf</title> <style> .submitButton { margin-top: 20px; margin-left: 150px; background-color: #e37e10; border-radius: 10px; border: 1px solid #ff8300; } </style></head><body> <div style='text-align: center'> <h1>圖片轉換pdf工具</h1> <form action='/pdf/image/to' enctype='multipart/form-data' method='post' onsubmit='return allowFileType()'> <input type='file' name='file' placeholder='請選擇圖片' onchange='allowFileType()' style='border: 1px solid black;'><br> <input type='submit' value='一鍵轉換pdf文件' class='submitButton'> </form> </div></body><script> function allowFileType() { let file = document.getElementById('file').files[0]; let fileName = file.name; console.log(fileName) let fileSize = file.size; console.log(fileSize) let suffix = fileName.substring(fileName.lastIndexOf('.'),fileName.length); if(’.jpg’ != suffix && ’.png’ != suffix) { alert('目前只允許傳入.jpg或者.png格式的圖片!'); return false; } if(fileSize > 2*1024*1024) { alert('上傳圖片不允許超過2MB!'); return false; } return true; }</script></html>

控制層接口

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相關的請求 */@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相關的工具類 */@Componentpublic class PdfUtils { /** * 圖片轉換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); } /** * 將圖片轉換為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); }}

頁面效果

Java實現圖片轉換PDF文件的示例代碼

這就是系統啟動之后的頁面效果,雖然頁面比較簡陋,但是功能卻沒有任何折扣,有興趣或者有需要的同學可以自己搭建一下,試一試圖片轉換PDF文件的效果。

注意:作者自己測試了一下,普通圖片基本是沒有問題的,但是遇到一些特殊的圖片可能會出現異常,畢竟只是一個比較簡單的圖片轉換PDF系統,難以兼容所有圖片。

到此這篇關于Java實現圖片轉換PDF文件的示例代碼的文章就介紹到這了,更多相關Java 圖片轉換PDF內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
主站蜘蛛池模板: 干式磁选机_湿式磁选机_粉体除铁器-潍坊国铭矿山设备有限公司 | 小型手持气象站-空气负氧离子监测站-多要素微气象传感器-山东天合环境科技有限公司 | YJLV22铝芯铠装电缆-MYPTJ矿用高压橡套电缆-天津市电缆总厂 | 昆明网络公司|云南网络公司|昆明网站建设公司|昆明网页设计|云南网站制作|新媒体运营公司|APP开发|小程序研发|尽在昆明奥远科技有限公司 | 剪刃_纵剪机刀片_分条机刀片-南京雷德机械有限公司 | 钛合金标准件-钛合金螺丝-钛管件-钛合金棒-钛合金板-钛合金锻件-宝鸡远航钛业有限公司 | 深圳天际源广告-形象堆头,企业文化墙,喷绘,门头招牌设计制作专家 | 低压载波电能表-单相导轨式电能表-华邦电力科技股份有限公司-智能物联网综合管理平台 | 合肥仿石砖_合肥pc砖厂家_合肥PC仿石砖_安徽旭坤建材有限公司 | 不发火防静电金属骨料_无机磨石_水泥自流平_修补砂浆厂家「圣威特」 | 电磁铁_小型推拉电磁铁_电磁阀厂家-深圳市宗泰电机有限公司 | IHDW_TOSOKU_NEMICON_EHDW系列电子手轮,HC1系列电子手轮-上海莆林电子设备有限公司 | 翅片管散热器价格_钢制暖气片报价_钢制板式散热器厂家「河北冀春暖气片有限公司」 | 艺术涂料|木纹漆施工|稻草漆厂家|马来漆|石桦奴|水泥漆|选加河南天工涂料 | 不锈钢酒柜|恒温酒柜|酒柜定制|酒窖定制-上海啸瑞实业有限公司 | 无菌检查集菌仪,微生物限度仪器-苏州长留仪器百科 | 红酒招商加盟-葡萄酒加盟-进口红酒代理-青岛枞木酒业有限公司 | 温室大棚建设|水肥一体化|物联网系统 | 【黄页88网】-B2B电子商务平台,b2b平台免费发布信息网 | 铝合金风口-玻璃钢轴流风机-玻璃钢屋顶风机-德州东润空调设备有限公司 | 飞飞影视_热门电影在线观看_影视大全| 昆明网络公司|云南网络公司|昆明网站建设公司|昆明网页设计|云南网站制作|新媒体运营公司|APP开发|小程序研发|尽在昆明奥远科技有限公司 | 陕西安玻璃自动感应门-自动重叠门-磁悬浮平开门厂家【捷申达门业】 | 山东风淋室_201/304不锈钢风淋室净化设备厂家-盛之源风淋室厂家 翻斗式矿车|固定式矿车|曲轨侧卸式矿车|梭式矿车|矿车配件-山东卓力矿车生产厂家 | 山东臭氧发生器,臭氧发生器厂家-山东瑞华环保设备 | Dataforth隔离信号调理模块-信号放大模块-加速度振动传感器-北京康泰电子有限公司 | 臭氧实验装置_实验室臭氧发生器-北京同林臭氧装置网 | 胶水,胶粘剂,AB胶,环氧胶,UV胶水,高温胶,快干胶,密封胶,结构胶,电子胶,厌氧胶,高温胶水,电子胶水-东莞聚力-聚厉胶粘 | 新能源汽车电机定转子合装机 - 电机维修设备 - 睿望达 | 岛津二手液相色谱仪,岛津10A液相,安捷伦二手液相,安捷伦1100液相-杭州森尼欧科学仪器有限公司 | 农业四情_农业气象站_田间小型气象站_智慧农业气象站-山东风途物联网 | 聚合氯化铝-碱式氯化铝-聚合硫酸铁-聚氯化铝铁生产厂家多少钱一吨-聚丙烯酰胺价格_河南浩博净水材料有限公司 | 莱州网络公司|莱州网站建设|莱州网站优化|莱州阿里巴巴-莱州唯佳网络科技有限公司 | 北京宣传片拍摄_产品宣传片拍摄_宣传片制作公司-现像传媒 | 高效复合碳源-多核碳源生产厂家-污水处理反硝化菌种一长隆科技库巴鲁 | PC构件-PC预制构件-构件设计-建筑预制构件-PC构件厂-锦萧新材料科技(浙江)股份有限公司 | 定制防伪标签_防伪标签印刷_防伪标签厂家-510品保防伪网 | 2025世界机器人大会_IC China_半导体展_集成电路博览会_智能制造展览网 | 高柔性拖链电缆_卷筒电缆_耐磨耐折聚氨酯电缆-玖泰特种电缆 | 作文导航网_作文之家_满分作文_优秀作文_作文大全_作文素材_最新作文分享发布平台 | 有机肥设备生产制造厂家,BB掺混肥搅拌机、复合肥设备生产线,有机肥料全部加工设备多少钱,对辊挤压造粒机,有机肥造粒设备 -- 郑州程翔重工机械有限公司 |