Проблема со специальным символом в пути при передаче сообщения DDE в Acrobat Reader - PullRequest
1 голос
/ 24 мая 2011

Я какое-то время изучал проблему, не находя решения.Попробовал и гугл, не попав на ход ...

Любая помощь будет признательна!

Проблема в следующем:

Я отправляю 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.

1 Ответ

1 голос
/ 25 мая 2011

Так как я не смог найти библиотеку DDE, отличную от NDde для C #, я не смог обработать символы не-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();
...