1

問題の解決策を見つけることなく、しばらくの間問題を調査してきました。軌道に乗ることなく、グーグルも試してみました...

どんな助けでも大歓迎です!

問題は次のとおりです。

PDF ドキュメントを開いてサイレント モードで印刷する DDE コマンドを送信しています。ASCII 以外の文字が含まれている場合、パスに問題があります。認識されず、エラーがスローされます。これを回避し、Acrobat リーダーにパスを理解させるには、パス文字列をどうすればよいですか? 「ø」の代わりに「o」を試してみましたが、問題なく動作します...よろしくお願いします!

string file = @"C:\Users\Bø\1_tmp_printpages.pdf";

client.Execute("[DocOpen(\"" + file + "\")]", 60000);
client.Execute("[FilePrintSilent(\"" + file + "\")]", 60000);
client.Execute("[DocClose(\"" + file + "\")]", 60000);
client.Execute("[AppExit]", 60000);

DDE メッセージを渡すためにNDdeを使用しています。

4

1 に答える 1

1

C# 用の NDde 以外の DDE ライブラリが見つからなかったため、パス内の非 US-ASCII シンボルを処理できませんでした。したがって、私は別のアプローチ、動詞を使用することにしました。

US-ASCII 以外の記号を受け入れる新しいコードを次に示します。これは try ブロック内にあり、後で AcroRd32 を強制終了するロジックを実行しています。しかし、PDFをサイレントに印刷するコード自体は下にあります... :)

            System.Diagnostics.Process P = new Process();
            P.StartInfo.FileName = mc.PrintPages;
            P.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
            P.StartInfo.Verb = "print";
            P.StartInfo.Arguments = printDialog1.PrinterSettings.PrinterName.ToString();
            P.StartInfo.CreateNoWindow = true;           
            P.Start();
于 2011-05-25T08:55:54.673 に答える