1

プラットホーム:

ウィンドウズ 7 x64

PB 12.5 クラシック

Ghostscript 9.07 (x32 と x64 の両方がインストールされています)

「Sybase DataWindow PS」としてインストールされた HP Laserjet PS プリンタ


Datawindow の [Data Export] タブには、[Format to configure:]PDFと [Method: ] がありますDistill。"Distill custom postscript" と "Print using XSLFOP" の両方のチェックボックスがオフになっています。

クリックFile | Run/Previewして [ファイルの種類]File | Save Rows Asを選択PDFし、pdf ファイル名を入力して [保存] をクリックします。メッセージボックスにSave Rows As failed. ファイルはディスク上に作成されていますが、サイズは 0 バイトです。

マニュアルには、Ghostscript がインストールされていない場合にこれが発生する可能性があると記載されていることに気付きました。ただし、最初に x64 バージョンをインストールし、次に x32 バージョンの Ghostscript もインストールしました。PB マニュアルのどこかに x64 原因をインストールしました。OS のプラットフォームに Ghostscript をインストールする必要があると記載されていました。x64 Win7 を使用しているため、x64 Ghostscript をインストールしました。ただし、両方で機能しているわけではありません。

何が間違っている可能性がありますか?誰でもアイデアはありますか?私はネットとスタックオーバーフローで解決策を検索しましたが、誰もがXPと同様にx32プラットフォームを指しているようです(私には思えました)。以前のXPインストールは正常に機能していました。現在、Win7 x64 を使用しており、これを使用する必要があります。

ティア

4

2 に答える 2

2

私は同じ問題を抱えていたと思います。問題は、Ghostscript ソフトウェアのバージョンにあります。

http://ghostscript.com/pipermail/gs-bugs/2012-July/026615.html

Ghostscript をアンインストールして、このバージョンを再インストールする必要があります: Ghostscript 8.71。ここからダウンロードできます。

http://sourceforge.net/projects/ghostscript/files/GPL%20Ghostscript/8.71/ http://sourceforge.net/projects/ghostscript/files/GPL%20Ghostscript/8.71/gs871w64.exe/download

この後、動作するはずです:)

幸運を!

Br. ガボール

于 2013-04-06T17:56:11.340 に答える
2

この問題が発生したのは約 18 か月前です。IIRC の基本的な問題は、プリンターのドライバーが 64 ビットでなければならず、適切な 64 ビットの Ghostcript exe gswin64c.exe を使用する必要があることです。私が見る限り、Powerbuilder は 32 ビット アプリケーションであり、gswin32c.exe に配線されています。

結局、Powerbuilder が行うことを実質的に手動で行う必要がありました。まず、レジストリの関連部分を検索して、gswin32c.exe または gswin64c.exe のパスを見つける必要がありました。これは、64 ビット部分と 32 ビット部分の両方を検索することを意味します。これは、アプリケーションが 64 ビット マシンで実行されるだけではないためです。結局、ProcessMonitor と ProcessExplorer を使用して Powerbuilder の動作を観察し、その動作を模倣したと思います。

Ghostscript-EXE のパスを特定したら、手動でプリンタを「Sybase DataWindow PS」に設定し、pDw.Object.DataWindow.Print.FileName = sz_pathps を実行できます。sz_pathps は、PostScript ファイルが保存される一時ファイルへのパスです。蒸留器で製造されます。次に pDw.print(false,false) を実行すると、PostScript ファイルが作成されます。

次に、レジストリで見つけた exe へのパスを使用して、GhostScript を手動で呼び出すことができます。私が使用するコマンドラインパラメータは

-q -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -sOutputFile=xxxxx.pdf -c .setpdfwrite -f yyyyy.ps

xxxxx.pdf は生成する PDF ファイルのパスで、yyyyy.ps は distiller を使用して生成した PS ファイルのパスです。

GhostScript-Exe を手動で呼び出すということは、CreateProcess を呼び出し、続いて WaitForSingleObject を呼び出すことを意味します。

もちろん、これは dw.saveas を使用できなくなり、機能するメニューまたはアイコンを提供する必要があることを意味します。

これは本当に面倒ですが、他に選択肢がありませんでした。それは「必須」の機能だったので、やらなければなりませんでした。

これは、stackoverflow への私の最初の貢献であり、お役に立てば幸いです。

ご挨拶、

リチャード・シャープ

于 2013-04-15T10:28:49.117 に答える