|
出来るのだASP Q&A掲示板(過去LOG)
訪問数 52046
昨日 889
今日 776 【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。 |
Topに戻る
掲示板に戻る
検索
削除
管理者
|
| [1229] ASPからサーバ上でPDF化する方法(暫定版) |
| 投稿者:Tomitomiさん 2001/12/10 18:26:35 |
| こんにちは、Tomitomiです。 例の物です。とりあえず実現可能です。DLLは無理ですが。w 長文になります。また読みにくい文章ですみません。 ちょっと説明 「Acrobat PDFWriter」をインストールして、Excel等を開きプリンターを「Acrobat PDFWriter」にすると、 保存先が表示され、OKすると、PDFファイルが出来上がり、「Acrobat Reader」が立ち上がり表示する。 で、実際VB等で使用する場合は、ファイル名ダイアログと「Acrobat Reader」が立ち上がるのを抑制したいので、 以下のようにする。 ファイル名ダイアログを抑制するには、 「__pdf.INI」に PDFFILENAME=作成するPDFファイルまでのパス bDocInfo=0 *PDFFILENAMEはPDFファイル作成毎に書き換わるのでVBにて毎回iniファイルを書き換える。 とする。 「Acrobat Reader」が立ち上がるのを抑制するには、 「__pdf.INI」の 「bExecViewer=1」を「bExecViewer=0」とする。 でOK. 後は、これでDLLを作ればできるかな?と思いきや。。最後の最後でダメでした。 1.ASPにてサーバ側で印刷するには、レジストリを書き換える必要がある。*これは試してOKでした。 VBでは、動いてなぜASPではだめなの?と思うかもしれませんが、ASPでExcel等のオブジェクトで印刷する場合、 権限がsystemになるそうです。なのでレジストリのsystem領域にプリンタを追加してあげるのです。。 2.普通のプリンターは上記設定により印刷できるが、PDFWriterではエラーになる。 ↑これでダメでした。いろいろ調べましたが、権限関係で苦労するぽいので早々にあきらめました。 解決策として、レジストリ書き換えるのも難儀なので、VBで以下のソースを元にexeを作る。 それを、Basp21等を利用し、ASPからコールする。まだ試してませんが、これが一番楽そうです。 注意点 ダイアログ抑制関係で使う、「__pdf.INI」ですが、PDFWriter4.Xではレジストをいじらなければ、抑制できないそうです。 僕は、PDFWriter4.Xは持ってないので、PDFWriter4.Xを使う場合はご自分でお調べください。w □■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■ 必要なもの・こと Acrobat PDFWriter 3.03 参照設定にて、「Microsoft Excel X.X Object Library」にチェックする。 *「X.X」は、バージョンです。 「__pdf.INI」を、書き換える。 *私の環境では、「C:\WINNT\system32\spool\drivers\w32x86\2\__pdf.INI」 iniファイルの「bExecViewer=1」を「bExecViewer=0」とする。 ↑これにより、「Acrobat Reader」がPDFファイル作成後、「Acrobat Reader」が立ち上がるのを抑制できる。 □■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■ 呼び出し部(フォームなど)============================================================================== Call sSet_ini("C:\WINNT\system32\spool\drivers\w32x86\2\__pdf.INI", "E:\test.pdf") Call ExcelPrint("E:\test.xls") 'ファンクション部(標準モジュールなど)================================================================= 'iniファイル書き込み用 Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" _ (ByVal lpApplicationName As String, _ ByVal lpKeyName As String, _ ByVal lpString As String, _ ByVal lpFileName As String) As Long 'iniファイルを書き込む Function sSet_ini(ByVal sIniFileName As String, ByVal sPDFFileName As String) As Long On Error GoTo ErrNanoda 'ダイアログを非表示にする lRet = WritePrivateProfileString("Acrobat PDFWriter", "PDFFILENAME", sPDFFileName, sIniFileName) '作成者名ダイアログを非表示にする lRet = WritePrivateProfileString("Acrobat PDFWriter", "bDocInfo", "0", sIniFileName) Exit Function ErrNanoda: sSet_ini = Err.Number & ":" & vbCrLf & Err.LastDllError & vbCrLf & Err.Description End Function 'Excelファイルを印刷する。 By PDF Public Function ExcelPrint(sFilePath As String) As String Dim ErrFLAG As Integer Dim EXF As Excel.Application Dim ObjBook As Excel.Workbook On Error GoTo ErrNanoda ErrFLAG = 1 Set EXF = CreateObject("Excel.Application") ErrFLAG = 2 Set ObjBook = EXF.Workbooks.Open(sFilePath) ErrFLAG = 3 ObjBook.Application.Visible = False ObjBook.Application.DisplayAlerts = False ErrFLAG = 4 EXF.Sheets.PrintOut ErrFLAG = 5 ObjBook.Close False EXF.Application.Quit ErrFLAG = 6 Set ObjBook = Nothing Set EXF = Nothing ExcelPrint = sFilePath Exit Function ErrNanoda: ObjBook.Close False Set ObjBook = Nothing Set EXF = Nothing ExcelPrint = Err.Number & ":" & "<BR>" & Err.LastDllError & "<BR>" & Err.Description & "<BR>ErrFlag:" & ErrFLAG End Function |
![]()
ASPからサーバ上でPDF化する方法
杉本さん
[2001/12/03 17:53:58]
[1181]
|
Re:ASPからサーバ上でPDF化する方法
Tomitomiさん
[2001/12/03 18:47:36]
[1183]
Re:ASPからサーバ上でPDF化する方法
杉本さん
[2001/12/04 13:01:16]
[1189]
Re:ASPからサーバ上でPDF化する方法
Tomitomiさん
[2001/12/04 13:39:22]
[1190]
Re:ASPからサーバ上でPDF化する方法
杉本さん
[2001/12/04 18:50:41]
[1200]
Re:ASPからサーバ上でPDF化する方法
Tomitomiさん
[2001/12/05 10:39:55]
[1205]
機械翻訳
北岳さん
[2001/12/05 11:37:04]
[1208]
Re:機械翻訳
杉本さん
[2001/12/05 12:49:40]
[1211]
Re:機械翻訳
Tomitomiさん
[2001/12/05 13:07:52]
[1213]
機械翻訳・新発見
北岳さん
[2001/12/05 14:48:20]
[1214]
Re:ASPからサーバ上でPDF化する方法
杉本さん
[2001/12/05 12:47:54]
[1210]
Re:ASPからサーバ上でPDF化する方法
Tomitomiさん
[2001/12/05 13:06:23]
[1212]
ADOBE Acrobat PDF Reader/Writer
北岳さん
[2001/12/06 9:59:02]
[1215]
光が見えてきましたw
Tomitomiさん
[2001/12/06 16:54:20]
[1217]
Acrbat 5.0 SDKを使ってみました
杉本さん
[2001/12/07 15:56:12]
[1224]
Re:Acrbat 5.0 SDKを使ってみました
Tomitomiさん
[2001/12/07 16:16:09]
[1226]
ASPからサーバ上でPDF化する方法(暫定版)
Tomitomiさん
[2001/12/10 18:26:35]
[1229]
|
|
TreeBBS For ASP V.0.1.3 |