Автоматическое преобразование форм InfoPath в PDF - PullRequest
2 голосов
/ 05 января 2010

Мне было поручено программно открыть набор файлов XML (~ 10 КБ), связанных с различными шаблонами InfoPath (20), а затем сохранить заполненные формы в формате PDF на сетевом ресурсе. Это будет разовая задача.

У меня есть код для циклического перебора набора файлов XML, и откройте их в InfoPath . Однако задокументированных параметров командной строки недостаточно для моих нужд (без параметров печати / закрытия).

Может ли кто-нибудь предоставить какие-либо предложения по параметрам запуска, которые сообщат InfoPath открыть определенный файл, распечатать его в PDF и закрыть после печати? Есть ли альтернативный метод для достижения этой цели?

Мы используем InfoPath 2007, а файлы хранятся в MOSS 2007.

Ответы [ 2 ]

1 голос
/ 05 января 2010

Используя сборку взаимодействия 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-принтера. Возможно, вы сможете настроить принтер на использование имени по умолчанию, затем дождитесь печати файла, переместите его и распечатайте следующий документ.

0 голосов
/ 01 декабря 2016

А вот ответ @Dirk Vollmar в Powershell с использованием COM.

$app = New-Object -ComObject InfoPath.Application
$xdoc = $app.XDocuments.Open('C:\path\file.xml', 1)
$xdoc.PrintOut()
Start-Sleep -Seconds 2
$app.Quit($true)

См. документацию Microsoft , для получения дополнительной информации об автоматизации InfoPath.

...