iT邦幫忙

1

這種情況是不是要回報 chrome pdf 顯示有問題?

pdf
  • 分享至 

  • xImage

2018年有人遇到過:同一PDF用不同PDF軟體開啟內容竟然不一樣

不過他沒有附PDF檔案
我倒是可以提供範例檔給大家試試看:顯示不同.pdf

這份 PDF 用不同軟體開啟:

  • 顯示「天下大同」:Adobe Reader DC、Firefox、Ghostscript
  • 顯示「頑笈頍覘」:Chrome、Edge

這 PDF 哪來的

最近我空閒嘗試看 dompdf 原始碼
先試試看讓他支援 OpenType 格式
在這個過程中產生的檔案

雖然是開發階段
但我用線上的 PDF Validator 顯示是符合標準的
各測試軟體也能正常打開

成因追蹤

內部字串是用 14169, 9516, 14165, 11982 這四個數字去選擇文字的
再參考下表(從字型解出的,也可以從 dompdf 的 umf 檔案找到):

文字 unicode cid gid
22825 14169 3835
19979 9516 2128
22823 14165 3834
21516 11982 3031
38929 44883 14169
31496 30475 9516
38925 44877 14165
35224 38215 11982

發現在選擇 glyph 時,Chrome、Edge 是使用 gid
而 Adobe Reader DC、Firefox、Ghostscript 則是使用 cid

在國外的論壇發現下面這一段話 ( 翻譯內容 )
"dompdf 目前僅支援TrueType字體。因此,在尋找字體時,請確保它採用 TrueType 格式。"
所以用 OPENTYPE 樓主是怎麼做到的 ...
而且據我所知,PDF 某個版本之後才能支援 OPENTYPE,
但是檢查樓主的檔案版本是 1.3 ,顯然這各版本不支援 OPENTYPE
然後再去追dompdf 能不能出更高版本的 PDF,結果是目前不行
所以,給樓主的建議就是不用想太多,TRUETYPE 繼續用下去
也別想用 WEBFONT了,你得安裝 TRUETYPE的檔案到你的系統內
再提一下,PDF 亞東語系建議HTML檔案的編碼最好是 ANSI,不要使用 UNICODE
dompdf 目前也沒有亞東語系多語支援,除非那個字型檔案有支援
但繁體簡體樓主知道的,你得使用兩種都支援的字型檔案,
然後不同的ANSI語系其實那個字元編碼會不太一樣的
因此給 dompdf 的HTML檔案要記得宣告語系 BIG5 GB JP KR 等等的在HEAD區段要宣告
以上希望有幫助到樓主
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
亂皮皮
iT邦新手 2 級 ‧ 2023-10-04 13:29:19

我看到的都是一樣的 "天下大同"

Chrome、Edge、 Firefox、 Adobe Reader DC

Chrome、Edge 你使用了擴充元件的編碼可能不同

看更多先前的回應...收起先前的回應...
淺水員 iT邦大師 6 級 ‧ 2023-10-04 14:12:11 檢舉

我平常都是用 Firefox 上網
Chrome 擴充元件只有他一開始預裝的 google 文件離線版

剛剛看了一下
Chrome 版本 117.0.5938.150 (正式版本) (64 位元)
作業系統是 windodws 11 22H2

亂皮皮 iT邦新手 2 級 ‧ 2023-10-04 15:35:02 檢舉

借發兩張圖
國外論壇說的,目前不支援 OPENTYPE
https://ithelp.ithome.com.tw/upload/images/20231005/20097082jMt0JlLwYM.png
要吃 OPENTYPE 得 PDF 1.6 以上的版本,但樓主目前是 1.3
https://ithelp.ithome.com.tw/upload/images/20231005/20097082M9WIcBqd3C.png

淺水員 iT邦大師 6 級 ‧ 2023-10-05 11:07:17 檢舉

亂皮皮

那個擴充用到 PDF.js
而 PDF.js 原本就是 Mozilla 做的
所以輸出應該會跟 Firefox 一致
但現在主要是想知道這是否為 chrome 實作錯誤
並非找尋閱讀器

??窮嘶?????

那份 PDF 版本是 1.7 而非 1.3,我不知道 1.3 是從哪裡得到的

至於 opentype 的部分我是直接動原始碼
所以跟 dompdf 原本是否支援無關

https://ithelp.ithome.com.tw/upload/images/20231005/20097082lgtubOpBl8.png

淺水員 iT邦大師 6 級 ‧ 2023-10-05 13:10:49 檢舉

我不知道你用哪款軟體,也許那個 1.3 是其他意思,而非 PDF 版本

以下方式查詢 PDF 版本都是 1.7

  1. chrome 打開後,右上角的「...」裡面有個「文件屬性」
  2. Firefox 打開後,右上角的「>>」裡面有個「文件內容」
  3. Adobe Reader DC 打開後,「檔案」裡面的「內容」
0
derek_lan
iT邦新手 1 級 ‧ 2023-10-05 09:48:59

我測試的結果跟樓主一樣,只有Chrome跟Edge會顯示為「頑笈頍覘」
現在想想,我以前好像也有過這樣的經驗
可能真的是Google的Chromium的關係

derek_lan iT邦新手 1 級 ‧ 2023-10-05 17:54:07 檢舉

我複製Edge、Chrome上的「頑笈頍覘」,到記事本貼上
還有,複製Acrobat Reader上的「天下大同」,到記事本貼上
都會變成「㝙┬㝕⻎」

淺水員 iT邦大師 6 級 ‧ 2023-10-05 18:27:20 檢舉

PDF 裡面有個 ToUnicode 的欄位
負責在使用者複製文字時,轉換為正確的 unicode
這部份我的確還沒處理,不過跟顯示無關

以下與主題無關

以前還玩過讓複製出來變成另外一段文字,例如這檔案看起來是「月落烏啼霜滿天,江楓漁火對愁眠」,但複製後會變成「但使龍城飛將在,不教胡馬度陰山」

derek_lan iT邦新手 1 級 ‧ 2023-10-06 17:07:20 檢舉

這有趣

我要發表回答

立即登入回答