極速下載站 —— 提供優(yōu)質軟件下載服務,感受全新的極速下載體驗!

最近更新 | 軟件專題 | 軟件分類 | 軟件排行

您的位置:極速下載站資訊首頁軟件教程軟件資訊 → 如何更好的使用PDF:復制中的文字重復問題

如何更好的使用PDF:復制中的文字重復問題

時間:2019-08-20 18:51:19  作者:johnnyl  瀏覽量:41

又到了筆者應用推薦時間,相信大家平常工作中必不可少的要與文字打交道,那么怎么更好的提高文字編輯的工作效率呢?

PDF 是我們打交道最多的文件格式之一。提到這個格式,即使是對技術并不熟悉的用戶,也能說出「通用性好」、「格式不會亂變」這些優(yōu)點。但同時,PDF 也是讓我們感到困惑最多的格式之一,因為與 Word 文檔等其他常見辦公軟件格式相比,PDF 似乎有著太多的「怪癖」,例如復制文字困難、幾乎沒法編輯等等。

然而,事實并非如此。這些問題大多不是 PDF 格式的「缺陷」,而是因為我們在觀念上把 PDF 當成了和其他辦公文檔格式相近的東西,并因此期待 PDF 也具有和后者相似的功能和特征。

對大多數(shù)用戶來說,PDF 可能是他們接觸到的格式中最「接地氣」、與現(xiàn)實生活最接近的。因為,PDF 與其說是一種數(shù)字文檔,不如說是實體文檔在數(shù)字世界中的影像。對 PDF 的操作,很大程度上可以看成對真實紙張的操作,只是操作環(huán)境從物理世界換到了數(shù)字世界而已。PDF 的創(chuàng)建就是一種虛擬的打印,復制 PDF 文字的過程更像是一種抄寫,而 PDF 的編輯實質上是一種涂改。

PDF 復制中的文字重復問題

首先嘗試復現(xiàn)問題:用預覽 app 打開并隨手復制一段,確實出現(xiàn)了很多重復的文字,看起來就像是「結巴」了一樣,有一種莫名的喜感。換用 PDF Expert 打開再嘗試復制,則沒有這樣的問題。

圖:如何更好的使用PDF

.如何更好的使用PDF:復制中的文字重復問題圖一

雖然不知道問題的具體成因,但根據(jù)經驗,文字復制中的故障往往與編碼有關,而 PDF 格式正是編碼問題的大戶。

我在之前的文章中提到,PDF 格式是「不識字」的。在顯示文字時,閱讀器只是機械地根據(jù) PDF 語句的指令,將字體資源中特定碼位的字形繪制在坐標指定的位置,而并不關心自己畫出來的到底是什么字。只有在進行復制、搜索等操作時,PDF 才會根據(jù)內嵌的 CMap,將內部字體的編碼和 Unicode 編碼對應起來。因此,如果 CMap 缺失或損壞,就無法從 PDF 中正常復制文字,但并不影響文檔的外觀。

圖:如何更好的使用PDF

.如何更好的使用PDF:復制中的文字重復問題圖二

這次的問題會不會也跟 CMap 有關呢?這就要查看 PDF 的源碼才能知道。不過,大多數(shù) PDF 都經過壓縮,用文本編輯器直接打開是不可讀的。為此,我們首先用 qpdf 將其解壓:

圖:如何更好的使用PDF

.如何更好的使用PDF:復制中的文字重復問題圖三

這樣,就可以用任意文本編輯器打開查看代碼了。但即使如此,PDF 的源碼結構也很混亂,從頭翻看很難找到頭緒。因此,我們可以從找準一個小處入手——例如標題中的這個「工」字。

查詢 Unicode 字符表,可以知道「工」字的編碼是 U+5DE5。既然 PDF 中有「工」字,那么源碼中的某處一定會提到 5de5 這個編碼。確實,簡單搜索一下就可以找到這么一段:

圖:如何更好的使用PDF

.如何更好的使用PDF:復制中的文字重復問題圖四

其中,beginbfchar 和 endbfchar 正是 CMap 所用的語句。根據(jù) PDF 語法,它表明 PDF 內嵌字體中編碼為 0ae1 的字形,對應 Unicode 編碼為 U+2F2F 和 U+5DE5 的兩個字符。

圖:如何更好的使用PDF

.如何更好的使用PDF:復制中的文字重復問題圖五

奇怪了,為什么是兩個字符?

我們已經知道,U+5DE5 就是漢字「工」,那這個多出來的 U+2F2F 又是什么?再次 查詢 Unicode 表,會發(fā)現(xiàn) U+2F2F 竟然也是「工」。這兩個字符是什么關系?它們是一回事嗎?

答案是否定的。仔細看一下兩個字符的 Unicode 信息:U+5DE5 的全名是「Ideograph labor,work; worker,laborer CJK」,位于 CJK Unified Ideographs(中日韓統(tǒng)一表意文字)區(qū)塊。顯然,這就是我們日常所用的漢字「工」。

12下一頁>

相關資訊

相關軟件