Thread Rating:
  • 214 Vote(s) - 2.69 Average
  • 1
  • 2
  • 3
  • 4
  • 5
PDFが正常に表示されないことをハンドリングするには
02-28-2014, 11:44 AM,
#1
PDFが正常に表示されないことをハンドリングするには
Curl で EmbeddedBrowserGraphic を利用して、
PDFなど、外部アプリケーションを利用するページを表示しようとした場合、
必要なランタイムがインストールされていないと、エラーになると思います。

これをCurl側で検知することは出来ますか。
Reply
02-28-2014, 12:29 PM,
#2
RE: PDFが正常に表示されないことをハンドリングするには

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}
            }
        }
    }
}
Reply
02-28-2014, 01:10 PM,
#3
RE: PDFが正常に表示されないことをハンドリングするには
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.

Reply
02-28-2014, 03:54 PM,
#4
RE: PDFが正常に表示されないことをハンドリングするには
Hi, wbardwell

I could not look up ClsId or PrgId of Adobe Reader. :'-(
Please tell me if you know those.
Reply
03-04-2014, 01:01 PM,
#5
RE: PDFが正常に表示されないことをハンドリングするには
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.

Reply
03-06-2014, 09:59 AM,
#6
RE: PDFが正常に表示されないことをハンドリングするには
「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 - <デバッグ情報がありません>

Reply
03-17-2014, 12:56 AM,
#7
RE: PDFが正常に表示されないことをハンドリングするには
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.


Reply

Forum Jump:


Users browsing this thread:
1 Guest(s)

MyBB SQL Error

MyBB has experienced an internal SQL error and cannot continue.

SQL Error:
1017 - Can't find file: 'mybb_threadviews' (errno: 2)
Query:
INSERT INTO mybb_threadviews (tid) VALUES('1044')