[英]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.