簡體   English   中英

從 API 下載時的 PDF 文件編碼

[英]PDF file encoding when downloading from API

我有以下代碼從 Xero API 下載 PDF 文件到 Zapier。 代碼工作正常,但 PDF 文件始終是空白頁。 我檢查了返回的 PDF 文件的內容(在文本文件中),頂部字符作為菱形問號(特殊字符)返回。 請參閱下面的屏幕截圖。

我還與工作的 PDF 文件進行了比較,菱形問號在好文件上顯示為È

這是我的代碼:

const pdfURL = {
  url: 'https://api.xero.com/api.xro/2.0/Quotes/' + bundle.inputData.QuoteID,
  method: 'GET',
  headers: {
    'Accept': 'application/pdf',
    'Authorization': `Bearer ${bundle.authData.access_token}`,
    'Xero-tenant-id': bundle.inputData.TenantID,
    'Content-type': 'application/pdf'
  }
};
const fileRequest = await z.request(pdfURL);
const url = await z.stashFile(fileRequest, fileRequest.length, 'Quote #123' + '.pdf', 'application/pdf;'); // knownLength and filename will be sniffed from the request. contentType will be binary/octet-stream
return {url};

這是損壞的 PDF 文件中內容的屏幕截圖:

在此處輸入圖像描述

有誰知道是什么問題?

我嘗試將字符集設置為 'utf-8' 無濟於事。

任何幫助將不勝感激。

我在這里遇到了完全相同的問題。

要解決它,只需在 z.request() 中設置參數 raw:true 即可,它可以避免解析和混淆編碼。

像那樣:

const pdfURL = {
  ...
  raw: true
};

然后您的文件將正確呈現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM