作成した返信
-
著者投稿
-
MZPlatformユーザー会サイト管理者
MZAXの比較についてMZアプリとしての実現性を検討しまして、ある程度は可能であることがわかりました。不完全な状態ではありますが、作成したMZアプリの圧縮ファイルを添付します。
添付したMZアプリでは、比較する2つのMZAX(XML)のDOMツリーを作成して、コンポーネント宣言とメソッド起動に関する2つのテーブルを作成し、そのテーブルを比較しています。左側のテーブルに比較結果を表示しており、黄色の行が左側のみにある行、赤色の行が右側のみにある行となっています。制限としては、対象ファイルに複合コンポーネントが含まれている場合は、その階層は無視されます。また、起動メソッドの引数が同じかどうかまでは比較しておりません。
添付ファイル:
MZPlatformユーザー会サイト管理者残念ながら、PDFファイルを画像ファイル入力で読み込むことはできません。
あらかじめPDFファイルを画像ファイルに変換するなどの対応をお願いします。MZPlatformユーザー会サイト管理者PDFファイルを帳票に取り込むとは、どのような状態を想定されていますでしょうか。
例えば、PDFファイルの内容を別ソフトで表示して、手作業でPDFファイルの内容を画像としてMZ側に取り込むことは可能と思います。一方、PDFファイル名を指定してMZ側にその内容(書いてある文字等)を自動で読み込むことはできません。
また、もう一つのご質問についても確認させてください。
2015年4月24日のご質問「pdfファイルの印刷」で説明した方法でPDFファイルを直接印刷するときに、特定のプリンタを指定できるかというご質問でしょうか。もしそうであれば、Adobe社による情報を参考にお試しください。
MZPlatformユーザー会サイト管理者残念ながら、現状では画像の中央表示機能はございません。
MZPlatformユーザー会サイト管理者mzaxのファイル書式は非公開ではありませんが、書式を規定した文書が準備されているわけではありません。既存のXMLファイルビューワー等でご覧いただくか、添付のZIPファイルを展開したMZアプリで構造をご確認いただけますでしょうか。
適当なMZAXファイルをご覧いただけるとわかるように、MZアプリはinformationタグの中にbase,components,invocations,displays,papersタグが含まれていて、componentsがコンポーネントの宣言を、invocationsがイベント処理を記述する部分です。このあたりを比較すればご希望の処理が実現できると思いますが、MZアプリとして可能かどうかは検討が必要なので、お時間をいただけると助かります。
添付ファイル:
MZPlatformユーザー会サイト管理者ご希望の処理の実現方法につきましては、少々複雑になりますが、添付のZIPファイルを展開してビルダーでご覧ください。一部日本語化されていないメソッドを使用しますが、それを選択する場合は起動メソッド設定のダイアログで「全メソッド対象」にチェックをすると選択できます。
処理の流れとしては、ファイル選択ダイアログを表示する前に、フィルタをクリアして必要なフィルタを追加して、表示したいフィルタを選択しておきます。
単独の拡張子でフィルタを作成する場合は、ファイル選択ダイアログのメソッド起動だけで良いのですが、ご希望のような複数の拡張子でフィルタを作成する場合は、リスト格納変数で複数の拡張子の文字列で構成されるリストを作成してそれを渡す必要があります。
添付ファイル:
MZPlatformユーザー会サイト管理者ご説明いただきありがとうございます。状況は理解できました。
先走って書いてしまいましたが、ご希望の処理を実現するためには、まずスレッドアロケータコンポーネントを用いる必要があります。少々複雑になりますが、添付のZIPファイルを展開してビルダーでご覧ください。
処理実行時にラベルを表示する方法と、ダイアログを表示する方法の2種類について記述してあります。実行中にボタンを押せなくする処理も含めてあります。sleepのところを実際の処理に置き換えてお試しください。なお、ダイアログを表示する方法では、属性情報設定でModalをfalseにしないと正常に動作しませんのでご注意ください。
添付ファイル:
MZPlatformユーザー会サイト管理者ビルダーの機能ではなく、かつテキストレベルでの比較ということであれば、mzaxファイルをテキストファイルとして、お好きな環境でご自由にお試しください。mzaxファイルは独自形式のXMLファイルとなっていて、テキストファイルとして処理することは可能と思います。
以下、こちらで試した範囲の情報提供となります。
Windowsのコマンドプロンプトでfcコマンドがありますが、期待する出力は得られませんでした。また、同じくWindows環境でMinGWを用いてdiffコマンドを試しましたが、前述のfcコマンドよりは多少良いぐらいで、実際の場面で役に立つかはわかりませんでした。MZPlatformユーザー会サイト管理者MZ Platform単体で、既存のPDFファイルに文字を書き込む機能はございません。
また、ボタンの2回押しを避けるという件ですが、これはタイマーやスレッドなどを使って、処理中でもボタンを押せるようにしているということでしょうか。もしそうであれば、処理中はボタンを押し下げ不可にするなどの設定も可能です。
ご質問中の「処理中にフォーム表示にラベルだと文字が白くなり」について、状況がよくわかりませんので、もう少し詳しく説明していただけますでしょうか。
MZPlatformユーザー会サイト管理者たいへん恐縮ですが、アプリケーションの比較機能はございません。
改訂時の変更点については、コメント行に説明を記入するなどでご対応いただけますでしょうか。 -
著者投稿