====== binder ====== ``binder`` モジュールは、DocuWorks バインダー (拡張子 ``.xbd``) を取り扱います。 モジュール関数 ============== ``create(path, color='RED', size='FREE')`` 与えられたパス名 ``path`` を持つ新しい DocuWorks バインダーを ファイルシステム上に生成します。 ``create_binder(path, color='RED', size='FREE')`` ``create()`` の別名です。 Binder オブジェクト =================== Binder オブジェクトは、DocuWorks バインダーを表します。 これはファイルシステムに実在するファイルです。 Binder オブジェクトは、イテレータプロトコルをサポートしており、 DocumentInBinder オブジェクトを順次取得できます。 Binder クラスは、その基底クラスである XDWFile クラスに多くを負っています。 ``xdwfile`` モジュールを参照してください。 コンストラクタ -------------- クラス ``Binder(path)`` ``path`` は Windows ファイルシステム上のパス名です。 インスタンス属性 ---------------- ``unicode`` バインダー内文書名を Unicode で保存します。初期値は ``False`` です。 インスタンスメソッド -------------------- ``annotation_text()`` バインダー内のすべてのテキスト / リンク / 日付印アノテーションに 含まれているテキストデータ (アノテーションテキスト) を返します。 アノテーション間は ``'\v'`` (0x0b) で、ページ間は ``'\f'`` (0x0c) で区切られます。返されるテキストに含まれる部分は、 テキストアノテーションの場合は設定された文字列の全部、 リンクアノテーションの場合はキャプション文字列の全部、 日付印アノテーションの場合は (上欄に設定された文字列) + ``' '`` + (下欄に設定された文字列) となります。返されるテキストはページ順に 並んでいます。ただし、アノテーションの順序は内部状態によっていて、 制御できません。 ``append(path)`` パス名 ``path`` で示される DocuWorks 文書を、バインダーの最後尾に 追加します。 ``insert(-1, path)`` と同じです。 ``content_text(type=None)`` バインダー内のページタイプが ``type`` (``'APPLICATION'`` または ``'IMAGE'`` 。省略時は両方) であるすべてのページに含まれるページテキスト (アプリケーションテキストまたは OCR テキスト) を返します。 返される文字列はページ順に並んでいて、ページ間は ``'\f'`` (0x0c) で区切られます。ただし、OCR テキストについては、OCR 処理を行わないと 得られません。 ``delete(pos)`` バインダー内の ``pos`` 番目 (0 から開始します) にあるバインダー内文書を 削除します。 ``pos`` よりも後にあるバインダー内文書の位置はひとつずつ 繰り上げられます。 ``del self[pos]`` としても同じです。 ``document(pos)`` バインダー内の ``pos`` 番目 (0 から開始します) にあるバインダー内文書 (DocumentInBinder オブジェクト) を返します。 ``document_and_page(pos)`` バインダー内の通しページで ``pos`` ページ目 (0 から開始します) にあるページが属するバインダー内文書と、そのページ自体 (Page オブジェクト) からなる、2 要素のタプルを返します。得られるページ (第 2 要素) の属性 ``pos`` は、バインダー内文書の中での相対的なページ (0 から開始します) であることに注意してください。 ``document_pages()`` バインダー内文書のページ数を列挙したリストを返します。 ``export(pos, path)`` バインダー内の ``pos`` 番目 (0 から開始します) にあるバインダー内文書 (DocumentInBinder オブジェクト) を別ファイルに書き出します。 ``path`` は書き出し先のパス名です。 ``path`` を設定しない場合は、バインダー内 文書名を使用します。実際に書き出されたファイルのパス名を返します。 ``find_fulltext(pattern)`` バインダー内のすべてのページのページテキストおよびアノテーションテキスト について ``pattern`` を検索し、マッチしたページを集めた PageCollection オブジェクトを返します。 ``pattern`` には単純なテキストまたは ``re`` モジュールでサポートされる正規表現を指定できます。 ``fulltext()`` バインダー内のすべてのページテキストおよびテキスト / リンク / 日付印 アノテーションに含まれているアノテーションテキストを返します。 返されるテキストはページ順に並んでいて、ページごとに ``'\f'`` (0x0c) で区切られ、ページ内では最初にページテキストが置かれ、以後は ``'\v'`` (0x0b) で区切られながらアノテーションテキストが続きます。 アノテーションの順序は内部状態によっていて、制御できません。 ``insert(pos, path)`` パス名 ``path`` で示される DocuWorks 文書を、バインダー内の ``pos`` 番目 (0 から開始します) にします。末尾に挿入する場合は ``pos`` に -1 を指定します。pos 以降のバインダー内文書の位置はひとつずつ 繰り下げられます。 ``page(pos)`` バインダー内の通しページ番号が ``pos`` であるページ (Page オブジェクト) を返します。 ``view(light=False, wait=True, page=0, fullscreen=False, zoom=0)`` バインダーの内容を複製した閲覧用一時ファイルを DocuWorks Viewer または DocuWorks Viewer Light のいずれかで閲覧します。 パスワード、DocuWorks 電子印鑑または電子証明書によるセキュリティーの 設定がされている文書では、エラーとなります。 ``light`` が真である場合は、DocuWorks Viewer Light を優先して利用します。 ``wait`` が真である場合は、DocuWorks Viewer (Light) が終了するのを待ち、 閲覧中に追加されたものも含めて、ページ番号 (0 から開始します) をキー、 各ページのアノテーションの情報 (``AnnotationCache`` オブジェクト) を列挙したリストを値とする辞書を返します。アノテーションが存在しない ページは含まれません。閲覧用一時ファイルは自動的に消去されます。 ``wait`` が偽である場合は、DocuWorks Viewer (Light) を起動したら すぐに制御が戻り、 ``(proc, temp)`` という 2 要素からなるタプルを 返します。この場合、 ``proc`` は ``subprocess`` モジュールが提供する ``Popen`` オブジェクトであり、 ``temp`` は DocuWorks Viewer (Light) で閲覧中の一時ファイルのパス名です。 ``temp`` およびその親ディレクトリは、このメソッドを呼び出した側が 必要がなくなった時点で消去してください。 :: proc, temp = doc.view(wailt=False) # ... wait for proc.poll() != None ... os.remove(temp) os.rmdir(os.path.dirname(temp)) # shutil.rmtree() を利用してもよい ``page`` が指定されている場合は、最初からそのページ (0 から開始します) を表示します。 ``fullscreen`` が真である場合は、フルスクリーン (プレゼンテーション モード) で表示します。 ``zoom`` には表示倍率を % で表示します。ただし、0 は 100% を意味します。 また ``'WIDTH'``, ``'HEIGHT'``, ``'PAGE'`` を指定すると、それぞれ 幅 / 高さ / ページ全体で表示します。