如何修复编码:Identity-H错误解析文本为越南知识产权官方公报PDF pdf与python?

noj0wjuj  于 2023-03-11  发布在  Python
关注(0)|答案(2)|浏览(239)

我想将pdf解析为文本,但是当我使用pypdf 2或pymupdf从这个pdf中提取文本时,我遇到了一个问题:当遇到越南语中的重音单词时,它返回特殊字符。英语或无符号单词无关紧要。

#pdf path
pdf_file ='CB410A3 - Copy.pdf'
pdf = fitz.open(pdf_file)
#Read page 8
a8= pdf[8]
text = a8.getText("text")
text(Pymupdf code)

或者

# pdf path
pdf_file =r'D:data\VN\CB410A3.pdf'
#import the PyPDF2 module
import PyPDF2

#open the PDF file
PDFfile = open(pdf_file, 'rb')

PDFfilereader = PyPDF2.PdfFileReader(PDFfile)

#provide the page number
pages = PDFfilereader.getPage(8)
x=pages.extractText()

它将返回如下内容:' \n \n\n9\ngia厘米;唱诗班;®å ¨n s¸ng trªn c¬ së h¶i s¶n;这是什么意思?\n "s“ng '.但我希望它像这样返回

我试着用utf-8解码结果,但是没有work。有人能帮我解决这个问题吗?谢谢。

更新信息:

从2023年1月开始,ipvietnam发布的工业产权官方公报PDF将不再存在可能导致解析时出错的编码问题。

wqsoz72f

wqsoz72f1#

上面的OP链接今天对我来说不起作用,所以这里是一个来自同一来源的类似构建文件,(注意他们使用MSWord和正常的西方字体,如Arial Calibri Cambria和Times Roman.ttf,因此没有异国情调或UTF-8)

File: vietnamese.pdf
Title: Microsoft Word - Heading_Nice10
Author: Administrator
Created: 2020-11-26 10:37:00
Modified: 2020-11-26 14:51:07
Application: Acrobat PDFMaker 11 for Word
PDF Producer: Adobe PDF Library 11.0
PDF Version: 1.6
PDF Optimizations: Tagged PDF
File Size: 431.4 KB (441,754 Bytes)
Number of Pages: 51
Page Size: 21.0 x 29.7 cm (A4)
   
Fonts: ArialMT (TrueType; Ansi)
Calibri (TrueType; Ansi; embedded)
Cambria (TrueType; Ansi; embedded)
TimesNewRomanPS-BoldItalicMT (TrueType (CID); Identity-H; embedded)
TimesNewRomanPS-BoldItalicMT (TrueType; Ansi)
TimesNewRomanPS-BoldMT (TrueType (CID); Identity-H; embedded)
TimesNewRomanPS-BoldMT (TrueType; Ansi)
TimesNewRomanPS-ItalicMT (TrueType (CID); Identity-H; embedded)
TimesNewRomanPS-ItalicMT (TrueType; Ansi)
TimesNewRomanPSMT (TrueType (CID); Identity-H; embedded)
TimesNewRomanPSMT (TrueType; Ansi)

存保舒存义P S 392 B(2021年11月)

因此,通常政府越南语PDF的解码没有问题
从PDF中提取文本的最简单方法之一是使用简单的行命令

一月一日

结果

CÔNG BÁO SỞ HỮU CÔNG NGHIỆP SỐ 392B (11/2021)



             PHỤ LỤC 2

BẢNG PHÂN LOẠI QUỐC TẾ
HÀNG HÓA/DỊCH VỤ NI-XƠ



            Phiên bản 11-2021
      BỘ KHOA HỌC VÀ CÔNG NGHỆ
          CỤC SỞ HỮU TRÍ TUỆ
              -----------------

一个小问题可能是一些偶尔的单词间距可能是奇数,需要轻微的调整或命令行选项的轻微变化。

稍后编辑

OP文件可再次访问,并且在OP问题中看到的CIDMap不正确的部分明显错误,这不是故意的,只是构造不良。在这种情况下纠正Map是需要许多部分重新Map的艰苦工作

C«ng b¸o së h÷u c«ng nghiÖp sè 411 tËp a - QUYÓN 1 (06.2022) 
M· Sè HAI CH÷ C¸I THÓ HIÖN T£N N¦íC Vμ C¸C THùC THÓ KH¸C TRONG 
C¸C T¦ LIÖU Së H÷U C¤NG NGHIÖP THEO TI£U CHUÈN ST3 CñA WIPO 

AE United Arab Emirates CN China HK Hong Kong
2eafrhcq

2eafrhcq2#

pypdf(还有PyPDF2)改进了很多。特别是文本提取。请用最近的版本再试一次;现在应该可以用了。
参见https://pypdf.readthedocs.io/en/latest/user/extract-text.html

from pypdf import PdfReader

reader = PdfReader("example.pdf")
for page in reader.pages:
    print(page.extract_text())

但是,有两种情况下它将不起作用:
1.图像pypdf不是OCR软件。在这种情况下,请尝试tesseract
1.加密PDF:有些人想阻止软件阅读他们的PDF。这似乎是你的PDF的情况。你最好的办法是将PDF转换为图像,并在这种情况下使用OCR软件(再次:tesseract

相关问题