- - PR -
子画面にPDFを表示したいのですが(JavascriptのWindow.Openを使用)
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-04-16 00:13
いつもお世話になっております。
FDFToolkitを使ってFDFを生成し、PDFを表示させようとしています。 このとき、親aspxにJavaScriptを埋め込んで、ボタンをクリックすると新しいウィンドウが現れ、その中にFDF生成aspxで作られたPDFを表示させたいと思っております。 現在のコードを示させていただきますと、 親(parent.aspx) Private Sub Page_Load() Dim sbScript As New System.Text.StringBuilder With sbScript .Append("<script language='javascript'>" & vbCrLf) .Append("function winOpen(url) {" & vbCrLf) .Append(vbTab & "var features = 'Height=500,Width=700,Top=50,Left=50,") .Append("dependent=yes,location=no,menubar=no,resizable=yes,") .Append("scrollbars=no,status=no,titlebar=no,toolbar=no';" & vbCrLf) .Append(vbTab & "window.open(url,'_new',features);}" & vbCrLf) .Append("</" & "script>") End With RegisterClientScriptBlock("openwin", sbScript.ToString) Dim QS as string = "child.aspx?AAA=" & 【テキストボックスの値】 【ボタンのID】.Attributes.Add("OnClick", "winOpen('" & QS & "')") End Sub 子(child.aspx) Private Sub Page_Load() Dim FDFAcx As FdfApp = New FdfApp Dim resFDF As FdfDoc = FDFAcx.FDFCreate() Dim pdfpath As String pdfpath = "【値を埋め込みたいPDFのパス】" resFDF.FDFSetValue("【フィールド名】", Request.QueryString("AAA"), False) resFDF.FDFSetFile(pdfpath) Response.ContentType = "application/vnd.fdf" Response.AppendHeader("Content-Disposition", "inline") Response.AppendHeader("Content-Transfer-Encoding", "base64") Response.BinaryWrite(resFDF.FDFSaveToBuf) resFDF.FDFClose() resFDF = Nothing FDFAcx = Nothing pdfpath = Nothing Response.End() End Sub これを実行しますと、Acrobat 6がインストールされている状況下で、@子ウインドウの中にPDFがきちんと表示されるとき(成功)とA子ウインドウが空白の状態で開かれ、親(parent.aspx)が表示されていたウインドウの中にPDFが表示されてしまうとき(失敗)のどちらかの現象がランダムに発生します(どちらかといえばAの失敗のほうが多いです)。 どうしてこのように「時々成功する」のかがわかりません。 成功するケースもあるということは、文法的には間違っていないと思うのですが…(何かが足りない?) ちなみにAcrobat 5がインストールされている状況では確認した限りAの失敗ケースだけが発生します。 どなたか対処方法をご存知の方、よろしくお願い申し上げます。 WinXP Pro、VisualStudio2003、FDFToolKit6、VBです。 |
|
投稿日時: 2004-04-16 15:25
自己レスです。
原因はDocumentクラスのSmartNavigationがTrueになっていたことでした。 これをFalseにすることで常に子ウインドウの中にPDFが表示されるようになりました。 大変お騒がせいたしました。 また何かありましたらよろしくお願いいたします。 |
1