Используя сборку взаимодействия COM для InfoPath (добавьте ссылку на Microsoft.Office.Interop.InfoPath ), вы можете распечатать форму XML со следующим фрагментом:
using Microsoft.Office.Interop.InfoPath;
class Program
{
static void Main(string[] args)
{
Application app = new Application();
XDocument xdoc = app.XDocuments.Open(@"C:\tmp\Form1.xml", 1);
xdoc.PrintOut();
app.Quit(false);
}
}
Печать происходит с использованием настроек принтера по умолчанию, и я не нашел способа изменить это. Однако, поскольку для вас это одноразовая задача, я полагаю, что это не должно быть проблемой.
Еще одна проблема может заключаться в том, что у вас нет способа указать имя выходного файла вашего PDF-принтера. Возможно, вы сможете настроить принтер на использование имени по умолчанию, затем дождитесь печати файла, переместите его и распечатайте следующий документ.