タイトルではわかりにくいと思いますが。
印刷アプリ(作成者は別、delphiやVBなどで作成されたアプリ)から
印刷された時にグローバルフック等で、印字帳票の(X:100,Y:100)の位置に文字を挿入するといった事が可能なのでしょうか?
具体的に言いますと、印字帳票内に印刷時間が印字されていないので、印字ができないかと考えたからです。
今後の事を考えるとアプリを作り直す方法が一番だと思うのですが、文字を挿入できるのであればそのやり方をためしてみようかと考えました。
環境:Win7 Delphi2009,XE3
こんにちは.
>位置に文字を挿入するといった事が可能なのでしょうか?
その対象のアプリの作りにもよるかと思いますが(印刷のアルゴリズムとかがわかるとか),
ほとんど不可能と考えていいと思います.
もし,やるとすると,
(1) そのアプリから印刷する時に,一時的に出力先のプリンタを{一時停止}にする
(2) プリンタスプールに印刷データがあるので,それを解析して,該当位置に文字列を挿入する
(3) プリンタの[一時停止]を解除する
ということが考えられなくもないですが,相当な困難が予想されます.
対象のアプリが,COM サーバーを提供していて,API を提供していればできるかも知れません.
たとえば,エクセル,ワード,Adobe Acrobat 等のように.
失礼.
>ということが考えられなくもないですが,相当な困難が予想されます.
は,Win 7 の場合,Printerフォルダ内の書き換えは,OS の特権が必要だったかも知れません.
とすると,この方法は使えませんね.
>>Mr.XRAYさん
返信ありがとうございます。
内容から難しい事がわかりました、今考えている方法として
pdfプリンターでpdfにして、そのpdfを画像としてQuickReportに表示して文字を追加してみようと思ったのですが、この手法はどう思われますか?
実際にはまだ試していないので、実際にできるかはわからないのですが参考程度に意見をお聞かせ願いますか。
ツイート | ![]() |