0

AdobeReader特定のディレクトリからファイルを印刷するために使用するwinformアプリを使用しています。最近、このアプリをリファクタリングし、AdobeReader をGhost スクリプトに置き換えました。AdobeReader はドキュメントを適切に印刷します (フォント、配置、行間隔などのドキュメント形式に従って)。ただし、Ghost スクリプトは、ドキュメント形式に準拠せずにドキュメントを印刷します。アドバイスはありますか?

参考までに:PrintParamterは印刷するファイル名/パスの詳細を囲むカスタム型で、GetDefaultPrinter()デフォルトのプリンターを返すヘルパー メソッドです。

private void PrintDocument(PrintParamter fs, string printerName = null, bool isPortrait = true,
                                   int noOfCopies = 1, bool printInGrey = false)
        {
            var filename = fs.FullyQualifiedName ?? string.Empty;
            printerName = printerName ?? GetDefaultPrinter();
            var processArgs = string.Format("-noquery {0}  -dNumCopies={1} -all {4} -printer \"{2}\" \"{3}\"",
                                            isPortrait ? "-portrait" : "-landscape", noOfCopies != 1 ? noOfCopies : 1,
                                            printerName, filename, printInGrey ? "-grey" : "-colour");
            try
            {

                var gsProcessInfo = new ProcessStartInfo
                                        {
                                            WindowStyle = ProcessWindowStyle.Hidden,
                                            FileName = _ghostScriptLocation,
                                            Arguments = processArgs
                                        };
                using (var gsProcess = Process.Start(gsProcessInfo))
                {
                   gsProcess.WaitForExit();

                }
            }
4

1 に答える 1

0

更新するために、Ghostscript アプローチを断念し、iTextSharp を使用してドキュメント インスタンスを取得して印刷することにしました。技術的には、iTextSharp はドキュメントを操作するのではなく、印刷する前にラップします。

于 2016-07-19T15:05:44.300 に答える