我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么在前端中实现一个打印图像功能

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么在前端中实现一个打印图像功能

本篇文章给大家分享的是有关怎么在前端中实现一个打印图像功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

一.  尝试LODOP打印插件

之前前端表单打印功能有使用过LODOP打印插件,需安装相应的LODOP的打印软件,lodop的使用方法2种。第一种方式是通过收集前端标签内容元素成对象 var   htmlstr= $("#ECGReport").html(); 通过 LODOP.ADD_PRINT_HTM(20,60, 400, 900,htmlstr); 的lodop方法导入到自带编辑的打印软件中进行打印,当然字体大小,颜色,加粗等都可以设置;第二种是自定义内容,模板样式已确定,可通过方法将打印内容一块块放入到打印区域中, LODOP.ADD_PRINT_HTM(20,60, 400, 900,'生成报告'); 并调节左右边距;但是使用第一种方式收集标签元素内容时候,发现不能收集到canvas里面的图层样式和内容,并果断放弃,如果网页无canvas绘制内容,可使用;

优点:可自定义打印内容和样式,打印百分比也可以编辑;缺点:需下载安装打印lodop打印软件,页面canvas的内容无法提取到打印区域;

二. 尝试前端window.print()

优点:代码编写方便,如配合谷歌浏览器提供的打印功能,操作很方便;

缺点:如整页有部分是打印内容,打印区域不方便控制,有一定失真;

三.尝试html2canvas + jsPDF.js

html2canvas(document.querySelector('#modelContents'), {   allowTaint: true, taintTest: false, scale: '1', dpi: '300', background: '#fff'}) .then(function(canvas) {  //元素id为exportContent  let ctx =canvas.getContext("2d");  var imgData = canvas.toDataURL('image/png') var img = new Image()  var contentWidth = canvas.width; var contentHeight = canvas.height; img.class="lazy" data-src = imgData;  $("#ECGReport").append(img);  img.width =1000; img.height = 740;  //a4纸的尺寸[595.28,841.89],html页面生成的canvas在pdf中图片的宽高 var imgWidth = 595.28; var imgHeight = 555.28/contentWidth * contentHeight;  //根据图片的尺寸设置pdf的规格,要在图片加载成功时执行,之所以要*0.5是因为比例问题  img.onload = function () {  //此处需要注意,pdf横置和竖置两个属性,需要根据宽高的比例来调整,不然会出现显示不完全的问题   var doc='' if (this.width > this.height) {    doc = new jsPDF('l','px', [1000, 720])   } else {   doc = new jsPDF('p','pt', [4000, 2960])   }  doc.addImage(imgData, 'png', 30, 40, 500, 360,'NONE') //比例可根据需要调节 //根据下载保存成不同的文件名 doc.save('pdf_' + new Date().getTime() + '.pdf') };})

通过html2canvas的方法将canvas和表单内容提取出并转成图片,canvas内容不会丢失,为了防止图像内容失真严重,将原图内容放大倍数之后提取,放大倍数的计算可通过A4纸张的大小和打印机的分辨率300dpi等参数算出差不多为4倍,1920*1080的电脑屏幕dpi一般为72dpi,通过jsPDF的方法将图片导入到PDF文档中;

其实也可以通过jsPDF的方法去编辑报告单中的患者姓名等信息,同样canvas内容绘制逻辑也可以通过jsPDF的方法去实现,但是jsPDF对中文不支持需下载使用的 ttf字体文件到项目中,比较繁琐和不方便;缺点:虽实现大体需求,但是生成的波形图像还是有失真和锯齿现象,是canvas绘制中不可避免。

以上就是怎么在前端中实现一个打印图像功能,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么在前端中实现一个打印图像功能

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么在前端中实现一个打印图像功能

本篇文章给大家分享的是有关怎么在前端中实现一个打印图像功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一. 尝试LODOP打印插件之前前端表单打印功能有使用过LODOP打印
2023-06-09

C#中怎么实现一个打印功能

这篇文章给大家介绍C#中怎么实现一个打印功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。C#实现打印功能操作通常包括以下四个功能。1、打印设置 设置打印机的一些参数比如更改打印机驱动程序等。2、页面设置 设置页面大小
2023-06-17

JavaScript图片打印功能怎么实现

这篇文章主要讲解了“JavaScript图片打印功能怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript图片打印功能怎么实现”吧!其实浏览器 window 对象提供了
2023-07-05

vue+element-ui前端怎么使用print-js实现打印功能

本文小编为大家详细介绍“vue+element-ui前端怎么使用print-js实现打印功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue+element-ui前端怎么使用print-js实现打印功能”文章能帮助大家解决疑惑,下面跟
2023-07-04

C#中怎么实现打印功能

这期内容当中小编将会给大家带来有关C#中怎么实现打印功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。C#实现打印功能具体的操作步骤如下:创建一个PrintDialog的实例。如下:System.Wind
2023-06-17

Java怎么实现服务器端打印功能

在Java中实现服务器端打印功能可以通过以下步骤来实现:创建一个服务器端程序,可以使用Socket或者ServerSocket来实现服务器端的通信功能。在服务器端程序中,接收客户端发送的数据,可以使用BufferedReader来读取客户
Java怎么实现服务器端打印功能
2024-04-28

使用Python怎么实现一个图像分类功能

今天就跟大家聊聊有关使用Python怎么实现一个图像分类功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语
2023-06-14

怎么在Android中实现一个自动打卡功能

这篇文章给大家介绍怎么在Android中实现一个自动打卡功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。提前准备首先我们需要一直不用的Android手机,插上公司的电源。下载安装钉钉并设置为极速打卡。自动打开我们只需
2023-06-14

怎么在Android应用中实现一个头像编辑功能

今天就跟大家聊聊有关怎么在Android应用中实现一个头像编辑功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。实现方法如下:public static void startCame
2023-05-31

使用canvas怎么实现一个图片打码功能

使用canvas怎么实现一个图片打码功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。首先创建一个html文件, 并引入 vue 和 elelment-ui(注
2023-06-09

怎么在HTML5中实现一个图片预加载功能

这篇文章给大家介绍怎么在HTML5中实现一个图片预加载功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在HTML5中,我们可以使用drawImage方法在canvas上进行画图操作,其基本代码如下:var canva
2023-06-09

怎么在C#中使用MJPEG实现一个客户端功能

怎么在C#中使用MJPEG实现一个客户端功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。环境:服务端MJPEG服务器使用的是手机的DroidCam,很方便的一个MJPEG服务
2023-06-06

怎么在java中实现一个sleep功能

这篇文章给大家介绍怎么在java中实现一个sleep功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;3. 客户端开发;4. 网页开
2023-06-14

怎么在Android应用中实现一个图案解锁功能

这期内容当中小编将会给大家带来有关怎么在Android应用中实现一个图案解锁功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.最关健的就是那个自定义九宫格View,代码来自framework下:Loc
2023-05-31

怎么在Android中实现一个摇一摇功能

本篇文章给大家分享的是有关怎么在Android中实现一个摇一摇功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。步骤1:声明一个SensorManager对象步骤2:重写Act
2023-06-14

怎么在html5中实现一个时钟功能

这期内容当中小编将会给大家带来有关怎么在html5中实现一个时钟功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 2023-06-09

Java中怎么实现一个图片剪裁功能

Java中怎么实现一个图片剪裁功能,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Listing1: 引入的类import java.awt.Graphics; impor
2023-06-17

怎么在Android应用中实现一个截图与录屏功能

这篇文章给大家介绍怎么在Android应用中实现一个截图与录屏功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。截屏:步骤如下:1:获取MediaProjectionManager2:通过MediaProjection
2023-05-31

怎么在HTML5中实现一个图片上传预处理功能

这篇文章将为大家详细讲解有关怎么在HTML5中实现一个图片上传预处理功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。获取图片通过 File API 获取图片。var input = doc
2023-06-09

怎么在H5中使用canvas实现一个动态图形功能

怎么在H5中使用canvas实现一个动态图形功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。什么是动画?我们在绘制动画之前必须要弄清楚什么是动画,一个动画最起码需要哪些基
2023-06-09

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录