濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > 解決PDF 轉(zhuǎn)圖片時(shí)丟文字的一種可能方式

解決PDF 轉(zhuǎn)圖片時(shí)丟文字的一種可能方式

熱門標(biāo)簽:螳螂科技外呼系統(tǒng)怎么用 地圖地圖標(biāo)注有嘆號(hào) 400電話申請(qǐng)資格 舉辦過冬奧會(huì)的城市地圖標(biāo)注 阿里電話機(jī)器人對(duì)話 qt百度地圖標(biāo)注 正安縣地圖標(biāo)注app 電銷機(jī)器人系統(tǒng)廠家鄭州 遼寧智能外呼系統(tǒng)需要多少錢

問題

Python 中 PDF 轉(zhuǎn)圖片一般用的是 pdf2image。有時(shí)我們會(huì)發(fā)現(xiàn) PDF 轉(zhuǎn)出來的圖片都是空白,或者缺失了一些字,具體表現(xiàn)就是一些應(yīng)該有字的區(qū)域是空白。

由于某些原因我不能把出現(xiàn)問題的文件放上來,不過大致就是這個(gè)情況。

主要的代碼如下:

images = pdf2image.convert_from_path('/path/to/pdf', output_folder='images/', fmt='jpg')

運(yùn)行時(shí)可能會(huì)發(fā)現(xiàn)代碼沒有任何異常,但是結(jié)果不對(duì)。

分析和解決

其實(shí) pdf2image 底層默認(rèn)使用的是 pdftoppm 來轉(zhuǎn)圖片,我們可以直接使用其來測試有問題的 PDF,會(huì)發(fā)現(xiàn)輸出了一些警告:

除 pdftoppm 外,pdf2image 在兩種情況下會(huì)使用 pdftocairo 來轉(zhuǎn)圖片,具體是:

當(dāng)要轉(zhuǎn)成 tif/tiff 格式時(shí)

當(dāng) transparent=True(默認(rèn)為 False)且要轉(zhuǎn)成 png/tif/tiff 時(shí)

Missing language pack for 'Adobe-GB1' mapping

很明顯是缺失了語言包。

而且字缺失,自然而然想到的是字體缺失,即系統(tǒng)中沒有 PDF 中的字體。

我們需要找到對(duì)應(yīng)的字體,然后安裝上。

一般來說,Linux 系統(tǒng)中,直接復(fù)制相應(yīng)的字體文件到 /usr/share/fonts/ 目錄下即可,可以使用 fc-list :lang=zh-cn 來查看當(dāng)前系統(tǒng)有哪些中文字體。

對(duì)于中文來說,Noto CJK 字體可以覆蓋所有的字,可以嘗試下載安裝此字體,有些系統(tǒng)可能自帶。

有了字體,你再試的時(shí)候可能會(huì)發(fā)現(xiàn)還是不行,因?yàn)槟氵€需要另一個(gè)東西:poppler-data。

這個(gè)東西是干嘛用的?根據(jù)作者的描述:

This package consists of encoding files for use with poppler. The encoding files are optional and poppler will automatically read them if they are present. When installed, the encoding files enables poppler to correctly render CJK and Cyrrilic properly. While poppler is licensed under the GPL, these encoding files have different license, and thus distributed separately.

大致就是這個(gè)包里是一些編碼文件,可以讓 poppler 正確渲染 CJK 文字。

我們可以通過 apt 來安裝:

sudo apt install poppler-data

然后再次嘗試,應(yīng)該就可以成功轉(zhuǎn)成正常的圖片了。

總結(jié)一下,你需要兩個(gè)東西:

正確的字體文件

poppler-data

Reference

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • 利用python將圖片版PDF轉(zhuǎn)文字版PDF
  • Python提取PDF內(nèi)容的方法(文本、圖像、線條等)
  • 如何使用Python進(jìn)行PDF圖片識(shí)別OCR

標(biāo)簽:淘寶好評(píng)回訪 阜新 濟(jì)源 合肥 興安盟 昭通 信陽 隨州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《解決PDF 轉(zhuǎn)圖片時(shí)丟文字的一種可能方式》,本文關(guān)鍵詞  解決,PDF,轉(zhuǎn)圖,片時(shí),丟,文字,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《解決PDF 轉(zhuǎn)圖片時(shí)丟文字的一種可能方式》相關(guān)的同類信息!
  • 本頁收集關(guān)于解決PDF 轉(zhuǎn)圖片時(shí)丟文字的一種可能方式的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    临西县| 汝城县| 奉化市| 迁安市| 丰原市| 关岭| 白水县| 奉节县| 漯河市| 湾仔区| 崇阳县| 介休市| 米脂县| 盐源县| 南投县| 桐城市| 达日县| 靖安县| 大姚县| 扎兰屯市| 新宁县| 彰化县| 文化| 手游| 大姚县| 库伦旗| 西宁市| 安塞县| 丹棱县| 东源县| 光泽县| 沧州市| 银川市| 镇雄县| 琼结县| 大厂| 吉林市| 东安县| 钟山县| 敦煌市| 大同县|