如何從標籤 api 響應中檢索 png (javascript)

小牧野_1251

我正在嘗試通過 labelary.com API 將 ZPL 字符串轉換為 png 圖像。

我能夠發送獲取請求並接收響應。但是,當我查看 chrome 開發工具中的網絡選項卡時,我可以在“預覽”選項卡中看到 png 圖像,但響應選項卡是空的,我將如何保存可以在預覽窗口中看到的 png img ?

這是我的代碼:

const generateLabelBtn = document.getElementById('generateLabelBtn');

async function requestLabel(zplString) {
  
  const response = await fetch(`http://api.labelary.com/v1/printers/8dpmm/labels/4x6/0/`, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded',
    },
    body: JSON.stringify(zplString),
  })

  console.log(response);
}

document.getElementById("generateLabelBtn").onclick = function() {
  requestLabel(test)
};


const test = `^XA

^FX Top section with logo, name and address.
^CF0,60
^FO50,50^GB100,100,100^FS
^FO75,75^FR^GB100,100,100^FS
^FO93,93^GB40,40,40^FS
^FO220,50^FDIntershipping, Inc.^FS
^CF0,30
^FO220,115^FD1000 Shipping Lane^FS
^FO220,155^FDShelbyville TN 38102^FS
^FO220,195^FDUnited States (USA)^FS
^FO50,250^GB700,3,3^FS

^FX Second section with recipient address and permit information.
^CFA,30
^FO50,300^FDJohn Doe^FS
^FO50,340^FD100 Main Street^FS
^FO50,380^FDSpringfield TN 39021^FS
^FO50,420^FDUnited States (USA)^FS
^CFA,15
^FO600,300^GB150,150,3^FS
^FO638,340^FDPermit^FS
^FO638,390^FD123456^FS
^FO50,500^GB700,3,3^FS

^FX Third section with bar code.
^BY5,2,270
^FO100,550^BC^FD12345678^FS

^FX Fourth section (the two boxes on the bottom).
^FO50,900^GB700,250,3^FS
^FO400,900^GB3,250,3^FS
^CF0,40
^FO100,960^FDCtr. X34B-1^FS
^FO100,1010^FDREF1 F00B47^FS
^FO100,1060^FDREF2 BL4H8^FS
^CF0,190
^FO470,955^FDCA^FS

^XZ`
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Hello World!</title>
    <meta
      http-equiv="Content-Security-Policy"
      content="script-src 'self' 'unsafe-inline';"
    />
  </head>
  <body>
    <button id="generateLabelBtn">Generate Label</button>
  </body>
</html>

亞歷克·奧爾德林·拉克拉

問題是您試圖在控制台上打印響應,而不是在正文上附加響應圖像。要從響應中獲取圖像,您需要將其轉換為 Blob,然後從中獲取圖像的 url。了解更多關於 Blob

在 html 代碼中,只需在要顯示圖像的位置添加一個容器 div

<div id="container"></div>

JS代碼

 const generateLabelBtn = document.getElementById("generateLabelBtn");

    async function requestLabel(zplString) {
      const response = await fetch(
        `http://api.labelary.com/v1/printers/8dpmm/labels/4x6/0/`,
        {
          method: "POST",
          headers: {
            "Content-Type": "application/x-www-form-urlencoded",
          },
          body: JSON.stringify(zplString),
        }
      );

        console.log(response);

        const responseBlob = await response.blob(); 
        const img = document.createElement('img');
        img.src = URL.createObjectURL(responseBlob);
        document.querySelector(`#container`).append(img);
    }

    generateLabelBtn.addEventListener("click", (e) => {
      requestLabel(test);
    });

    const test = `^XA

                ^FX Top section with logo, name and address.
                ^CF0,60
                ^FO50,50^GB100,100,100^FS
                ^FO75,75^FR^GB100,100,100^FS
                ^FO93,93^GB40,40,40^FS
                ^FO220,50^FDIntershipping, Inc.^FS
                ^CF0,30
                ^FO220,115^FD1000 Shipping Lane^FS
                ^FO220,155^FDShelbyville TN 38102^FS
                ^FO220,195^FDUnited States (USA)^FS
                ^FO50,250^GB700,3,3^FS

                ^FX Second section with recipient address and permit information.
                ^CFA,30
                ^FO50,300^FDJohn Doe^FS
                ^FO50,340^FD100 Main Street^FS
                ^FO50,380^FDSpringfield TN 39021^FS
                ^FO50,420^FDUnited States (USA)^FS
                ^CFA,15
                ^FO600,300^GB150,150,3^FS
                ^FO638,340^FDPermit^FS
                ^FO638,390^FD123456^FS
                ^FO50,500^GB700,3,3^FS

                ^FX Third section with bar code.
                ^BY5,2,270
                ^FO100,550^BC^FD12345678^FS

                ^FX Fourth section (the two boxes on the bottom).
                ^FO50,900^GB700,250,3^FS
                ^FO400,900^GB3,250,3^FS
                ^CF0,40
                ^FO100,960^FDCtr. X34B-1^FS
                ^FO100,1010^FDREF1 F00B47^FS
                ^FO100,1060^FDREF2 BL4H8^FS
                ^CF0,190
                ^FO470,955^FDCA^FS

                ^XZ`;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用 JavaScript 從 HTML 選擇標籤中獲取值或文本?

如何在javaScript中從localStorage設置標籤的className?

如何從javascript中的字符串中刪除帶有內容的HTML標籤(不是特定標籤)

無法使用簡單的 Python 腳本從包含 URL 的文件中檢索響應標頭

如何從 <audio> 標籤中刪除邊框?

如何從p標籤中查找元素

傳單:如何根據從 API 獲取的 JSON 創建標記標籤

如何從 react hook form 和 antd Select 中檢索表單值和標籤

如何檢索班級標籤?

如何在reactjs中檢索SELECT標籤的值?

如何在我的應用程序中顯示從 API 響應收到的圖像

從 YouTube API 響應中選擇特定鍵

從 Flask Form 中移除標籤

Python / BeautifulSoup - 從 Clinicaltrials.gov API 抓取 XML 數據 - 解析 XML 父/子標籤中的數據

從字符串解析html標籤並在javaScript,vue.js中創建一個數組

如何從 Vue.js 中的 API 響應中綁定選項數據?

如何從JS中的輸入標籤中刪除相似的字符?

如何從名稱列表中獲取 0/1 的標籤?

如何從 BeautifulSoup Tag 對像中解開標籤?

如何通過 VBA (MS Excel) 從導入的 XML 中刪除標籤?

BeautifulSoup 如何從 h1 標籤中刪除 div 元素

如何從 kivy 中的另一個類更改標籤?

如何從標籤內的屬性中獲取值作為 int

如何在 Laravel 中使用 Brearer 令牌從 api 請求中獲取響應?

如何檢測 xamarin UWP 應用程序中標籤元素的文本值更改?

如何在 bs4 [python 3] 中的另一個標籤中從沒有 class 或 id 的標籤中抓取 url

如何用來自 javascript 的新變量替換 <p> 標籤中的內容

如何從 API 響應中提取數組

如何從 Github Api 獲得 JSON 響應?