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

使用nginx+HTML2canvas將任意html網(wǎng)頁轉(zhuǎn)為png圖片自定義張數(shù)

這篇具有很好參考價(jià)值的文章主要介紹了使用nginx+HTML2canvas將任意html網(wǎng)頁轉(zhuǎn)為png圖片自定義張數(shù)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

概述

  • 本文簡述如何使用nginx+html2canvas將任意網(wǎng)頁html轉(zhuǎn)為png圖片

網(wǎng)頁的轉(zhuǎn)換

  1. 如果是本地網(wǎng)頁,直接進(jìn)行nginx反向代理就行
  2. 如果不是本地網(wǎng)頁,需要簡單利用工具轉(zhuǎn)為本地網(wǎng)頁

html2canvas的使用

導(dǎo)入

  1. 導(dǎo)入,不能使用在線的庫,只能下載到本地才能導(dǎo)入,因?yàn)闀?huì)有同源限制,否則會(huì)報(bào)跨域錯(cuò)誤。
  2. 下載導(dǎo)入
  • 由于在線使用的方式為:
 <script src="https://html2canvas.hertzen.com/dist/html2canvas.min.js"></script>

所以我們只需要點(diǎn)擊銜接,把js文件保存到本地即可
銜接為:

> https://html2canvas.hertzen.com/dist/html2canvas.min.js

導(dǎo)入HTML2canvas庫
  • 下載完畢后,導(dǎo)入庫,我這里放在js目錄下
  • 使用nginx+HTML2canvas將任意html網(wǎng)頁轉(zhuǎn)為png圖片自定義張數(shù),nginx,html,前端
    網(wǎng)頁中引入
<script src="./js/html2canvas.min.js"></script>

使用nginx+HTML2canvas將任意html網(wǎng)頁轉(zhuǎn)為png圖片自定義張數(shù),nginx,html,前端

函數(shù)定義

在頁面中js部分定義函數(shù),實(shí)現(xiàn)截圖功能

 window.onload = function() {
      var element = document.body;

      html2canvas(element, {
        useCORS: true,

      }).then(function(canvas) {
        var link = document.createElement('a');
        link.href = canvas.toDataURL();
        link.download = '網(wǎng)頁截圖.png';
        link.click();

      });
    };

使用nginx+HTML2canvas將任意html網(wǎng)頁轉(zhuǎn)為png圖片自定義張數(shù),nginx,html,前端

nginx部署

由于要實(shí)現(xiàn)自定義圖片張數(shù),并且要實(shí)現(xiàn)能夠正常訪問外部的數(shù)據(jù)
解決跨域問題
所以需要在nginx中配置可以跨域
比如這個(gè)需要截圖的網(wǎng)頁是index.html
就需要反向代理到nginx中htm也買了中index.html中
并且配置可以跨域

代碼為:

    location / {
        root   html;
        index  index.html index.htm;
       add_header 'Access-Control-Allow-Origin' '*';
  add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
  add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
  add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
    }

如圖
使用nginx+HTML2canvas將任意html網(wǎng)頁轉(zhuǎn)為png圖片自定義張數(shù),nginx,html,前端

這樣就實(shí)現(xiàn)了反向代理與解決了跨域問題

編寫控制截圖網(wǎng)頁代碼

iframe

這里使用iframe引入外部網(wǎng)頁,實(shí)現(xiàn)控制iframe里面引用的網(wǎng)頁就是需要同源,也就是需要解決我們上面提到已經(jīng)解決到的跨域問題

網(wǎng)頁控制代碼

<!DOCTYPE html>
<html lang="zh-cn">

<head>
  <meta charset="utf-8" />
  <title>網(wǎng)頁轉(zhuǎn)圖片</title>
  <style>
    /* 按鈕樣式 */
    .button {
      background-color: #4CAF50;
      border: none;
      color: white;
      padding: 10px 20px;
      text-align: center;
      text-decoration: none;
      display: inline-block;
      font-size: 16px;
      margin: 4px 2px;
      cursor: pointer;
    }

    /* 輸入框樣式 */
    .input {
      padding: 10px;
      font-size: 16px;
      border-radius: 5px;
      border: 1px solid #ccc;
      transition: border-color 0.3s ease;
    }

    /* 輸入框容器樣式 */
    .input-container {
      margin-bottom: 10px;
    }
  </style>
  <script>
    function refreshIframe() {
      var delayInput = document.getElementById("delayInput");
      var countInput = document.getElementById("countInput");

      var delay = parseInt(delayInput.value);
      var count = parseInt(countInput.value);

      if (isNaN(delay) || delay <= 0 || isNaN(count) || count <= 0) {
        alert("請輸入大于0的數(shù)字!");
        return;
      }

      var iframe = document.getElementById("myIframe");
      var remainingCount = count;

      function refresh() {
        if (remainingCount > 0) {
          iframe.contentWindow.location.reload();
          remainingCount--;
          document.getElementById("remainingCount").innerText = remainingCount;
        } else {
          clearInterval(interval);
        }
      }

      var interval = setInterval(refresh, delay * 1000);
    }
  </script>
</head>

<body>
  <div class="input-container">
    <label for="delayInput">刷新延遲時(shí)間(秒):</label>
    <input type="number" id="delayInput" class="input" placeholder="輸入刷新延遲時(shí)間" />
  </div>
  <div class="input-container">
    <label for="countInput">刷新次數(shù):</label>
    <input type="number" id="countInput" class="input" placeholder="輸入刷新次數(shù)" />
  </div>
  
  <button onclick="refreshIframe()" class="button">刷新</button>

  <p>剩余次數(shù): <span id="remainingCount">0</span></p>

  <iframe id="myIframe" src="http://localhost:90" width="100%" height="2500px"></iframe>
</body>

</html>

###網(wǎng)頁控制代碼解釋說明

  <iframe id="myIframe" src="http://localhost:90" width="100%" height="2500px"></iframe>

引入我們上面的網(wǎng)頁要截圖的網(wǎng)頁,這里需要開啟nginx才能截圖

網(wǎng)頁運(yùn)行效果為

使用nginx+HTML2canvas將任意html網(wǎng)頁轉(zhuǎn)為png圖片自定義張數(shù),nginx,html,前端
由于簡化處理,這里的延遲時(shí)間需要根據(jù)直接的點(diǎn)電腦性能來進(jìn)行配置

測試

使用nginx+HTML2canvas將任意html網(wǎng)頁轉(zhuǎn)為png圖片自定義張數(shù),nginx,html,前端

出現(xiàn)的截圖就會(huì)出現(xiàn)在下載這里文章來源地址http://www.zghlxwxcb.cn/news/detail-795935.html

說明

  1. 用的是chrome瀏覽器
  2. 要允許瀏覽器的自動(dòng)下載,運(yùn)行下載多個(gè)文件等權(quán)限
  3. 如果截圖不完整需要自己調(diào)整或者縮放瀏覽器的大小。

到了這里,關(guān)于使用nginx+HTML2canvas將任意html網(wǎng)頁轉(zhuǎn)為png圖片自定義張數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • vue中使用html2canvas+jsPDF實(shí)現(xiàn)pdf的導(dǎo)出

    html2canvas依賴 jspdf依賴 pdf導(dǎo)出 以導(dǎo)出橫向,A4大小的pdf為例 規(guī)律:1. html2canvas 中,在保持jsPDF中的寬高不變的情況下,設(shè)置html2canvas中的 width 和 height 值越小,導(dǎo)出的pdf越顯示不全(會(huì)被放大,只能看到局部),反之值越大,導(dǎo)出的pdf越顯示完整(值也不能過大,過大在pdf中就顯

    2024年02月12日
    瀏覽(18)
  • html2canvas截圖模糊問題

    最近項(xiàng)目中使用的html2canvas插件打印報(bào)表時(shí),發(fā)現(xiàn)出現(xiàn)報(bào)表模糊的問題,而實(shí)際上是插件生成的圖片中的像素發(fā)生了偏移。 后來查閱html2canvas源碼中,發(fā)現(xiàn)了以下參數(shù): 參數(shù)名稱 默認(rèn)值 描述 scale 1 按比例增加分辨率(2=雙倍) dpi 96 將分辨率提高到特定的DPI(每英寸點(diǎn)數(shù))

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

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

    2024年02月11日
    瀏覽(22)
  • html2canvas截圖生產(chǎn)海報(bào)圖片

    圖片地址后添加?time=${new Date().valueOf()},不然會(huì)報(bào)圖片跨域報(bào)錯(cuò) 原因:這是因?yàn)槟鉯mg是在緩存數(shù)據(jù)中讀取的 并沒有訪問遠(yuǎn)程這個(gè)圖片的時(shí)候沒有攜帶請求頭。 確保你的圖片服務(wù)器支持CORS訪問,也就是會(huì)返回Access-Control-Allow-Origin等響應(yīng)頭;

    2024年02月02日
    瀏覽(29)
  • 小程序采用html2canvas實(shí)現(xiàn)html轉(zhuǎn)canvas保存圖片

    mpaas小程序中采用html2canvas實(shí)現(xiàn)html轉(zhuǎn)canvas保存圖片 使用uniapp將代碼打包一份h5部署到服務(wù)器 h5要保存的圖片組件頁面report.vue 安裝 npm install --save html2canvas 或 yarn add html2canvas 引入import html2canvas from ‘html2canvas’; ts 小程序中采用webview跳轉(zhuǎn)到h5頁面

    2024年02月11日
    瀏覽(23)
  • vue3中,使用html2canvas截圖包含視頻、圖片、文字的區(qū)域

    vue3中,使用html2canvas截圖包含視頻、圖片、文字的區(qū)域

    需求:將頁面中指定區(qū)域進(jìn)行截圖,區(qū)域中包含了圖片、文字、視頻。 第一步,先安裝 第二步,在頁面引入: 第三步,頁面使用: 1)html部分: 2)js部分: 剛開始我截出的圖只有文字,插圖和視頻部分是空白的,并沒有將頁面的插圖和視頻截進(jìn)去,最終發(fā)現(xiàn)是 跨域 導(dǎo)致的

    2024年02月06日
    瀏覽(26)
  • (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)
  • html2Canvas常見問題以及解決

    html2Canvas常見問題以及解決

    近期開發(fā)在vue中引用了html2Canvas后,使用時(shí)遇到一些常見問題,簡單總結(jié)下: 簡單代碼使用格式: 闡述:生成圖片后,圖片下載通過添加a標(biāo)簽,添加download屬性進(jìn)行圖片下載 但是在微信開發(fā)里面失效了,理由很簡單,微信環(huán)境下不兼容download屬性,解決辦法,圖片可以通過長

    2024年02月04日
    瀏覽(31)
  • 解決前端html2canvas生成圖片慢問題

    分享一個(gè)小發(fā)現(xiàn) 這里首先直接說結(jié)論: ????????由于html2canvas生成圖片的過程會(huì)從html的head、body層標(biāo)簽開始遍歷,所以對(duì)于項(xiàng)目較大,但是只需要對(duì) 某個(gè)dom (下文以D稱呼)生成圖片的情況非常不友好! ??????? ?所以,一定要通過ignoreElements過濾掉大部分沒用的標(biāo)簽。

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

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

    2024年01月19日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包