Самый простой способ - создать C # Process и запустить внешний инструмент для печати вашего PDF-файла
private static void ExecuteRawFilePrinter() {
Process process = new Process();
process.StartInfo.FileName = "c:\\Program Files (x86)\\RawFilePrinter\\RawFilePrinter.exe";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.StartInfo.Arguments = string.Format("-p \"c:\\Users\\Me\\Desktop\\mypdffile.pdf\" \"gdn02ptr006\"");
process.Start();
process.WaitForExit();
}
Приведенный выше код запускает RawFilePrinter.exe (аналог 2Printer.exe), но с лучшей поддержкой. Это не бесплатно, но сделав пожертвование, вы сможете использовать его повсюду и распространять вместе с вашим приложением. Последняя версия для загрузки: http://bigdotsoftware.pl/rawfileprinter
В .NET для этого нет встроенной поддержки (во всяком случае, насколько я знаю; пожалуйста, поправьте меня, если я ошибаюсь, кто-нибудь). Я наткнулся на эту статью CodeProject, которая, похоже, помогает с перехватом сообщений и P / Invoke: http://www.codeproject.com/KB/miscctrl/Localizing_MessageBox.aspx
Обычно кнопки окна сообщений (как и все Windows) поддерживают текущий установленный язык пользовательского интерфейса для Windows. Так что, если у вас установлен английский язык и вы не можете менять языки (версии MUI или Ultimate для Vista / 7), вам не повезло.
Вы могли бы реализовать окно сообщений самостоятельно, но я прошу вас не делать этого. Когда люди начинают изобретать квадратные колеса, мне больше всего не хватает простых вещей, таких как общие горячие клавиши для кнопок, возможность использовать Ctrl + Ins для копирования содержимого и т. Д.
Я не думаю, что это возможно, но обратитесь к статье MSDN Метод MessageBox.Show . У вас могут появиться идеи. Вы можете изменить текст в окне сообщения. Как насчет создания собственного окна сообщений (новой формы) и их отображения?