国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

vue2如何將頁(yè)面生成 pdf 導(dǎo)出 html2Canvas + jspdf

這篇具有很好參考價(jià)值的文章主要介紹了vue2如何將頁(yè)面生成 pdf 導(dǎo)出 html2Canvas + jspdf。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1.引入兩個(gè)依賴

npm i html2canvas
npm i jspdf

2.在utils文件夾下新建html2pdf.js文件?

import html2canvas from 'html2canvas';

import jsPDF from 'jspdf'

export const htmlToPDF = async (htmlId, title = "報(bào)表", bgColor = "#fff") => {

? let pdfDom = document.getElementById(htmlId)

? pdfDom.style.padding = '0 10px !important'

? const A4Width = 595.28;

? const A4Height = 841.89;

? let canvas = await html2canvas(pdfDom, {

? ? scale: 2,

? ? useCORS: true,

? ? backgroundColor: bgColor,

? });

? let pageHeight = (canvas.width / A4Width) * A4Height;

? let leftHeight = canvas.height;

? let position = 0;

? let imgWidth = A4Width;

? let imgHeight = (A4Width / canvas.width) * canvas.height;

? /*

? ?根據(jù)自身業(yè)務(wù)需求 ?是否在此處鍵入下方水印代碼

? */

? const ctx = canvas.getContext('2d');

? ctx.textAlign = 'center';

? ctx.textBaseline = 'middle';

? ctx.rotate((20 * Math.PI) / 180);

? ctx.font = '20px Microsoft Yahei';

? ctx.fillStyle = 'rgba(184, 184, 184, 0.8)';

? for (let i = canvas.width * -1; i < canvas.width; i += 240) {

? ? for (let j = canvas.height * -1; j < canvas.height; j += 200) {

? ? ? // 填充文字,x 間距, y 間距

? ? ? ctx.fillText('水印名', i, j);

? ? }

? }

? let pageData = canvas.toDataURL("image/jpeg", 1.0);

? let PDF = new jsPDF("p", 'pt', 'a4');

? if (leftHeight < pageHeight) {

? ? PDF.addImage(pageData, "JPEG", 0, 0, imgWidth, imgHeight);

? } else {

? ? while (leftHeight > 0) {

? ? ? PDF.addImage(pageData, "JPEG", 0, position, imgWidth, imgHeight);

? ? ? leftHeight -= pageHeight;

? ? ? position -= A4Height;

? ? ? if (leftHeight > 0) PDF.addPage();

? ? }

? }

? PDF.save(title + ".pdf");

}

3.在目標(biāo)頁(yè)面引入方法即可?

import { htmlToPDF } from '@/utils/html2pdf'

4.使用

<template>
  <div class="jsPdf" id="test-id">
    <video autoplay width="100%" :controls="false" loop :src="videoUrl" muted></video>
    <video autoplay width="100%" :controls="false" loop :src="videoUrl" muted></video>
    <video autoplay width="100%" :controls="false" loop :src="videoUrl" muted></video>
    <div class="text">
      <h1>封神:朝歌風(fēng)云</h1>
      <div class="text_p">
        <p>《封神》第一部講述了姜子牙、申公豹、元始天尊等一眾神仙,在商王殷壽的妄想和謀劃下,最終聯(lián)合揭露并封印百足天君的故事。在這部電影中,每個(gè)角色都有自己的故事和情感線,鋪陳了復(fù)雜而豐富的劇情,讓觀眾充滿瞬間的懸念和追求真相的驅(qū)動(dòng)力。同時(shí),電影人物造型精致獨(dú)特,場(chǎng)景布局細(xì)致入微,實(shí)現(xiàn)了東方奇幻風(fēng)格的完美呈現(xiàn)。</p>
        <p>《封神第一部:朝歌風(fēng)云》講述了狐貍精蘇妲己的魂魄進(jìn)入王宮,商紂王受其迷惑,殺妻滅子,炮烙諫言的臣子,殘害四方諸侯,建摘星樓。西伯侯姬昌先被囚,后逃回西岐的故事。</p>
        <p>狐貍精吸食蘇妲己的魂魄進(jìn)入王宮。商紂王受其迷惑,殺妻滅子,炮烙諫言的臣子,殘害四方諸侯。建摘星樓。西伯侯姬昌先被囚,后逃回西岐。</p>
        <p>《封神三部曲》為了還原歷史記載中商王朝氣勢(shì)磅礴的朝歌城,劇組專門(mén)在青島靈山搭建了一座占地800畝土地,總計(jì)3萬(wàn)平米的影棚。外景片場(chǎng)占地五百畝,場(chǎng)地全部依靠劇組自行搭建。圍攏在片場(chǎng)周遭的藍(lán)幕。劇組在片場(chǎng)改裝了數(shù)臺(tái)挖掘機(jī),去掉挖斗加裝上拍戲用的巨幅藍(lán)幕。挖掘機(jī)本身可自走,底盤(pán)重也扛得住青島當(dāng)?shù)氐暮oL(fēng)。如此以來(lái)按照拍攝計(jì)劃移步換景。在內(nèi)景場(chǎng)地中,其中龍德殿占地六千平米,劇組在棚內(nèi)耗費(fèi)5個(gè)月搭建了自己的燈光系統(tǒng),燈光可以照到任何有需要的區(qū)域。</p>
        <p>《封神三部曲》內(nèi)景中的木雕建筑和青銅器擺件頗見(jiàn)劇組的匠心,所有道具是原樣復(fù)刻歷史上商周的器皿,而是劇組參考商周文化元素再度創(chuàng)新制作的。工序是先由畢業(yè)于清華美院、中央美術(shù)學(xué)院等高等藝術(shù)院校的泥雕藝術(shù)家根據(jù)美術(shù)團(tuán)隊(duì)的設(shè)計(jì)稿做出泥雕,再由安徽歙縣和浙江東陽(yáng)的木雕師進(jìn)行1:1大小的木雕打樣,然后進(jìn)行大批量玻璃鋼、發(fā)泡翻制,最終使用貼金的方式,對(duì)雕件進(jìn)行效果處理。影片中版嬰兒雷震子,這個(gè)角色是由機(jī)械控制的,烏爾善導(dǎo)演在該片中引入了一些跨界人才,因?yàn)橹暗碾娪靶袠I(yè)中,能夠把雕塑藝術(shù)、機(jī)械、電腦融合在一起的藝術(shù)家比較稀缺。而設(shè)計(jì)雷震子這個(gè)角色的是一個(gè)小姑娘,學(xué)的專業(yè)是機(jī)械物理,她在雷震子的身體里面裝了很多機(jī)關(guān),用6個(gè)遙控按鈕來(lái)完成一些操作,睜眼閉眼、哭笑,臉上所有的表情都可以做。雷震子的皮膚觸感就跟真人一樣,摸上去的時(shí)候感覺(jué)就跟摸一個(gè)嬰兒一樣。而長(zhǎng)大之后的雷震子,會(huì)做成一個(gè)虛擬角色,涉及大量特效。洋溢著唯美的詩(shī)意風(fēng)格,滲透著深沉的人文關(guān)懷。整部敘事流暢,沒(méi)有拖泥帶水之感,鏡頭與鏡頭,場(chǎng)景與場(chǎng)景之間銜接的自然靈活,以上就是關(guān)于電影《封神》第一部劇情介紹的全部?jī)?nèi)容了,覺(jué)得不錯(cuò)的話可以繼續(xù)關(guān)注古宮歷史網(wǎng)后續(xù)的精彩內(nèi)容。</p>
      </div>
    </div>
    <el-button type="success" data-html2canvas-ignore="true" @click="btnClick('test-id', '測(cè)試頁(yè)面')">導(dǎo)出(使用html2Canvas + jspdf)</el-button>
  </div>
</template>
<script>
import { htmlToPDF } from '@/utils/html2pdf'
export default {
  data () {
    return {
      videoUrl: "/video/26.mp4",
    }
  },
  mounted () { },
  methods: {
    btnClick (id, title) {
      htmlToPDF(id, title)
    }
  },
}
</script>
<style lang="scss" scoped>
.jsPdf {
  width: 100%;
  position: relative;

  video {
    width: 100%;
    display: block;
  }

  .text {
    height: 100%;
    color: #000;
    /* 設(shè)置文字顏色 */
    background: #fff;
    position: absolute;
    inset: 0;
    /* 混合模式 */
    mix-blend-mode: screen; 
    text-align: center;

 
    h1 {
      font-size: 150px;
      font-weight: 600;
      margin:100px;
    }
    .text_p{
      width: 80%;
      margin: 0 auto;
      text-align: left;
      p{
        font-size: 30px;
        text-indent:24px;
        line-height: 2;
      }
    }
  }

  .el-button {
    position: absolute;
    top: 20px;
    left: 20px;
  }
}</style>

5.html2Canvas隱藏指定元素?

隱藏指定元素:

data-html2canvas-ignore="true"

<div class="detail" data-html2canvas-ignore="true">
? ? <el-button type="primary" size="small" @click="viewDetail(item)">查看詳情</el-button>
</div>

6.效果?

頁(yè)面效果

vue2如何將頁(yè)面生成 pdf 導(dǎo)出 html2Canvas + jspdf,vue,組件,pdf

生成pdf效果

?vue2如何將頁(yè)面生成 pdf 導(dǎo)出 html2Canvas + jspdf,vue,組件,pdf文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-603969.html

到了這里,關(guān)于vue2如何將頁(yè)面生成 pdf 導(dǎo)出 html2Canvas + jspdf的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • vue前端實(shí)現(xiàn)將頁(yè)面顯示內(nèi)容生成pdf文件的幾種方法,html2canvas、dom-to-image、jspdf(帶分頁(yè))基本使用以及介紹

    實(shí)際開(kāi)發(fā)需求:vue項(xiàng)目中,根據(jù)數(shù)據(jù)結(jié)構(gòu)生成echarts圖表組件,生成帶有樣式的圖表以后,點(diǎn)擊下載按鈕,把圖表以pdf格式的文件下載到本地 實(shí)現(xiàn)思路:將vue界面的echarts組件生成圖片,然后使用插件將生成的圖片放入pdf中,再實(shí)現(xiàn)pdf文件的下載 涉及框架以及插件:vue、echar

    2024年01月25日
    瀏覽(29)
  • (vue)Vue項(xiàng)目中使用jsPDF和html2canvas生成PDF

    (vue)Vue項(xiàng)目中使用jsPDF和html2canvas生成PDF

    效果: 1.:安裝jsPDF和html2canvas 2.在需要生成PDF文檔的組件中引入jsPDF和html2canvas 解決參考: 1.https://www.jianshu.com/p/31d37bef539b 2.https://www.php.cn/faq/556634.html 3.https://blog.csdn.net/m0_54967474/article/details/123820384

    2024年02月10日
    瀏覽(22)
  • Vue使用html2canvas將DOM節(jié)點(diǎn)生成對(duì)應(yīng)的PDF

    要通過(guò)Vue使用html2canvas將DOM節(jié)點(diǎn)生成對(duì)應(yīng)的PDF,您需要安裝html2canvas和jspdf這兩個(gè)庫(kù)。html2canvas用于將DOM節(jié)點(diǎn)轉(zhuǎn)換為Canvas,而jspdf用于將Canvas轉(zhuǎn)換為PDF。以下是一個(gè)簡(jiǎn)單的示例代碼,展示了如何使用html2canvas和jspdf生成PDF文件: 首先,安裝html2canvas和jspdf依賴: 然后,在Vue組件中

    2024年02月11日
    瀏覽(22)
  • Vue2輕松實(shí)現(xiàn)HTML導(dǎo)出高質(zhì)量PDF,告別繁瑣操作

    Vue2輕松實(shí)現(xiàn)HTML導(dǎo)出高質(zhì)量PDF,告別繁瑣操作

    在前端開(kāi)發(fā)中,我們常常需要將網(wǎng)頁(yè)內(nèi)容以PDF格式進(jìn)行導(dǎo)出。例如,企業(yè)需要將報(bào)告以PDF文件的形式保存并分享給客戶;學(xué)校需要將學(xué)生的作業(yè)打包成PDF文件進(jìn)行提交等。在Vue2中,我們可以通過(guò)一些簡(jiǎn)單的步驟來(lái)實(shí)現(xiàn)HTML導(dǎo)出PDF功能。 目錄 一、使用jsPDF庫(kù) 二、實(shí)現(xiàn)導(dǎo)出PDF的方

    2024年02月10日
    瀏覽(27)
  • html2canvas和jspdf實(shí)現(xiàn)html導(dǎo)出pdf文件

    實(shí)現(xiàn)原理 先使用html2canvas對(duì)頁(yè)面進(jìn)行截圖,再使用jspdf將截圖生成pdf文件 html2canvas:通過(guò)純JS對(duì)瀏覽器頁(yè)面進(jìn)行截圖 jspdf:一個(gè)基于 HTML5 的客戶端解決方案,用于在客戶端 JavaScript 中生成 pdf文件 的庫(kù) 安裝html2canvas和pdf 截圖源碼 1. 截長(zhǎng)圖不分頁(yè) 2. 截圖分頁(yè) 導(dǎo)出pdf源碼 函數(shù)調(diào)

    2024年02月12日
    瀏覽(19)
  • Vue基于html2canvas和jspdf生成pdf文件,解決jspdf中文亂碼及自動(dòng)換行等問(wèn)題

    Vue基于html2canvas和jspdf生成pdf文件,解決jspdf中文亂碼及自動(dòng)換行等問(wèn)題

    在做項(xiàng)目時(shí)有這么一個(gè)需求,需要將當(dāng)前頁(yè)面指定區(qū)域的內(nèi)容導(dǎo)出pdf到本地。借助了兩個(gè)插件分別是html2canvas.js和pdf.js來(lái)實(shí)現(xiàn)。使用過(guò)程中遇到的問(wèn)題及解決方法 解決一些問(wèn)題: 導(dǎo)出按A4紙大小排列 預(yù)留頁(yè)面邊距的問(wèn)題 內(nèi)容過(guò)多自動(dòng)分頁(yè)的問(wèn)題 直接使用jspdf中文亂碼的問(wèn)題

    2024年01月25日
    瀏覽(67)
  • 純前端--原生js將html頁(yè)面變成pdf文件(html2canvas+jsPDF)

    1、將文檔放在本地,用原生js進(jìn)行引用和使用。 ① 新建一個(gè)名為 html2canvas.min.js 的文件,并且將線上的內(nèi)容進(jìn)行復(fù)制。 ② 引入 js 文件: 2、使用 npm 進(jìn)行安裝使用: 待續(xù)。。。 github 中文網(wǎng)站 CDN Jspdf.es.js:ES 2015 模塊格式。 Jspdf.umd.js:UMD模塊格式,用于 AMD 或腳本標(biāo)簽加載

    2024年02月08日
    瀏覽(21)
  • vue2 -- 截圖工具h(yuǎn)tml2canvas

    可以將網(wǎng)頁(yè)中的指定元素或整個(gè)頁(yè)面截取為圖片,以便保存或分享。 在 Vue 中使用 html2canvas 實(shí)現(xiàn) 1:安裝 html2canvas 庫(kù)。你可以使用 npm 安裝,命令如下: 2:在需要使用 html2canvas 的 Vue 組件中,引入 html2canvas 庫(kù): :3:編寫(xiě)截圖邏輯。你可以在組件的方法中編寫(xiě),例如:

    2024年01月19日
    瀏覽(29)
  • 前端生成pdf之html2canvas+jsPDF,以及解決圖片不顯示bug

    開(kāi)發(fā)背景: 需要給頁(yè)面中相應(yīng)的內(nèi)容生成pdf,查找文檔后發(fā)現(xiàn)要用到兩個(gè)插件。html2canvas 以及 jsPDF html2canvas 給dom結(jié)構(gòu)轉(zhuǎn)化為canvas,然后生成各種類型圖片 jsPDF 把canvas 生成的圖片url 轉(zhuǎn)化為pdf 參數(shù) image:表示要插入的圖片資源,可以是圖片文件的路徑或者base64編碼字符串。

    2024年02月02日
    瀏覽(28)
  • 【無(wú)標(biāo)題】使用html2canvas和jspdf生成的pdf在不同大小的屏幕下文字大小不一樣

    【無(wú)標(biāo)題】使用html2canvas和jspdf生成的pdf在不同大小的屏幕下文字大小不一樣

    問(wèn)題:使用html2canvas和jspdf生成的pdf在不同大小的屏幕下文字大小不一樣,在mac下,一切正常,看起來(lái)很舒服,但是當(dāng)我把頁(yè)面放在擴(kuò)展屏幕下(27寸),再生成一個(gè)pdf,雖然排版一樣,但是文字就變得非常小 下面的是在mac下的,上面是在擴(kuò)展屏幕下的,最開(kāi)始我以為是文字大

    2024年02月16日
    瀏覽(25)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包