校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 解決PDF 轉圖片時丟文字的一種可能方式

解決PDF 轉圖片時丟文字的一種可能方式

熱門標簽:螳螂科技外呼系統怎么用 地圖地圖標注有嘆號 400電話申請資格 舉辦過冬奧會的城市地圖標注 阿里電話機器人對話 qt百度地圖標注 正安縣地圖標注app 電銷機器人系統廠家鄭州 遼寧智能外呼系統需要多少錢

問題

Python 中 PDF 轉圖片一般用的是 pdf2image。有時我們會發現 PDF 轉出來的圖片都是空白,或者缺失了一些字,具體表現就是一些應該有字的區域是空白。

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

主要的代碼如下:

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

運行時可能會發現代碼沒有任何異常,但是結果不對。

分析和解決

其實 pdf2image 底層默認使用的是 pdftoppm 來轉圖片,我們可以直接使用其來測試有問題的 PDF,會發現輸出了一些警告:

除 pdftoppm 外,pdf2image 在兩種情況下會使用 pdftocairo 來轉圖片,具體是:

當要轉成 tif/tiff 格式時

當 transparent=True(默認為 False)且要轉成 png/tif/tiff 時

Missing language pack for 'Adobe-GB1' mapping

很明顯是缺失了語言包。

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

我們需要找到對應的字體,然后安裝上。

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

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

有了字體,你再試的時候可能會發現還是不行,因為你還需要另一個東西:poppler-data。

這個東西是干嘛用的?根據作者的描述:

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.

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

我們可以通過 apt 來安裝:

sudo apt install poppler-data

然后再次嘗試,應該就可以成功轉成正常的圖片了。

總結一下,你需要兩個東西:

正確的字體文件

poppler-data

Reference

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

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

標簽:淘寶好評回訪 阜新 濟源 合肥 興安盟 昭通 信陽 隨州

巨人網絡通訊聲明:本文標題《解決PDF 轉圖片時丟文字的一種可能方式》,本文關鍵詞  解決,PDF,轉圖,片時,丟,文字,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《解決PDF 轉圖片時丟文字的一種可能方式》相關的同類信息!
  • 本頁收集關于解決PDF 轉圖片時丟文字的一種可能方式的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 深圳市| 偏关县| 法库县| 博白县| 娄烦县| 绿春县| 漯河市| 峨边| 资阳市| 庆阳市| 大石桥市| 电白县| 九江市| 宝丰县| 中超| 肥西县| 阳春市| 宁化县| 昌吉市| 涟水县| 万荣县| 北碚区| 海晏县| 义马市| 上饶市| 北辰区| 西和县| 邯郸市| 凤凰县| 郸城县| 望江县| 阿城市| 潍坊市| 元江| 新平| 新乡县| 鹤庆县| 科技| 右玉县| 宁蒗| 山阳县|