Tkinter GUI Python に PDF を追加するにはどうすればよいですか?

王林
リリース: 2023-09-08 08:29:01
転載
1103 人が閲覧しました

この記事では、Tkinter GUI で PDF ファイルを表示する方法を説明します。 PyMuPDF ライブラリを使用して PDF ファイルを読み取り、画像に変換し、Tkinter を使用して画像を表示します。

このタスクでは、次の手順を実行します -

  • PDF ファイルを読んでください。

  • 画像を取得するために PDF ページに適用される変換行列を定義します。

  • エラーチェック用の総ページ数を計算します。

  • GUIの画面(キャンバス)を定義します。

  • PDF ページを PIL イメージに変換するためのヘルパー関数を定義します。

  • GUI でページ画像を表示する関数を定義します。

  • ボタン、ラベル、スクロールバーなどを追加して設定します。

まず、ターミナルで次のコマンドを実行して、PyMuPDF パッケージをインストールします。

リーリー

次に、使用するライブラリをインポートする必要があります。インポート・フィッツ

リーリー

ここでの fitz は、PDF ページを画像として取得するために PyMuPDF ライブラリで提供されるユーティリティ ライブラリです。

最初に、fitz.open 関数を使用して、GUI に表示する PDF ファイルを開きます。これにより、ページへのアクセスに使用できるドキュメント オブジェクトが返されます。

リーリー

次に、ページの表示方法を指定する必要があります。以下の行列関数を定義することで、1x スケーリングを維持するために「調整」できます。

リーリー

ページ数も数えてみましょう -

リーリー

次に、画面を定義し、スクロールバーとキャンバスをコードに追加します -

リーリー

ここでは、画面は「root」という名前で表されており、サイズは 750x700 です。また、スクロールバーを追加し、それが右側にあり、高さ全体を満たすように指定しました。もう一度、左側にキャンバスを追加し、両側の画面全体を埋めます。

ユーザーが読みたいページ番号を受け取るには、入力としてページ番号が必要です。できるよ - ### リーリー リーリー

パラメータ「root」は、これらのオブジェクトが画面「root」に関連付けられることを示します。

次に、ページ番号から PDF ファイルの画像を取得するヘルパー関数を定義します。

リーリー

ここでは、まず doc.load_page を使用してページをロードし、ページ番号をパラメータとして渡します。次に、PDF ページを変換して、2 行目のページのピクセル表現を取得します。最後に、ピクセル表現を PIL 画像形式に変換します。

次に、Tkinter GUI で画像を表示する関数 show_image を定義します。

リーリー

まず、以前に定義したエントリ ポイントからページ番号を読み取り、それを整数に変換します。有効な整数でない場合、例外が発生し、例外ブロックが処理します。次に、ページ番号が 0 またはページ数の間であるかどうかを確認します。これは、表示できる唯一の有効なページ範囲であるためです。次に、前に定義したヘルパー関数を使用して、ユーザー指定のページの PIL イメージを取得します。次に、画像が正しく表示されるようにフレーム、パネル、キャンバスを設定します。

次に、ページを表示するボタンを追加します。関数「show_image」をコマンドとして渡します。したがって、ボタンが押されるたびに、「show_image」関数が呼び出されます。

リーリー

次に、前に定義したさまざまなコンポーネントの視覚的な位置を設定します -

リーリー

また、次のように、最初のページを PDF の最初のページに設定します -

リーリー

スクロールバーを設定します

リーリー

最後に、コンピューターによる破損を避けるために PDF を閉じます。

リーリー ###出力###

プログラムを実行すると、次の出力が表示されます。

###結論は###

この記事では、PyMuPDF ライブラリを Pillow および Tkinter とともに使用して、Tkinter GUI で PDF ファイルを表示する方法を説明します。また、ページ数の数え方、PDF ページを画像に変換する方法、インタラクティブなボタンを作成する方法、GUI を構成するさまざまな要素を視覚的に配置する方法も学びました。

以上がTkinter GUI Python に PDF を追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!