写点什么

开源一夏 | 使用 JavaScript 和 CSS 做一个图片转 PDF 的转换器

  • 2022 年 8 月 08 日
  • 本文字数:1707 字

    阅读完需:约 6 分钟

开源一夏 | 使用 JavaScript 和 CSS 做一个图片转 PDF 的转换器

这是一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件。但是除了图片之外,其他文件不可以在此处转换为 PDF。我使用 HTML 添加了不同的元素并创建了一个输入框来选择图像。


我们从 HTML 中获得不同类型的输入。其中之一是文件。文件输入将帮助你从设备中选择任何文件。这里我们仅用 = ".png, .jpg, .jpeg"选择接受输入中的图像,因此只能选择这些图片。

JavaScript 实现图片转 PDF

在线演示地址:https://haiyong.site/tools/pdf.html

码上掘金地址:https://code.juejin.cn/pen/7123470043216052260


如你所见,已在渐变背景上创建了一个框。首先,这个盒子有一个小显示器。你可以在该框中看到选定的图像。这将使你知道要转换为 PDF 的图像。



但是,这里的问题是你不能一次选择多个图像。PDF 文件将由图像创建。


如何使用 JavaScript 将图像转换为 pdf ?这个 PDF 转换器有两个按钮。一键选择图片,一键转换并下载为 PDF 文件。


当你单击上传或选择按钮时,你可以从设备中选择任何图像。当你点击下载按钮时,你的图像将被转换为 PDF 并下载。使用很少的 HTML、CSS 和 JavaScript 就可以很容易地构建。

第一步: PDF Converter 的基本结构

项目的基本结构是使用以下 HTML 和 CSS 创建的。首先,为网页添加了渐变背景色。然后创建盒子。


<div class="container">
</div>
复制代码


*,*: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;}
复制代码


第二步: 图片预览框

现在已经创建了一个可以查看图像的区域。这意味着可以在此处看到你将选择转换为 PDF 的图像的预览。这个盒子使用最大宽度:400px 和最小高度:200px.


<img id="showImg" src="images/img.png">
复制代码


#showImg{ display: block; margin: 0 auto; max-width: 400px; min-height: 200px; background: #174353; border-radius: 5px;}
复制代码


第 3 步: 图像到 PDF 转换器的按钮

现在已经创建了两个按钮。第一个按钮是使用输入创建的,它将基本上选择文件。第二个按钮下载 PDF 文件。


 <div class="button">   <div class="upload">    <input type="file" onChange="loadFile(event)" name="" accept=".png, .jpg, .jpeg">    上传图片  </div>  <button onClick="pdfDown()">下载PDF</button></div>
复制代码


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

现在是时候使用 JavaScript 实现图片到 PDF 的转换了。


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')}
复制代码



希望使用上面的代码你知道我是怎样为 PDF 转换器创建这个 JavaScript 图像的。如果有任何问题,可以在评论区告诉我。


完整源码已开源放至 GitHub:https://github.com/wanghao221/moyu

发布于: 2022 年 08 月 08 日阅读数: 72
用户头像

公众号:海拥 2021.11.29 加入

【个人网站】haiyong.site 【联系方式】微信:wh18363 【软件技能】前端,Java,Python 【个人称号】InfoQ 写作社区签约作者,华为云享专家,CSDN原力作者,全栈领域优质创作者,掘金2021年度人气作者No.21

评论

发布
暂无评论
开源一夏 | 使用 JavaScript 和 CSS 做一个图片转 PDF 的转换器_JavaScript_海拥(haiyong.site)_InfoQ写作社区