1

一段时间以来,我一直在研究一个问题,但没有找到解决方案。谷歌也试过了,没有走上正轨......

任何帮助,将不胜感激!

问题是:

我正在发送一个 DDE 命令,以打开 PDF 文档以静默打印。问题在于路径,如果它有非 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);

我正在使用NDde传递 DDE 消息。

4

1 回答 1

1

由于我找不到 C# 的 NDde 以外的 DDE 库,因此我无法在我的路径中处理非 US-ASCII 符号。因此,我决定使用不同的方法,动词。

这是我接受非 US-ASCII 符号的新代码。它在一个 try-block 内,之后我正在做一些逻辑来杀死 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 回答