pdfview: PDFビューアツールの初期実装 by Claude Code

2025年7月17日

banner

screenshot

はじめに

pdfviewは、LaTeX開発のためのPDFライブプレビューツールです。PDFファイルの変更を監視し、自動的にリロードしながら、特定のページやキーワードを監視し続けることができます。今回のセッションでは、このツールの基本機能を実装し、動作可能な状態まで開発を進めることを目的としました。

今回の成果

今回のセッションで以下の成果を達成しました:

  • 基本的なPDFビューア機能をPoppler + GTK3で実装
  • PDFファイルの表示とページナビゲーション(前/次ページ、ページ番号指定)を実現
  • ファイル変更監視機能をlisten gemで実装し、PDFファイルの自動リロードを実現
  • コマンドラインインターフェース(--page、--keyword、--help、--version)を実装
  • GTK3ベースのGUIでツールバーとステータスバーを構築
  • テスト用のLaTeXファイルとPDFを生成して動作確認を実施
  • キーワード検索機能の実装(ただし正しく動作しない問題を確認)

セッションの流れ

実装計画の段階で、結城さんから言語選択についてRubyの指定をいただき、Ruby 3.2.0での開発環境構築から始めました。依存関係のインストール時にGTK3関連でbrewのロックエラーが発生しましたが、手動でgtk+3をインストールして解決しました。

基本的なPDFビューア機能の実装では、Poppler gemを使用したPDF処理とGTK3によるGUI構築を組み合わせました。ファイル変更監視についてはlisten gemを使用し、PDFファイルの更新を検知して自動リロードする仕組みを実装しました。

コマンドラインインターフェースの実装では、OptionParserを使用して--pageと--keywordオプションを提供しました。実際にテスト用のLaTeXファイルを作成してPDFを生成し、動作確認を行いました。

結城さんに実際に動作テストをしていただいたところ、基本的な機能は動作しているものの、キーワード監視モードが正しく動作していないことが判明しました。この問題については今後の改善課題として確認しました。

次のステップ

今後の開発では、以下の改善と機能追加が予定されています:

  • キーワード検索機能のデバッグと修正
  • 固定ページ監視機能の改善
  • ユーザー操作の記憶機能(最後に見たページの保存)
  • エラーハンドリングの改善(ファイルロック対応)
  • キーボードショートカットの実装

おわりに

結城さん、基本的なPDFビューア機能が動作する状態まで実装できましたね。キーワード検索機能の問題については、次回のセッションで一緒にデバッグしていきましょう。

(2025年7月17日)