質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

0回答

1287閲覧

PyPDF2の警告への対応について

Tera0724

総合スコア18

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2020/10/27 01:38

編集2022/01/12 10:55

現在、pdfファイルからテキストを抽出するプログラムを作成しています。pdfは複数ページにまたがっていることもあるため、pyPDFを使用して1ページずつに分割しています。
ただ、pyPDFで処理をした場合、稀に分割後の画像データが文字化けしてしまうことがあります。参考資料には原因と対処方法が書かれていました。
しかし、対処方法についてはpdf作成時の対処方法しか記入されていませんでした。プログラム側での対処方法はないのでしょうか。
エンコードやデコードについて調べてみたのですが、現状わかっていない状況です。
文章が下手で申し訳ありませんが、文字化けについて解決策があれば教えていただきたいです。
以上、よろしくお願いします。

<補足>
pyPDFに原因があると思っていましたが、その後の画像データ変換時の処理のどこかで文字化けしていることがわかりました。コードは以下の通りです。

python

1pdfToImage = pdf2image.convert_from_path(pdfが保存されているパス) 2imgArray = np.asarray(pdfToImage[0]) 3pdfImage = cv2.cvtColor(imgArray, cv2.COLOR_RGB2BGR) 4cv2.imwrite("test.jpg", pdfImage)

出力のjpg画像については以下の通りです。
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ebal

2020/10/27 11:19

どのような警告(あるいはエラー)が出たのか,PyPDF2を使わなければならないのか,分割したPDFが画像データになる理由,文字化けの理由がわかっているならばそれも追記をお願いしたいです. PyPDF2を使って1ページずつにしたPDFに記載されてるtextが文字化けする場合がある,ということでしょうか?
Tera0724

2020/10/28 07:57

回答ありがとうございます。分割したPDFの加工を行うため意図的に画像に変更しています。 また、ebal様のアドバイスを参考にもう一度 pdfの読み込み -> 分割 -> 画像変換 -> 保存の処理での出力(分割後のPDFと画像変換後のjpg画像) を確認したところ、pyPDFの出力は問題なく、jpg画像の方に問題がありました。 ただ、他のデータで同様の処理をしたところ問題なくPDFがそのままjogに変換されているためなぜ文字化けしているのかの原因が分からない状態です。 わかりづらい文章となってしまい申し訳ありません。 該当コードについては追記いたしました。 以上、よろしくお願いします。
ebal

2020/10/29 00:34

そういえば,'文字化け' と言っていますがこれはファイルがjpgとして破損した状態になるのか,それともjpg上の文字列が化けてるということでしょうか?
Tera0724

2020/10/29 07:08

返答ありがとうございます。jpg画像による出力を追記しました。数字は問題なく出力されていますが、日本語の部分が四角になってしまいます。
ebal

2020/10/30 00:32

日本語の部分が四角になる系統の問題はエンコーディングではなくフォント指定の問題では無いでしょうか.
jbpb0

2021/01/01 04:54 編集

実際に試してないので、情報提示のみです https://blog.csdn.net/python_go/article/details/111187316 に書いてある二つのファイルの修正で、「gbk」を「cp932」に変えて、他はそのまま行えば、もしかしたら効果あるかもしれません どんな副作用があるか分からないので、もし実施する場合は自己責任でお願いします また、何かあったら元に戻せるように、修正を行う前に、修正前のファイルのコピーを保管しておくことをお勧めします 【追記】上記の対策は、 https://gammasoft.jp/support/pdf-file-read-warning-and-error/ の二つ目に書かれてる「PyPDF2.utils.PdfReadError: Illegal character in Name Object」に対するものです 質問の「<補足>」を読んだら、PyPDF2ではなくpdf2imageの問題のようですね そうならば、上記対策は関係無い(効果無い)と思います 失礼しました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問