使用 JS 和 CSS 做一个图片到 PDF 的转换器
本文正在参与【[ 面霸养成记 ] 】 征文活动,一起来聊聊校招的那些事吧,牛客周边和百元京东卡等你来领~
哈喽大家好,我是 海拥 ,专注于前端知识的分享。今天将给大家带来的是使用 JS 和 CSS 做一个图片到 PDF 的转换器,可以说是非常的实(duo)用(yu)了。
大家一定要记得点赞收藏呀!!!
这是一个比较简单的 JavaScript 项目,可以将图片转换为 PDF 文件。不过除了图片之外的其他文件类型暂时还转换不了(别问,问就是能力有限)。我们可以从 HTML 中获得不同类型的输入。其中之一就是文件,这里我选择用只接受输入".png, .jpg, .jpeg"中的图片,所以你们也只能选择这些图片类型。
JavaScript 实现图片转 PDF
在线演示地址:https://haiyong.site/tools/pdf.html
如你所见,我们现在已经在渐变背景上创建了一个框。这个盒子有一个小显示器,你可以在该框中看到选定的图片,这就是后面我们要转换为 PDF 的图片。
如何使用 JavaScript 将图片转换为 pdf ?这个PDF转换器有两个按钮。一个按钮用来选择图片,一按钮转用来下载 PDF 文件。 不过这里有个问题是你不能一次选择多个图片。
第一步: PDF Converter的基本结构
项目的基本结构是使用以下 HTML 和 CSS 创建的。首先我们为网页添加了渐变背景色,然后创建一个盒子。
HTML
<div class="container"> </div>
CSS
*, *:after, *:before{ -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box; } body{ font-family: arial; font-size: 16px; margin: 0; background: linear-gradient(133deg, #4abeb2, #3c57d2); color: #000; display: flex; align-items: center; justify-content: center; min-height: 100vh; } .container{ background: white; width: 450px; padding: 30px; border-radius: 5px; }
第二步: 图片预览框
现在已经创建了一个可以查看图片的区域。n可以在此处看到你将选择转换为 PDF 的图片的预览。这个盒子使用最大宽度 400px 和最小高度 200px.
HTML
<img id="showImg" src="images/img.png">
CSS
#showImg{ display: block; margin: 0 auto; max-width: 400px; min-height: 200px; background: #174353; border-radius: 5px; }
第 3 步: 图片到 PDF 转换器的按钮
现在已经创建了两个按钮。第一个按钮是使用输入创建的,用来选择文件,第二个按钮用来下载 PDF 文件。
HTML
<div class="button"> <div class="upload"> <input type="file" onChange="loadFile(event)" name="" accept=".png, .jpg, .jpeg"> 上传图片 </div> <button onClick="pdfDown()">下载PDF</button> </div>
CSS
input{ position: absolute; left: 0; top: 0; width: 100%; height: 100%; opacity: 0; z-index: 1; } .button{ display: flex; } button,.upload{ width: 220px; margin: 50px 20px 10px 20px ; text-align: center; position: relative; padding: 10px 5px; font-size: 17px; outline: none; color: #fff; border: none; background-color: #023780; border-radius: 5px; display: block; } .upload{ background: #a74901; }
第 4 步: 在 JavaScript 中实现图片转换到 PDF
现在是时候使用 JS 实现图片到 PDF 的转换了。
JavaScript
var newImage, showImg; function loadFile(event) { showImg = document.getElementById('showImg'); showImg.src = URL.createObjectURL(event.target.files[0]); newImage = document.createElement('img'); newImage.src = URL.createObjectURL(event.target.files[0]); showImg.onload = function() { URL.revokeObjectURL(showImg.src) } }; function pdfDown(){ console.log(newImage) var doc = new jsPDF(); doc.addImage(newImage,10,10); doc.save('ImgToPDF.pdf') }
完整代码
完整源码已经打包上传到了GitHub,地址:https://github.com/wanghao221/moyu
相信看到这里你应该也基本掌握了是如何使用上面的代码做一个图片-PDF 转换器的。如果有任何问题,都可以在评论区告诉我。
最后,不要忘了❤或📑支持一下哦,你的支持是海海更新的动力!关注我后面会持续分享面试经验 & 前端相关的专业知识。
最后祝大家都能找到满意的实习和 offer!