5

Win 7システムのC#プログラムからプリンターにPDFファイルを送信するためにReader10.0を起動しています。これが私が今していることです:

startInfo.FileName = adobeReaderPath;
string args = String.Format("/t \"{0}\" \"{1}\"", this.pdfFileName, this.printerName);
startInfo.Arguments = args;
startInfo.CreateNoWindow = true;
startInfo.ErrorDialog = false;
startInfo.UseShellExecute = false;
startInfo.WindowStyle = ProcessWindowStyle.Minimized;
Process process = Process.Start(startInfo);

このように(またはコマンドプロンプトから)Readerを起動すると、実際には2つのAcroRd32.exe実行可能ファイルが起動することに気付きました。どちらも最小化されていません。ProcessWindowStyle.Hiddenも試しましたが、同じ結果になりました。

Readerを強制的に最小化して開始する方法はありますか?

ありがとう!

4

5 に答える 5

2

/hコマンドラインに含めて試してみてください。これにより、タスクバーに最小化された Adob​​e Reader インスタンスが起動します。ただし、それを完全に非表示にする「良い」オプションはありません(私の知る限り)。で予測できないものをハックする以外はWin32 API. 最小化されたアプリを起動するためのより一般的な方法は、API を使用することです。スティーブの投稿を参照してください。

これは次のことを行う必要があります。

string args = String.Format("/h /t \"{0}\" \"{1}\"", this.pdfFileName, this.printerName);
于 2012-03-08T14:53:59.350 に答える
2

プロセスを起動した後、その MainWindowHandle を取得し、P/Invokeを使用して最小化できます。

[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

//..
ShowWindow(process.MainWindowHandle, 11);  //11 is ForceMinimized
于 2012-03-08T14:54:37.067 に答える
0

あなたが言及したコードを使用してAdobeAcrobatReaderを使用して、PDFドキュメントを直接プリンターに送信することは実際にはできません。

必要なのは、PDFを印刷するために実装された機能を備えた.netpdfapiです。プロジェクトへの参照を追加してから、APIの使用を開始できます。あなたはまた無料で使いやすいそのようなAPIについてインターネット上でグーグル/ビングすることができます。

于 2012-03-08T15:05:43.700 に答える
0

これを参照してください:http://www.robvanderwoude.com/commandlineswitches.php#Acrobat

PDF ファイルを開く:

AcroRd32.exe PdfFile

Adobe Reader の新しいインスタンスで PDF ファイルを開きます。

AcroRd32.exe /N PdfFile

7 ページの PDF ファイルを開きます。

AcroRd32.exe /A "page=7=OpenActions" PdfFile

ナビゲーション ペインがアクティブな状態で PDF ファイルを開き、50% にズームアウトして、「バッチ」という単語を検索して強調表示します。

AcroRd32.exe /A "zoom=50&navpanes=1=OpenActions&search=batch" PdfFile

ダイアログ付きの PDF ファイルを印刷します。

AcroRd32.exe /P PdfFile

PDF ファイルをサイレント モードで印刷します

AcroRd32.exe /N /T PdfFile PrinterName [ PrinterDriver [ PrinterPort ] ]

最後のコマンドは、新しい Adob​​e Reader ウィンドウを開き、PDF ファイルを印刷してから、そのウィンドウがたまたま残された唯一の Adob​​e Reader ウィンドウでない限り、そのウィンドウを終了します。少なくとも 1 つの Adob​​e Reader ウィンドウが開いたままになります。

編集: http://partners.adobe.com/public/developer/en/acrobat/PDFOpenParameters.pdf#page=5

于 2012-03-08T14:59:10.883 に答える
0
Process proc = new Process();
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
proc.StartInfo.Verb = "print";

proc.StartInfo.FileName = @"Path of Adobe exe";
proc.StartInfo.Arguments = String.Format(@"/p /h {0}", fileToPrint);
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = true;
proc.Start();
于 2016-02-20T22:01:26.737 に答える