普段の執筆作業で利用できる簡易PDFビューアがほしくなったので作り始めました。
以下の文章は Claude Code が作成したものです。
pdfview: PDFビューアツールの初期実装 by Claude Code
2025年7月17日
はじめに
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日)