[英]Rupee symbol(₹) in pdf is missing after upload to S3
我有一個 pdf,里面有盧比符號 (₹)。 我正在使用 aws-sdk 和 nodejs 將 pdf 上傳到 s3。 上傳到 s3 后盧比符號丟失。
在本地,當我上傳時,它工作正常。 eks 在哪里,pdf 中缺少盧比符號。當我使用 apigateway 將文件上傳到 s3 時,發生了相同的行為
謝謝
const content = fs.readFileSync(filePath); const uploadToS3UsingSdk = async (bucket, key, content) => { return new Promise((resolve, reject) => { const awsConfig = { accessKeyId: process.env.accessKeyId, secretAccessKey: process.env.secretAccessKey, region: process.env.region, apiVersion: "2006-03-01", }; const s3 = new AWS.S3(awsConfig); const uploadParams = { Bucket: bucket, Key: key, Body: content, ContentType: "application/pdf;charset=utf-8", }; s3.upload(uploadParams, function (err, data) { if (err) { console.log("Error", err); return reject({ isSuccess: false, errorMessage: err.errorMessage, status: 500, }); } if (data) { console.log("Upload Success", data.Location); return resolve({ isSuccess: true, errorMessage: null, }); } }); }); }; <:-- begin snippet: js hide: false console: true babel: false -->
PDF 不是所見即所得(所見即所得)格式。 在內部,它包含渲染指令,告訴查看者(如 adobe reader)如何構建頁面。
您的文檔可能包含以下內容:
PDF 還將包含一個所謂的資源字典,它闡明了F1
是哪種字體。
這可能是go 錯誤的地方。
PDF 規范 (ISO32000) 將少數 fonts 定義為特殊(標准 1 型字體)。 這些 fonts 應該始終存在於閱讀器中。
他們包括:
當一個軟件構建一個 PDF 時,它有兩個選項:
如果選擇選項 1,您將綁定到標准 fonts 中定義的那些字符。並非每種字體都包含所有字符(例如,標准 14 中沒有一個包含中文字符)
如果選擇選項 2,則字體文件將全部或部分嵌入 PDF。
部分嵌入的 fonts 稱為子集 fonts。這是通常在字體較大(包含很多字符)但 PDF 不使用所有這些字符時使用的功能。
簡單來說,如果 PDF 只包含文本“Hello World”,那么添加有關如何呈現字符“A”的信息是沒有意義的。
以下是您的 PDF 可能存在的問題:
有一個在線工具可以驗證 PDF 文檔。 它叫做 VeraPDF。 你可以在這里找到它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.