当前位置: 首页 > news >正文

天津做网站费用莱芜网上服务

天津做网站费用,莱芜网上服务,汽车网站建设页面,seo数据分析一、安装依赖 首先,需要安装 html2canvas 和 jsPDF 库。 npm install html2canvas jspdf二、创建公共方法引入 在utils文件夹下创建两个文件分别为pdfExport.js和printPDF.js,代码如下: pdfExport.js import html2canvas from html2canv…

一、安装依赖

首先,需要安装 html2canvas 和 jsPDF 库。

npm install html2canvas jspdf

二、创建公共方法+引入

在utils文件夹下创建两个文件分别为pdfExport.js和printPDF.js,代码如下:

  • pdfExport.js
import html2canvas from 'html2canvas';
import jsPDF from 'jspdf';export const exportToPDF = async (elementId) => {console.log('Exporting PDF...');const content = document.getElementById(elementId);if (!content) {console.error(`Element with id ${elementId} not found.`);return;}try {const canvas = await html2canvas(content);const imgData = canvas.toDataURL('image/png');const pdf = new jsPDF({orientation: 'portrait',unit: 'mm',format: 'a4'});// 获取页面尺寸const pageWidth = pdf.internal.pageSize.getWidth();const pageHeight = pdf.internal.pageSize.getHeight();// 计算图片宽高比const imgWidth = pageWidth;const imgHeight = (canvas.height * imgWidth) / canvas.width;// 分页添加图片let position = 0;while (position < imgHeight) {pdf.addImage(imgData, 'PNG', 0, position, imgWidth, imgHeight);position += pageHeight;if (position < imgHeight) {pdf.addPage();}}// 将 PDF 转换为 Blob 对象const blob = pdf.output('blob');console.log('PDF Blob generated:', blob); // 打印生成的 Blob 对象信息return blob; // 返回生成的 Blob 对象,供后续使用} catch (error) {console.error('导出 PDF 失败:', error);throw error; // 抛出异常供调用者处理}
};
  • printPDF.js
export const printPDF = (blob) => {try {const url = URL.createObjectURL(blob);console.log('PDF Blob URL:', url); // 打印生成的 Blob URL// 创建一个隐藏的 iframeconst iframe = document.createElement('iframe');iframe.style.position = 'fixed';iframe.style.right = '0';iframe.style.bottom = '0';iframe.style.width = '0';iframe.style.height = '0';iframe.style.border = 'none';document.body.appendChild(iframe);// 设置 iframe 的 src 属性为 PDF 文件的 URLiframe.src = url;// 加载完成在进行打印操作,确保 PDF 加载完成iframe.onload = function() {iframe.contentWindow.focus();iframe.contentWindow.print();// 打印完成后移除 iframe 和释放 URLsetTimeout(() => {// document.body.removeChild(iframe);URL.revokeObjectURL(url);}, 500)};} catch (error) {console.error('打印 PDF 出错:', error);throw error;}
};

创建好后在main.js中引入方法

import { exportToPDF } from '../utils/pdfExport';
Vue.prototype.$exportToPDF = exportToPDF;import { printPDF } from '../utils/printPDF';
Vue.prototype.$printPDF = printPDF;

三、使用

  • html
<template><div><!-- 打印按钮 --><span class="mr20" @click="printPageFn">打印页面</span><!-- 需要打印的页面内容,可以是任意div,设置id就可以 --><router-view id="contentToExport"/></div>
</template>
  • Javascript
// 打印页面
printPageFn(){//注意传入的id是否与页面设置的id一致this.$exportToPDF('contentToExport').then((blob) => {this.$printPDF(blob);});
},
http://www.sczhlp.com/news/118876/

相关文章:

  • 网站后台会员管理长沙网站设计公司推荐
  • 免费的舆情网站appwordpress输出文章标签名
  • php 网站开发wordpress主题oa系统
  • 四川网站建设博客什么网站是php
  • 防御安全播客第214期:数据泄露与漏洞攻防实战
  • windows使用kibana
  • 做网站设计的价格建站平台与建站系统
  • 网站建设小程序公众号推广开发搭建网站需要备案吗
  • 福州门户网站富通建设工程有限公司网站
  • 03作业
  • 软工作业个人项目
  • 寻找郑州网站优化公司湛江网站建设方案咨询
  • 石家庄网站seo服务怎么做钓鱼网站呢
  • 建站素材网管理系统网页界面设计
  • 国外服装设计师网站深圳专业做网站技术
  • 平面设计有什么网站网站开发前后台整个流程
  • 什么样的笔记本电脑适合网站开发类似织梦cms
  • 基层建设论文收录在哪个网站手机商城网站建设策划方案范文
  • 自己如何做外贸公司网站小说阅读网站开发
  • YOLO进阶提升 5标注与配置
  • rapidxml中接口函数
  • YOLO进阶提升 6模型训练与测试
  • 医疗网站建设公司设计网站横幅
  • 群晖wordpress搭建网站wordpress使用密码
  • 网站怎么做架构兰考网站建设
  • 搭建网站论坛怎么注册自己网站
  • 做专属淘客网站宁波建网站如何收费
  • 怎么做品牌推广网站logo设计理念简短范文
  • 不会编程能做网站吗北京企业信用信息网官网
  • 网站开发大赛目录排版设计