xdwfile¶
xdwfile モジュールでは、Binder および Document クラスの基底クラスである
XDWFile クラスに関連する機能を用意しています。
モジュール関数¶
xdwfile モジュールでは、次のモジュール関数を利用できます。
copy(input_path, output_path=None)input_pathで示されるファイルを単純に複製します。output_pathは複製先のパス名です。指定しない場合は、input_pathから 派生したパス名となります。実際に複製されたファイルのパス名を返します。create_sfx(input_path, output_path=None)input_pathで示される DocuWorks 文書またはバインダーから 自己解凍文書 (実行形式) を生成します。output_pathは生成先の パス名 (指定しない場合は、input_pathと同じ) ですが、拡張子は 指定にかかわらず'.exe'とされます。保護された DocuWorks 文書 またはバインダーをinput_pathに指定することはできません。 実際に生成された自己解凍文書のパス名を返します。DocuWorks 9 以降では、この関数を呼び出すと NotImplementedError となります。
extract_sfx(input_path, output_path=None)input_pathで示される自己解凍文書 (実行形式) から元の DocuWorks 文書またはバインダーを抽出します。output_pathは抽出先のパス名 (指定しない場合はinput_pathと同じ) ですが、拡張子は指定に関わらず'.xdw'または'.xbd'となります。実際に抽出された DocuWorks 文書またはバインダーのパス名を返します。optimize(input_path, output_path=None)input_pathで示される DocuWorks 文書またはバインダーを最適化します。output_pathは最適化された DocuWorks 文書またはバインダーの 出力先のパス名です。指定しない場合は、input_pathから 派生したパス名となります。最適化により、不要なデータが削除され、 (DocuWorks バージョン 3 以前の) MH 圧縮されていた白黒イメージのページが MMR 圧縮へ変換されます。出力先の DocuWorks 文書またはバインダーは、 インストールされている DocuWorks が対応する最新のデータ形式となります。 保護された DocuWorks 文書またはバインダー、および署名された DocuWorks 文書またはバインダーをinput_pathに指定することはできません。 実際に出力された DocuWorks 文書またはバインダーのパス名を返します。protect(input_path, output_path=None, protect_type="PASSWORD", auth="NONE", **options)input_pathで示される DocuWorks 文書またはバインダーを保護した 新たな DocuWorks 文書またはバインダーを生成します。output_pathは生成先のパス名です。指定しない場合は、input_pathから 派生したパス名となります。protect_typeは'PASSWORD','PASSWORD128','PASSWORD256','PKI'または'PKI256'です (小文字でもかまいません)。'PASSWORD256'および'PKI256'は DocuWorks 8 以上で利用できます。authは'NONE','NODIALOG'または'CONDITIONAL'です (小文字でもかまいません)。実際に生成されたファイルのパス名を返します。protect_typeが'PASSWORD'または'PASSWORD128'の場合、**optionsとしてキーワード引数passwordに読取用パスワード,fullaccessにフルアクセス用パスワード,commentに パスワード入力用ダイアログに表示するコメントを指定します。protect_typeが'PKI'の場合、**optionsとして キーワード引数permissionに'EDIT_DOCUMENT','EDIT_ANNOTATION','PRINT'および'COPY'(小文字でもかまいせん) のうち 0 個以上をカンマ','ではさんで 列挙した文字列、certificatesに DER (RFC3280) フォーマットの 文字列で表現された読取アクセス用証明書のシーケンス、fullaccesscertsに DER (RFC3280) フォーマットの文字列で表現された フルアクセス用証明書のシーケンスを指定します。protection_info(path)pathで示される DocuWorks 文書またはバインダーの保護状態を示す 2 個の要素からなるタプルを返します。1 番目の要素は保護の方法を示し、 その値は'PASSWORD','PASSWORD128','PKI','STAMP','CONTEXT_SERVICE','PASSWORD256'または'PKI256'です。 2 番目要素は文書またはバインダーについて許可されている操作を示し、 その値は'EDIT_DOCUMENT','EDIT_ANNOTATION','PRINT'および'COPY'のうち 0 個以上をカンマ','をはさんで 列挙した文字列です。1 番目の要素が'CONTEXT_SERVICE'である場合は、 2 番目要素で許可されていることになっている操作が実際には許可されない ことがあります。sign(input_path, output_path=None, page=0, position=None, type="STAMP", certificate=None)input_pathで示される DocuWorks 文書またはバインダーに署名を 付加した新たな DocuWorks 文書またはバインダーを生成します。output_pathは生成先のパス名です。指定しない場合は、input_pathから派生したパス名となります。pageは 署名を表示するページのページ番号 (0 から始まります) です。positionは Point オブジェクトまたはNoneです。NoneはPoint(0, 0)とみなされます。typeは'STAMP'または'PKI'です (小文字でもかまいません)。certificateはtypeが'PKI'である場合に用いる DER (RFC3280) フォーマットの文字列で表現された証明書です。 実際に生成されたファイルのパス名を返します。unprotect(input_path, output_path=None, auth="NONE")input_pathで示される DocuWorks 文書またはバインダーの保護を 解除した新たな DocuWorks 文書またはバインダーを生成します。output_pathは生成先のパス名です。指定しない場合は、input_pathから派生したパス名となります。authは'NONE','NODIALOG'または'CONDITIONAL'です (小文字でもかまいません)。 実際に生成されたファイルのパス名を返します。xdwopen(path, readonly=False, authenticate=True, autosave=False)pathで示される DocuWorks 文書またはバインダーを開きます。readonlyが真である場合は、読取専用で開きます。authenticateが真である場合は、保護された DocuWorks 文書またはバインダーであっても、開くパスワードが設定されていない場合、 パスワードキャッシュにより認証が成功した場合、および印鑑ケースが 開いており認証が成功した場合は、開くことができます。authenticateがFalseである場合は、保護された DocuWorks 文書またはバインダーを開くことはできません。autosaveが真 である場合は、close()の際に自動的にsave()を行います。 開かれた DocuWorks 文書またはバインダーを Document オブジェクト または Binder オブジェクトで返します。
XDWFile オブジェクト¶
XDWFile クラスは、Document クラスおよび Binder クラスの基底クラスで、DocuWorks が扱う 2 種類のファイル形式 (拡張子 .xdw および .xbd) に共通する機能を扱います。
XDWFile クラスはコンテキスト管理プロトコルをサポートしており、with 文で利用できます。次のように利用します。
with Document(path).open() as doc:
...
または
with xdwopen(path) as doc:
...
コンストラクタ¶
- クラス
XDWFile(path) pathは DocuWorks 文書またはバインダーを示すパス名です。 ファイル名のうち拡張子は'.xdw'または'.xbd'でなければ なりません。実際に文書またはバインダーを操作するには、 インスタンスメソッドopen()を呼び出す必要があります。
インスタンス属性¶
annotatable文書またはバインダーへのアノテーションの追加やアノテーションの編集・ 削除が許可されている場合は
Trueです。open()後に有効な属性です。attachments文書またはバインダーに添付されたオリジナルデータからなる AttachmentList オブジェクトです。
open()後に有効な属性です。authenticate文書またはバインダーを開く際に非対話の認証処理を行ったのであれば
Trueです。非対話の認証処理についてはモジュール関数xdwopen()を参照してください。open()後に有効な属性です。binder_colorバインダーの場合、バインダーの色を示します。
open()後に有効な属性です。binder_sizeバインダーの場合、バインダーの大きさを
'A4','FREE'などの文字列で示します。open()後に有効な属性です。copyable文書またはバインダーの複製が許可されている場合は
Trueです。open()後に有効な属性です。dirDocuWorks 文書またはバインダーが存在するフォルダ (ディレクトリ) です。
documentsバインダーの場合、中に格納されている DocuWorks 文書の個数です。
open()後に有効な属性です。editable文書またはバインダーの編集が許可されている場合は
True、 そうでない場合はFalseです。open()後に有効な属性です。handleXDWAPI が内部で使用するドキュメントハンドルです。
open()後に有効な属性です。name文書名です。ファイル名から拡張子 (
'.'を含む) を除いた部分と 同じです。pages文書またはバインダーのページ数です。バインダーの場合は、通しでの 総ページ数です。
open()後に有効な属性です。printable文書またはバインダーの印刷が許可されている場合は
Trueです。open()後に有効な属性です。properties文書またはバインダーに設定されているユーザー定義プロパティの個数です。
open()後に有効な属性です。protectionDocuWorks 文書またはバインダーの保護に関する 2 要素のタプルです。 最初の要素が保護方式 (
'PASSWORD','PASSWORD128','PKI'または'CONTEXT_SERVICE')、次の要素が許可されている操作 ('EDIT_DOCUMENT','EDIT_ANNOTATION','PRINT'または'COPY'の組み合わせをカンマ','で区切った文字列) です。readonly文書またはバインダーを読取専用で開いたのであれば
Trueです。open()後に有効な属性です。signatures文書またはバインダーに付けられている署名の数です。
open()後に有効な属性です。status文書またはバインダーに付けられている署名の検証結果です。 文書またはバインダーが開かれてからまだ署名の検証が行われていない場合は
'NONE'になります。署名の検証が行われた場合は、署名後にその文書 またはバインダーが編集されていれば'EDIT'、編集されていなければ'NOEDIT'となります。署名の検証は行われたものの、その文書または バインダーの内容が破損または改竄されていた場合は'BAD'となります。open()後に有効な属性です。type文書タイプです。
'DOCUMENT'または'BINDER'となります。version対応する DocuWorks のバージョン番号です。
open()後に有効な属性です。
インスタンスメソッド
close()文書またはバインダーを閉じます。
save()しないでこのメソッドを 呼び出すと、open()後に行った操作がファイルに反映されません。delete_pageform(sync=False)ページフォームを削除します。
syncが真である場合は、update_pageform()と同様にページフォームをそれぞれ削除します。delform(sync=False)delete_pageform(sync)と同じです。delprop(name)del_property(name)と同じです。del_property(name)文書またはバインダーに設定されたユーザー定義のプロパティ
nameを削除します。filename()文書またはバインダーのファイル名を返します。拡張子も含まれます。
get_property(name)文書またはバインダーに設定されたユーザー定義のプロパティの値を返します。
nameがstrである場合は、それをプロパティ名とみなします。nameがintである場合は、それをプロパティの番号 (0 から始まる 整数) とみなします。文書またはバインダーに設定されているプロパティの 個数は、インスタンス属性propertiesで参照できます。返される値は、nameがintである場合はタプル (プロパティ名, プロパティ値)、nameがstrである場合はbool,datetime.dateまたはintです。getprop(name)get_property(name)と同じです。get_userattr(name)文書またはバインダーに設定されたユーザー属性
nameの値をstrで返します。has_property(name)文書またはバインダーに設定されたユーザ定義のプロパティ
nameが 存在すればTrueを、存在しなければFalseを返します。hasprop(name)has_property(name)と同じです。open(readonly=False, authenticate=False)文書またはバインダーを開きます。
readonlyが真である場合は、 読取専用で開きます。authenticateが真である場合は、 非対話の認証処理を行った上で開きます。selfを返します。 非対話の認証処理についてはモジュール関数xdwopen()を 参照してください。optimize(output_path=None)モジュール関数
optimize()と同等です。output_pathが 指定された場合は、最適化された文書またはバインダーをoutput_pathに書き出します。output_pathが指定されなかった場合は、 文書またはバインダーのファイル自体を最適化されたものに置き換えます。 文書またはバインダーがこのメソッドを呼び出した時点でopen()されていた場合は、いったんsave()およびclose()を行い、 次に最適化を実施して、再度open()します。output_pathが指定された場合に限り、実際に生成された最適化済みの文書または バインダーのパス名を返します。pageform(form)文書またはバインダーに設定されたページフォーム (見出し・ページ番号) のうち種類が
formであるものを PageForm オブジェクトで返します。formには'header','footer','top_image','bottom_image'または'page_number'を指定します。pageform_text()文書またはバインダーに設定されたページフォーム (見出し・ページ番号) からテキストを抽出して返します。
pageform('header').text + '\v' + pageform('footer').textと同じです。pathname()文書またはバインダーのフルパス名を返します。
protect(output_path=None, protect_type='PASSWORD', auth='NONE', **options)モジュール関数
protect()と同等です。output_pathが指定された場合は、保護された文書またはバインダーをoutput_pathに書き出します。output_pathが指定されなかった場合は、 文書またはバインダーのファイル自体を保護されたものに置き換えます。 文書またはバインダーがこのメソッドを呼び出した時点でopen()されていた場合は、いったんsave()およびclose()を行い、 次に保護を行って、再度open()します。output_pathが 指定された場合に限り、実際に生成された保護された文書または バインダーのパス名を返します。save()文書またはバインダーを (上書き) 保存します。このメソッドを 呼び出さないで
close()すると、open()後に行った操作が ファイルに反映されません。setprop(name, value)set_property(name, value)と同じです。set_property(name, value)文書またはバインダーのユーザー定義のプロパティ
nameに値valueを設定します。valueはbool,datetime.date,intまたはstrで指定します。set_userattr(name, value)文書またはバインダーのユーザー属性
nameに値valueを設定します。valueはstrで指定します。sign(output_path=None, page=0, position=None, type='STAMP', certificate=None)モジュール関数
sign()と同等です。output_pathが指定された 場合は、署名された文書またはバインダーをoutput_pathに 書き出します。output_pathが指定されなかった場合は、 文書またはバインダーのファイル自体を署名されたものに置き換えます。 文書またはバインダーがこのメソッドを呼び出した時点でopen()されていた場合は、いったんsave()およびclose()を行い、 次に署名を行って、再度open()します。output_pathが 指定された場合に限り、実際に生成された署名後の文書またはバインダーの パス名を返します。signature(pos)文書またはバインダーに付けられている署名のうち
pos番目 (0 から始まる整数) のものを StampSignature または PKISignature オブジェクトで返します。unprotect(output_path=None, auth='NONE')モジュール関数
unprotect()と同等です。output_pathが 指定された場合は、保護を解除された文書またはバインダーをoutput_pathに書き出します。output_pathが指定されなかった 場合は、文書またはバインダーのファイル自体を保護解除されたものに 置き換えます。文書またはバインダーがこのメソッドを呼び出した時点でopen()されていた場合は、いったんsave()およびclose()を行い、次に保護を解除して、再度open()します。output_pathが指定された場合に限り、実際に生成された保護解除後の文書または バインダーのパス名を返します。update_pageform(sync=False)ページフォーム (見出し・ページ番号) を更新します。
pageform()で取得された各ページフォーム (上/下見出し、上/下画像およびページ番号) の属性に設定された内容に従って、ページフォームを更新します。syncが真であり、かつページフォームの設定先 (self.doc) が DocuWorks 文書である場合は、DocuWorks 文書がバインダー内文書で あったときに設定されたページフォームも合わせて更新します。syncが真であり、かつページフォームの設定先が DocuWorks バインダーである場合は、バインダー内文書すべてについて、 それらが 単体の DocuWorks 文書であったときに設定されたページフォームも 合わせて更新します。updform(sync=False)update_pageform(sync)と同じです。
AttachmentList オブジェクト¶
AttachmentList クラスは、DocuWorks 文書またはバインダーのオリジナルデータ (添付ファイル) 一覧を扱います。個々のオリジナルデータは、Attachment クラスで扱います。
AttachmentList クラスは、イテレータプロトコルに対応しています。 イテレータとして使用した場合、Attachment オブジェクトを順次返します。
コンストラクタ¶
- クラス
AttachmentList(doc, size=None) docはオリジナルデータが属する DocuWorks 文書またはバインダー (Document オブジェクトまたは Binder オブジェクト) です。sizeはオリジナルデータの個数です。指定しない場合はdocが持つ オリジナルデータの数を自動的に取得して設定します。
インスタンス属性¶
docコンストラクタに与える引数と同等です。
sizeコンストラクタに与える引数と同等です。
インスタンスメソッド¶
attachment(pos)オリジナルデータ群の
pos番目 (0 から始まります) の オリジナルデータを Attachment オブジェクトとして返します。posに負数を指定した場合は、末尾から数えた位置 (-1 が末尾) と解釈します。append(path)pathで示されるファイルをオリジナルデータとして取り込み、 オリジナルデータ群の最後に追加します。insert(-1, path)と同じです。insert(pos, path)pathで示されるファイルをオリジナルデータとして取り込み、 オリジナルデータ群のpos番目に挿入します。pos番目以降にあったオリジナルデータの位置は、順次繰り下げられます。posに負数を指定した場合は、末尾から数えた位置 (-1 が末尾) と解釈します。delete(pos)オリジナルデータ群の
pos番目 (0 から始まります) の オリジナルデータを削除します。pos番目よりも後ろにあった オリジナルデータの位置は、順次繰り上げられます。posに負数を指定した場合は、末尾から数えた位置 (-1 が末尾) と解釈します。__delitem__(pos)delete(pos)と同じです。__getitem__(pos)attachment(pos)と同じです。
Attachment オブジェクト¶
Attachment クラスは、DocuWorks 文書またはバインダーの個々の オリジナルデータ (添付ファイル) を扱います。
コンストラクタ¶
- クラス
Attachment(doc, pos) docはオリジナルデータが属する DocuWorks 文書またはバインダー (Document オブジェクトまたは Binder オブジェクト) です。posはdoc.attachments(AttachmentList オブジェクト) の中での オリジナルデータの位置です (0 から始まります)。posに負数を指定することはできません。
インスタンス属性¶
datetimeファイルの作成日時です。
datetime.datetimeオブジェクトです。nameオリジナルデータ名です。ファイル名に相当します。パス名ではありません。
作成時と参照時のシステムロケール (コードページ)が異なる場合は、 文字化けが生じることがあります。対策として、
self.name_compat()を利用できます。オリジナルデータ名を保存 (更新) することはできません。 必要であれば、いったん外部へ保存 (
save(self.name_compat())) してから再度取り込む (AttachmentList.append()) 方法が考えられます。sizeファイルの容量です。単位はバイトです。
text_typeオリジナルデータ名の格納形式です。
'MULTIBYTE'または'UNICODE'です。
インスタンスメソッド¶
save(path=None)オリジナルデータをファイルシステム上に保存します。
pathを指定しない場合は、self.name(またはそこから派生したパス名) を用います。name_compat(encoding, errors='ignore')オリジナルデータ名を、現在のシステムロケールにかかわらずコードページを 指定して読み取ります。
encodingには作成時のロケール (日本語 Windows の場合は通常'cp932') を指定します。このメソッドは、システムロケールを切り替える前に作成したオリジナルデータ 名の文字化けを回避するために用意されています。
PageForm オブジェクト¶
PageForm クラスは、ページフォームを扱います。ページフォームの種類
(上見出し、上画像、下見出し、下画像およびページ番号) ごとに PageForm
オブジェクトを生成し、設定を行ったうえで、XDWFile オブジェクトの
update_pageform() メソッドを呼び出すと、DocuWorks 文書または
バインダーの見出し等が更新されます。
コンストラクタ¶
- クラス
PageForm(doc, form) PageForm クラスは、上見出し、上画像、下見出し、下画像および ページ番号を扱います。
docはページフォームが属する文書または バインダー (Document オブジェクトまたは Binder オブジェクト) です。formは'HEADER','TOPIMAGE','FOOTER','BOTTOMIMAGE'または'PAGENUMBER'です (小文字でもかまいません)。
インスタンス属性¶
alignment表示の水平位置です。
'LEFT','CENTER'または'RIGHT'で指定します (小文字でもかまいません)。back_color背景色です。色指定についてを参照してください。
beginning_page上/下見出しの開始ページです (0 から始まります)。
page_rangeが'SPECIFIED'である場合に有効です。digitページ番号の桁数です。
docページフォームを含む DocuWorks 文書またはバインダー (Document または Binder オブジェクト) です。
ending_page上/見出しの開始ページです (0 から始まります)。
page_rangeが'SPECIFIED'である場合に有効です。font_char_setテキストの属性を指定します。フォント指定についてを参照してください。
font_nameテキストの属性を指定します。フォント指定についてを参照してください。
font_pitch_and_familyテキストの属性を指定します。フォント指定についてを参照してください。
font_sizeテキストの属性を指定します。フォント指定についてを参照してください。
font_styleテキストの属性を指定します。フォント指定についてを参照してください。
fore_color前景色です。色指定についてを参照してください。
formページフォームの種類です。値は
'HEADER','FOOTER','TOPIMAGE','BOTTOMIMAGE'または'PAGENUMBER'です。image_file上/下画像に指定する画像のパス名です。設定のみ行えます。
left_right_margin上/下見出しでの左右の余白です。単位はミリメートルです。 1 ミリメートル未満は無視されます。
page_rangeページフォームの適用範囲です。
'ALL'(小文字でもかまいません) で全ページが、'SPECIFIED'(小文字でもかまいません) でbeginning_pageからending_pageまでが適用範囲になります。starting_numberページ番号の開始番号です。
text上/下見出しまたはページ番号に表示するテキストです。 ページ番号の場合は、
'#'が実際のページ番号へ置換されます。top_bottom_margin上見出しでの上余白、または下見出しでの下余白です。 単位はミリメートルです。1 ミリメートル未満は無視されます。
ver_positionページ番号の表示位置です。
'TOP'または'BOTTOM'(小文字でもかまいません) で指定します。zoom上/下画像の表示倍率です。単位はパーセントです。 10 以上 400 以下で指定します。1 未満は無視されます。
インスタンスメソッド¶
update(sync=False)self.doc.update_pageform(sync)と同じです。delete(sync=False)self.doc.delete_pageform(sync)と同じです。
BaseSignature オブジェクト¶
BaseSignature クラスは、StampSignature クラスと PKISignature クラスの 基底クラスです。
コンストラクタ¶
- クラス
BaseSignature(doc, pos, page, position, size, dt) docは署名が属する文書またはバインダー (Document オブジェクト または Binder オブジェクト) です。posはdocの署名一覧の中での位置です (0 から始まります)。pageは署名がつけられたページのページ番号です。positionは署名の表示位置 (Point オブジェクト) です。sizeは署名の表示域の大きさ (Point オブジェクト) です。dtは署名日時 (datetime.datetimeオブジェクト) です。
インスタンス属性¶
コンストラクタに与える引数と同等です。
インスタンスメソッド¶
update()署名の状態を取得します。その結果、
self.doc.statusが更新されます。
StampSignature オブジェクト¶
StampSignature クラスは、DocuWorks 内蔵の電子印鑑による署名を扱います。 基底クラスは BaseSignature です。
コンストラクタ¶
- クラス
StampSignature(doc, pos, page, position, size, dt, stamp_name="", owner_name="", valid_until=None, memo="", status=None) doc,pos,page,position,size,dtは、 BaseSignature の引数と同じです。stamp_nameは電子印鑑の名前、owner_nameは電子印鑑の所有者として登録された名前です。valid_untilはdatetime.datetimeオブジェクトで、 有効期限の終了日時です。memoは電子印鑑に付けられた備考です。statusは署名の状態で、'NONE','TRUSTED'または'NOTRUST'のいずれかです。
インスタンス属性¶
コンストラクタに与える引数と同等です。
PKISignature オブジェクト¶
PKISignature クラスは、PKI (公開鍵基盤) 電子証明書による署名を扱います。 基底クラスは BaseSignature です。
コンストラクタ¶
- クラス
PKISignature(doc, pos, page, position, size, dt, module='', subjectdn='', subject='', issuerdn='', issuer='', not_before=None, not_after=None, serial=None, certificate=None, memo='', verification_type=None, status=None) doc,pos,page,position,size,dtは、 BaseSignature の引数と同じです。moduleはセキュリティモジュールの名前 (str) です。subjectdnは SUBJECT DN (distinguished name) の内容 (最大 511 バイト) です。subjectは SUBJECT の内容です。これは電子証明書の CN, OU, O または E フィールドにこの順で対応します。issuerdnおよびissuerは ISSUER DN および ISSUER の内容で、subjectdnおよびsubjectと同様です。いずれもstrです。not_before,not_afterはdatetime.datetimeオブジェクトで、 それぞれ有効期間の始期と終期です。serialは署名者の証明書のシリアル番号を16進数で表した文字列 (str) です。certificateは DER (RFC3280) フォーマットのstrで表現された 証明書です。memoは備考の文字列 (str) です。verification_typeは署名の検証方法です。'LOW','MID_LOCAL','MID_NETWORK','HIGH_LOCAL'または'HIGH_NETWORK'です。statusは署名の状態です。'UNKNOWN','OK','NO_ROOT_CERTIFICATE','NO_REVOCATION_CHECK','OUT_OF_VALIDITY','OUT_OF_VALIDITY_AT_SIGNED_TIME','REVOKE_CERTIFICATE','REVOKE_INTERMEDIATE_CERTIFICATE','INVLIAD_SIGNATURE','INVALID_USAGE'または'UNDEFINED_ERROR'です。
インスタンス属性¶
コンストラクタに与える引数と同等です。