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

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

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

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

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

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

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

然而,事實(shí)并非如此。這些問題大多不是 PDF 格式的「缺陷」,而是因?yàn)槲覀冊(cè)谟^念上把 PDF 當(dāng)成了和其他辦公文檔格式相近的東西,并因此期待 PDF 也具有和后者相似的功能和特征。

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

PDF 復(fù)制中的文字重復(fù)問題

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

圖:如何更好的使用PDF

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

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

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

圖:如何更好的使用PDF

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

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

圖:如何更好的使用PDF

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

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

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

圖:如何更好的使用PDF

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

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

圖:如何更好的使用PDF

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

奇怪了,為什么是兩個(gè)字符?

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

答案是否定的。仔細(xì)看一下兩個(gè)字符的 Unicode 信息:U+5DE5 的全名是「Ideograph labor,work; worker,laborer CJK」,位于 CJK Unified Ideographs(中日韓統(tǒng)一表意文字)區(qū)塊。顯然,這就是我們?nèi)粘K玫臐h字「工」。

12下一頁>

相關(guān)資訊

相關(guān)軟件