02-28-2014, 11:44 AM
02-28-2014, 12:29 PM
EmbeddedBrowserEvent というイベントでハンドリングできるみたい。
Code:
{import * from CURL.GUI.EMBEDDED-BROWSER}
{define-proc public {proc-test
e:EmbeddedBrowserEvent,
ebg:EmbeddedBrowserGraphic
}:void
{type-switch e
case error:BrowseErrorEvent do
{popup-message "正しくPDFが表示されてないので閉じる"}
case finish:BrowseFinishEvent do
{if finish.location-url.extension != ".pdf" then
{popup-message "正しくPDFが表示されてないので閉じる"}
}
case doc-nfinish:DocumentFinishEvent do
{if doc-nfinish.location-url.extension != ".pdf" then
{popup-message "正しくPDFが表示されてないので閉じる"}
}
}
}
{def eb =
{try
{EmbeddedBrowserGraphic
{on e:EmbeddedBrowserEvent at ebg:EmbeddedBrowserGraphic do
{proc-test e, ebg}
}
}
catch ex:Exception do
null
}
}
{VBox eb,
{CommandButton
label = "pdfを表示",
{on Action do
def u = "http://www.contiriccardo.it/realtime.pdf"
{eb.browse-url
{parse-url u}
}
}
}
}
02-28-2014, 01:10 PM
EmbeddedBrowserGraphic is hosting the ActiveX control that is pretty much the same as Internet Explorer (It hosts "Shell.Explorer"). I would expect PDFs to display if they work in Internet Explorer on the same machine. But that means that a PDF displaying ActiveX must be installed. If your applet can run privileged, you could directly host a PDF displaying ActiveX using ActiveXGraphic.
02-28-2014, 03:54 PM
Hi, wbardwell
I could not look up ClsId or PrgId of Adobe Reader. :'-(
Please tell me if you know those.
I could not look up ClsId or PrgId of Adobe Reader. :'-(
Please tell me if you know those.
03-04-2014, 01:01 PM
Any recent version can use AcroPDF.PDF or AcroPDF.PDF.1 as the ProgID for the PDF viewer.
See: http://livedocs.adobe.com/acrobat_sdk/9....103.2.html
But if that is installed, EmbeddedBrowserGraphic should also work.
See: http://livedocs.adobe.com/acrobat_sdk/9....103.2.html
But if that is installed, EmbeddedBrowserGraphic should also work.
03-06-2014, 09:59 AM
「PDF をブラウザに表示しない」という設定をすると、
Acrobat Reader がインストールされていても、
ActiveX オブジェクトの生成に失敗するようですね。
■PDFファイルをWebブラウザで開かないようにする
http://www.atmarkit.co.jp/fwin2k/win2kti...beweb.html
wbardwell さんに教えてもらったページのほかのプログラムIDも
このオプションがはずされ全部エラーになるので、
例外でハンドリングするしかなさそうですね。
Thank you for your infomation!
There is a propery which Acorbat Reader inhibit Browser from showing PDF in itself.
Initialize of ActiveXobject of "AcroPDF.PDF" is failed
if the option is false.
error is forrows
アプレット [9-412] - 'AcroPDF.PDF' から ActiveX オブジェクトを初期化することが出来ませんでした。CoCreateInstance() は失敗しました: 0x80040154 クラスが登録されていません
の為、例外ActiveXExceptionで停止
Win32XObj.xobj-connect - <デバッグ情報がありません>
Win32XObj.from-prog-id (constructor) - <デバッグ情報がありません>
Win32XObj.create (factory) - <デバッグ情報がありません>
ActiveXObject.default (factory) - <デバッグ情報がありません>
PDF表示.curl - [evaluator for <unnamed>][行番号: 199]
EvalTopLevelEnv.finish-and-run-aux - <デバッグ情報がありません>
EvalTopLevelEnv.finish-and-run - <デバッグ情報がありません>
IncrementalEvaluatorFile.evaluate-next - <デバッグ情報がありません>
IncrementalEvaluator.evaluate-next - <デバッグ情報がありません>
Applet.load-next-aux - <デバッグ情報がありません>
Applet.load-next - <デバッグ情報がありません>
[{proc} inside Applet.load-start] - <デバッグ情報がありません>
closure_raw_handler - <デバッグ情報がありません>
AlarmQueue.dispatch-alarms - <デバッグ情報がありません>
EventQueue.dispatch-events - <デバッグ情報がありません>
dispatch-events - <デバッグ情報がありません>
run-applet - <デバッグ情報がありません>
ProcessRunnable.run-bound-proc - <デバッグ情報がありません>
Acrobat Reader がインストールされていても、
ActiveX オブジェクトの生成に失敗するようですね。
■PDFファイルをWebブラウザで開かないようにする
http://www.atmarkit.co.jp/fwin2k/win2kti...beweb.html
wbardwell さんに教えてもらったページのほかのプログラムIDも
このオプションがはずされ全部エラーになるので、
例外でハンドリングするしかなさそうですね。
Thank you for your infomation!
There is a propery which Acorbat Reader inhibit Browser from showing PDF in itself.
Initialize of ActiveXobject of "AcroPDF.PDF" is failed
if the option is false.
error is forrows
アプレット [9-412] - 'AcroPDF.PDF' から ActiveX オブジェクトを初期化することが出来ませんでした。CoCreateInstance() は失敗しました: 0x80040154 クラスが登録されていません
の為、例外ActiveXExceptionで停止
Win32XObj.xobj-connect - <デバッグ情報がありません>
Win32XObj.from-prog-id (constructor) - <デバッグ情報がありません>
Win32XObj.create (factory) - <デバッグ情報がありません>
ActiveXObject.default (factory) - <デバッグ情報がありません>
PDF表示.curl - [evaluator for <unnamed>][行番号: 199]
EvalTopLevelEnv.finish-and-run-aux - <デバッグ情報がありません>
EvalTopLevelEnv.finish-and-run - <デバッグ情報がありません>
IncrementalEvaluatorFile.evaluate-next - <デバッグ情報がありません>
IncrementalEvaluator.evaluate-next - <デバッグ情報がありません>
Applet.load-next-aux - <デバッグ情報がありません>
Applet.load-next - <デバッグ情報がありません>
[{proc} inside Applet.load-start] - <デバッグ情報がありません>
closure_raw_handler - <デバッグ情報がありません>
AlarmQueue.dispatch-alarms - <デバッグ情報がありません>
EventQueue.dispatch-events - <デバッグ情報がありません>
dispatch-events - <デバッグ情報がありません>
run-applet - <デバッグ情報がありません>
ProcessRunnable.run-bound-proc - <デバッグ情報がありません>
03-17-2014, 12:56 AM
That error means that it couldn't find something with that class id, maybe you only have the 64-bit version installed, and the Curl RTE is 32bit. You could check what you find in regedit for that name.