簡體   English   中英

上傳到 S3 后,pdf 中的盧比符號 (?) 丟失

[英]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)如何構建頁面。

您的文檔可能包含以下內容:

  1. Go轉80、700
  2. 將活動字體設置為 F1,字體大小 12
  3. 在 RGB 模式下將繪圖顏色設置為 0,0,0
  4. 渲染活動字體索引 251 處的字形

PDF 還將包含一個所謂的資源字典,它闡明了F1是哪種字體。

這可能是go 錯誤的地方。

標准 14 Fonts

PDF 規范 (ISO32000) 將少數 fonts 定義為特殊(標准 1 型字體)。 這些 fonts 應該始終存在於閱讀器中。

他們包括:

  • 黑體字
  • Helvetica 粗體
  • Helvetica 粗斜體
  • Helvetica 斜體
  • ZapfDingBats(符號)
  • ETC

當一個軟件構建一個 PDF 時,它有兩個選項:

  1. 使用標准之一 fonts
  2. 在PDF中插入字體

如果選擇選項 1,您將綁定到標准 fonts 中定義的那些字符。並非每種字體都包含所有字符(例如,標准 14 中沒有一個包含中文字符)

如果選擇選項 2,則字體文件將全部或部分嵌入 PDF。

子集化

部分嵌入的 fonts 稱為子集 fonts。這是通常在字體較大(包含很多字符)但 PDF 不使用所有這些字符時使用的功能。

簡單來說,如果 PDF 只包含文本“Hello World”,那么添加有關如何呈現字符“A”的信息是沒有意義的。

結論

以下是您的 PDF 可能存在的問題:

  1. 您使用的是標准字體,不支持盧比符號
  2. 您正在使用未嵌入的自定義字體。 讀者將替換這個缺失的字體(替換字體通常是標准的 14 號字體)
  3. 您使用的是自定義字體,該字體已損壞(並非所有 PDF 庫都能很好地遵守標准)。 當 PDF 損壞時,讀者可能會決定嘗試修復它。 修復可能包括字體替換。
  4. 您使用的是自定義字體,沒有盧比符號。
  5. 您正在使用自定義(子集)字體,其子集不包含盧比符號。

有一個在線工具可以驗證 PDF 文檔。 它叫做 VeraPDF。 你可以在這里找到它。

暫無
暫無

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

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