亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間:2021年03月04日 09:48:27   作者:secsilm  
這篇文章主要介紹了解決PDF 轉(zhuǎn)圖片時丟字的一種可能方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

問題

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

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

主要的代碼如下:

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

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

分析和解決

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

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

當要轉(zhuǎn)成 tif/tiff 格式時

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

Missing language pack for 'Adobe-GB1' mapping

很明顯是缺失了語言包。

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

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

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

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

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

這個東西是干嘛用的?根據(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.

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

我們可以通過 apt 來安裝:

sudo apt install poppler-data

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

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

正確的字體文件

poppler-data

Reference

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

相關(guān)文章

  • 使用Python實現(xiàn)從零開始打造一個三維繪圖系統(tǒng)

    使用Python實現(xiàn)從零開始打造一個三維繪圖系統(tǒng)

    這篇文章主要為大家詳細介紹了如何使用Python實現(xiàn)一個繪圖系統(tǒng),通過指定x,y,z的表達式,以實現(xiàn)三維繪圖的目的,感興趣的可以了解下
    2024-02-02
  • Python實現(xiàn)向好友發(fā)送微信消息優(yōu)化篇

    Python實現(xiàn)向好友發(fā)送微信消息優(yōu)化篇

    利用python可以實現(xiàn)微信消息發(fā)送功能,怎么實現(xiàn)呢?你肯定會想著很復(fù)雜,但是python的好處就是很多人已經(jīng)把接口打包做好了,只需要調(diào)用即可,今天通過本文給大家分享使用?Python?實現(xiàn)微信消息發(fā)送的思路代碼,一起看看吧
    2022-06-06
  • python爬蟲之爬取百度音樂的實現(xiàn)方法

    python爬蟲之爬取百度音樂的實現(xiàn)方法

    今天小編就為大家分享一篇python爬蟲之爬取百度音樂的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • python中的計時器timeit的使用方法

    python中的計時器timeit的使用方法

    本篇文章主要介紹了python中的計時器timeit的使用方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • Python+OpenCV數(shù)字圖像處理之ROI區(qū)域的提取

    Python+OpenCV數(shù)字圖像處理之ROI區(qū)域的提取

    ROI區(qū)域又叫感興趣區(qū)域。在機器視覺、圖像處理中,從被處理的圖像以方框、圓、橢圓、不規(guī)則多邊形等方式勾勒出需要處理的區(qū)域,稱為感興趣區(qū)域,ROI。本文主要為大家介紹如何通過Python+OpenCV提取ROI區(qū)域,需要的朋友可以了解一下
    2021-12-12
  • keras.utils.to_categorical和one hot格式解析

    keras.utils.to_categorical和one hot格式解析

    這篇文章主要介紹了keras.utils.to_categorical和one hot格式解析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • vscode和Anaconda安裝以及相關(guān)環(huán)境配置指南

    vscode和Anaconda安裝以及相關(guān)環(huán)境配置指南

    Anaconda是一個開源的python發(fā)行版本,是現(xiàn)在比較流行的python數(shù)據(jù)科學(xué)平臺,可以對python的科學(xué)包做到有效管理,這篇文章主要給大家介紹了關(guān)于vscode和Anaconda安裝以及相關(guān)環(huán)境配置指南的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • python 實現(xiàn)控制鼠標鍵盤

    python 實現(xiàn)控制鼠標鍵盤

    這篇文章主要介紹了python 控制鼠標鍵盤的示例,幫助大家更好的理解和學(xué)習python,感興趣的朋友可以了解下
    2020-11-11
  • Python?LeNet網(wǎng)絡(luò)詳解及pytorch實現(xiàn)

    Python?LeNet網(wǎng)絡(luò)詳解及pytorch實現(xiàn)

    LeNet主要用來進行手寫字符的識別與分類,并在美國的銀行中投入了使用。本文主要為大家詳細介紹了LetNet以及通過pytorch實現(xiàn)LetNet,感興趣的小伙伴可以學(xué)習一下
    2021-11-11
  • Python入門教程(三十五)Python中文件的打開

    Python入門教程(三十五)Python中文件的打開

    這篇文章主要介紹了Python入門教程(三十五)Python中文件的打開,在Python中文件的讀取主要是用open()函數(shù),那么open()函數(shù)有哪些方法呢,今天我們就來看一看,需要的朋友可以參考下
    2023-05-05

最新評論