初心者でも絶対出来る自作ブラウザ[Python]第7章 PDF表示

PDF表示画面 サンプルコード

今日は初心者でも絶対出来る自作ブラウザ[Python]シリーズで紹介してきた自作ブラウザについてリクエスト頂いたので、PDFの表示について紹介します。

実現方法の検討

まずは、PythonでPDFの表示に使えそうなライブラリを探してみました

ReportLabPDFの生成
PyPDF2PDFの分割結合、パスワード追加等
PyPoppler PDFからのテキスト抽出等
PDFMinerPDFからのテキスト抽出等

PyPopplerがQtとの連携もしやすいようなので、これを使えば簡単にできるかな?
ということでPyPopplerをQtで作成したラウザに組み込む方法を調べました

QtでのPDFへの対応

調べてみるとなんと、、、
Qtの5.13からPDFドキュメントをダウンロードせずに、内部PDFビューアーで開くことができるようになったそうです!!

pyqtのバージョンアップ

まずはインストール済みのpyqtのバージョンを確認します
AnacondaPromptを起動して、ブラウザ用の仮想環境に入ります
私の場合は、以下のフォルダに仮想環境を入れています
C:\ProgramData\Anaconda3\envs\browser\Scripts\activate

pip list

次に、インストール済みのライブラリを確認するpip listを実行します

PyQt5とPyQtWebEngineのバージョンが5.13より古い場合はpip install -U PyQt5とpip install -U PyQtWebEngineを実行して最新版にバージョンアップします

ソースの変更箇所

今回の修正はデザイナーから自動生成したUIのPythonファイルだけです
ソースの全体は以下です

修正箇所は3個所だけです

QWebEngineSettingsを使用するのでインポートしています

webEngineViewのsettingsで以下の2つをTRUEに設定しています
PluginsEnabled: FlashプレーヤーなどのPepperプラグインのサポートを有効にします。 
PdfViewerEnabled: PDFドキュメントをダウンロードせずに、内部PDFビューアーで開くことを指定します

PDFの表示

修正が完了したらさっそく実行してみます
適当にPDFのページを検索して開いてみます

検索画面
PDF表示画面

まとめ

今回はPDFの表示についてでした。
思いがけず、Qtの方で対応してくれていたので、簡単に出来ました。

今後も質問や相談あればドシドシご連絡ください!!
こんなの作ってみたい等の依頼も募集してますよ~

コメント