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) で区切られます。返されるテキストに含まれる部分は、 テキストアノテーションの場合は設定された文字列の全部、 リンクアノテーションの場合はキャプション文字列の全部、 日付印アノテーションの場合は (上欄に設定された文字列) +' <DATE> '+ (下欄に設定された文字列) となります。返されるテキストはページ順に 並んでいます。ただし、アノテーションの順序は内部状態によっていて、 制御できません。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'を指定すると、それぞれ 幅 / 高さ / ページ全体で表示します。