• 締切済み

FDF ToolkitでASPからPDFダウンロード

FDF Toolkitを使用して、ASPからPDFをダウンロードさせようとしています。 ※DBから取得した値をPDFで表示&ダウンロード 環境はWindowsです。 テンプレート用FDFは不要としたいです。 ↓こちらを参考にして作ってみました。 ※http://www.linkclub.or.jp/~ma3ki/webutil/pdf/ringi2/howtomake-pdf2.html#ji 下記ソースは、リンクまたはボタンをクリックした時に呼ばれるASPファイル内のソースです。 ▼やりたい事 リンクまたはボタンクリックしたら、 DBから値を取得し、その値を埋め込んだxxxxx.pdfを開くダイアログを表示させる。 ダイアログの選択で、「開く」か、pdfファイルを「保存」するかを選択させたい。 ⇒開いたPDFをちゃんと表示させたい ⇒保存したPDFファイルもきちんと表示させたい ※FDFファイルは使わない形式でPDFを出力させたいのです。 ▼下記ソースがだめな点 ・ダイアログは表示されるのですが、「保存」を選択した場合に保存されたPDFが開けません。 ・「開く」を選択しても何も開かず固まってしまいます。 ・テンプレート用のPDFは用意しています。 ・サーバーには「FdfAcx.DLL」と「FdfTk.DLL」はインストール済みです。 全く見当違いな事をしているかもしれませんが、 いろいろ調べてみても全くわからないのです、、 どなたか同じ現象を体験した方、 また、解決方法をご存知の方がいらっしゃいましたら 何卒ご教授くださいませ。 よろしくお願いいたします。 【ASPソース】============================================================= Dim ObjFdfAcx Dim ObjresFDF Dim StrDateTime '現在日付取得 StrDateTime = Now() StrDateTime = Replace(StrDateTime, " ", "") StrDateTime = Replace(StrDateTime, "/", "") StrDateTime = Replace(StrDateTime, ":", "") 'ダウンロードファイル名設定 StrPDFFileName = "TEST_" & StrDateTime & ".pdf" 'FDF ActiveX オブジェクトの定義 Set ObjFdfAcx = Server.CreateObject("FdfApp.FdfApp") '新しいFDF生成 Set ObjresFDF = ObjFdfAcx.FDFCreate 'テンプレートFDF内の変数(/V key)に値を設定 With ObjresFDF '値セット .FDFSetValue "TEST1","TEST1",False .FDFSetValue "TEST2","TEST2",False 'テンプレートPDFのURLセット .FDFSetFile "http://XXXXX/テンプレート用PDF.pdf" End With '設定結果のFDFをファイル名を付けてクライアントでダウンロード With Response .ContentType = "application/vnd.fdf" 'MIMEタイプ FDF '.ContentType = "application/pdf" 'ダウンロード '.AddHeader "Content-Disposition","attachment; filename=" & StrPDFFileName '表示 .BinaryWrite ObjresFDF.FDFSaveToBuf End With 'クローズ ObjresFDF.FDFClose 'オブジェクト開放 Set ObjresFDF = Nothing Set ObjFdfAcx = Nothing

みんなの回答

  • med2dic
  • ベストアンサー率77% (21/27)
回答No.1

>・ダイアログは表示されるのですが、「保存」を選択した場合に保存されたPDFが開けません。 >・「開く」を選択しても何も開かず固まってしまいます。 ダウンロードファイル名が*.pdfになっているためです。 質問にあるソースで作成されるのはFDFであってPDFではありません。 拡張子をfdfとすれば開けると思います。 実際に試していないのでわかりませんが、 PDF WriterがインストールされていればPDFで保存できるのではないでしょうか。 私もFDFのシステムを引き継いで苦労させられました・・

関連するQ&A

  • FirefoxでFDFファイルの表示

    HTMLフォームから記入してもらった項目を、最終的に編集された状態でPDFファイルに書き出すCGI を作成しようと思ったのですが、Acrobatのライセンスの問題があり不可能だったので、このような場合 に一般的に用いられる方法(予めPDFファイルのテンプレートを用意して、HTMLフォームから送られた データをFDFファイル化してテンプレートに埋め込む)で、解決しました。 しかし、IEでは問題なく、生成されたFDFファイルをクリックするとAcrobatが起動してデータの埋め込 まれたPDFが表示されるのですが、Firefoxで行うとFDFファイルの内容が表示されてしまいます。 ためしに、CGIスクリプトから Content-type: application/vnd.fdf として、直接ブラウザに書き出してみ たところFirefoxでもAcrobatが起動して問題なく表示できました。 直接ブラウザに書き出すのは都合が悪いので避けたいのですが、FirefoxでFDFファイルからAcrobat を起動することはできないのでしょうか? ご存知の方、ご教示ください。

  • ASP:動的に作成したPDFをアシュクしてダウンロード後の展開

    ASP(VB)にて動的に作成したPDF(stream)をZIPへ格納後、ダウンロードのプログラムを組んだのですが、ZIPの中を展開するとPDFが 「ファイルの種類がサポートされていないか、または破損している可能性があります。例えば電子文書として送信され、正しくデコードされなかったことなどが考えられます。」 と表示されて開けません。 バイト数・圧縮率は正しく表示されているのですが何かソースとしてエンコード/デコード方法が足りてないのでしょうか? ご教授お願いします。 以下ソースです。( Ionic.Zip.dll使用) Dim teststream As Stream Dim streamRE As StreamReader = New StreamReader("C:\test2.txt") teststream = streamRE.BaseStream Response.Clear() Response.ContentType = "application/zip" Response.AddHeader("content-disposition", "filename=data.zip") Dim zip As Ionic.Zip.ZipFile = New Ionic.Zip.ZipFile(Encoding.GetEncoding("shift_jis")) Using (zip) zip.AddEntry("データ1.pdf", "", teststream) 'ダウンロード出力 zip.Save(Response.OutputStream) End Using

  • アドビ・アクロバットで複数ページのPDF作成(自動で)

    FDFツールキットを使用して伝票フォームを作り、可変項目にASPでDBから取得した値をセットしてPDFファイルを作成してブラウザで表示しています。 1つのPDFファイルで1ページならまくいくのですが、1つのPDFファイルで複数ページを生成することができないのです。 やりくちとして以下の2通りがあるのではないかと考えています。 1.ASPにてページ追加のロジックを使う(そんなロジックがあるかどうかも分かりませんが) 2.それぞれを1ページのPDFファイルとして作成してから最終的に1つのPDFファイルに結合する。 ところが、どちらも詳細な方法がよく分かりません。参考になるようなサイト、ページがあれば教えてください。もちろん、ずばりスクリプトコードを書いていただいでも構いません!

  • FDF Toolkitを使用してのpdf出力

    ASPでDBから読み込んだ値をセットしたpdfを表示したいのですが ネットで参考になりそうなページを探してその通り実行してるのですがうまくいかず困ってます。 Server オブジェクト エラー 'ASP 0178 : 80070005' Server.CreateObject アクセス エラー 許可を確認中に Server.CreateObject の呼び出しに失敗しました。このオブジェクトへのアクセスは拒否されます。 と表示されます。 サーバーは「Windows 2003 server」 参考にしているのは http://www.linkclub.or.jp/~ma3ki/webutil/pdf/ringi2/howtomake-pdf2.htmlです。 どうか、よろしくお願いします。

  • ASPでダウンロード方法教えてください

    ASPにて、CSVやエクセルなどをダウンロードさせるにはどうすればよろしいでしょうか? ボタンなどがクリックされたらダウンロードダイアログが表示されてダウンロードできるようにしたいのですが・・・。 どなたかご教授ください。 お願い致します。

  • pdfがダウンロードできません。

    サーバにpdfファイルをアップロードし、 ブラウザを通してダウンロードしていたのですが、 .htaccessにてBasic認証を行うようになってから そのpdfファイルがダウンロードできなくなりました。 (アクロバットのエンジンは起動しているようです。) ・ブラウザはIEとFirefoxを使用していますが共にNGです。 ・試しにpdfファイルが格納されているフォルダに  htmlファイルを格納した場合は正常に表示されます。 ・IEのセキュリティでそのサイトを信頼済みサイトに  してもNGです。 ・index.htmlに記載してあるリンクを右クリックダウンロード  にするとリンク先が見つかりませんというようなメッセージが  表示されます。 .htaccessにMIMEタイプを追加すればいいのでしょうか? よろしくお願いします。 ■階層 folder │ .htaccess │ passwd │ index.html(←閲覧可能) │ ├─folder1 │ test1.pdf │ ├─folder2 │ test2.pdf │ └─folder3 test3.pdf ■サーバ環境 OS:Linux Apache ■クライアント環境 OS:Windows2K

  • ASP.NET(C#)におけるファイルダウンロードについて質問させてく

    ASP.NET(C#)におけるファイルダウンロードについて質問させてください。 私は今、webアプリケーションを開発しております。 そこで機能のひとつとして、ボタンを押すと保存ダイアログを表示させ、ファイルをダウンロード させられるようにしております。 その保存ダイアログのファイル名にサーバ側からあらかじめ決められた(クライアント側の)ファイルパスを表示させることは可能でしょうか?方法があればお教え願います。 ※保存先のディレクトリを指定するのが面倒なため。 ファイル名に表示させたい例: C:\test.text C:\TestFile\test.text また、たとえ可能だとしても、クライアント側のパスをサーバが勝手に指定するのは セキュリティ的に問題ありでしょうか? ご教示のほど、よろしくお願いいたします。

  • ASP(VBScript)について教えてください。

    以前、↓で質問を挙げさせてもらった者です。 <http://okwave.jp/qa/q6615640.html> ASPで作成した画面上からADOを用いて、CSVファイルの 項目を表示しようと思ったのですが、エラーが出てしまいました。 エラー箇所を調べてみたのですが、原因がわからず作業が中断しています。 申し訳ありませんが、下記のソースでどこが間違っているのか 教えていただけないでしょうか? ■期待する動作: CSVファイルを読み取り、指定したIDの行の名前(NAME),年齢(AGE)を 表示させる ******* CSVファイル(test.csv)の中身 ******* [ID],[NAME],[AGE] 1,山田,20 2,田中,30 3,佐藤,40 ******************************************* ******* ASP(VBScript)のソース ******* <% Dim objAdo Dim objRS Dim strPath Dim strId Dim strName Dim strAge strId = "2" 'test.csvのパスを取得 strPath = replace(Server.MapPath("test.csv"),"\test.csv","") 'ADOオブジェクトを作成 Set objAdo = CreateObject("ADODB.Connection") 'ADOを使いCSVファイルを扱う準備(オープン)を行う objAdo.Open "Driver={Microsoft Text Driver (*.txt ; *.csv)} ; DBQ=" & strPath & " ; ReadOnly=1" 'SQLを実行し、当該タスクのデータを抽出 Set objRS = objAdo.Execute("select * from test.csv where '[ID]' = '" & strId & "'") →ここからエラーになります。 strName = objRS("'[NAME]'").Value response.write("strName:" & strName & "<br>") strAge = objRS("'[AGE]'").Value response.write("strAge:" & strAge & "<br>") objRS.Close objAdo.Close %> select文内のwhere句で失敗しているように感じたので、 where '[ID]' = '" & strId の部分を下記の3パターンで 試してみたのですが、全てエラーが起きてしまいました。 where [[ID]] = '" & strId where {[}ID{]}' = '" & strId where [ID] = '" & strId CSVファイルのフォーマットは決まっている為、 現在のフォーマットで表示させたいのです。 お礼を言うのが少し遅くなってしまうかもしれませんが、 ご教示いただけると嬉しいです。

  • IEでPDFをダウンロード時、開く が表示されない

    Adobe Readerは導入しており、 デスクトップ上にあるpdfファイルは問題なく開けます。 ただ、IEでpdfファイルをダウンロードする際に、ダウンロードダイアログに「開く」が表示されず、 いちいちダウンロードしてから開く必用があります。 開く を表示させる方法はあるのでしょうか?

  • ASP(VB)にて動的に作成したPDF(stream)をZIPへ格納後の展開ができない

    ASP(VB)にて動的に作成したPDF(stream)をZIPへ格納後、ダウンロードのプログラムを組んだのですが、ダウンロード後にZIPの中を展開するとPDFが 「ファイルの種類がサポートされていないか、または破損している可能性があります。例えば電子文書として送信され、正しくデコードされなかったことなどが考えられます。」 と表示されて開けません。 バイト数・圧縮率は正しく表示されているのですが何かソースとしてエンコード/デコード方法が足りてないのでしょうか? ご教授お願いします。 以下ソースです。( Ionic.Zip.dll使用) Dim teststream As Stream Dim streamRE As StreamReader = New StreamReader(\"C:\\test2.txt\") teststream = streamRE.BaseStream Response.Clear() Response.ContentType = \"application/zip\" Response.AddHeader(\"content-disposition\", \"filename=data.zip\") Dim zip As Ionic.Zip.ZipFile = New Ionic.Zip.ZipFile(Encoding.GetEncoding(\"shift_jis\")) Using (zip) zip.AddEntry(\"データ1.pdf\", \"\", teststream) \'ダウンロード出力 zip.Save(Response.OutputStream) End Using

専門家に質問してみよう