2010-01-05 62 views
2

我已經通過編程方式開啓了與各種InfoPath模板(20)關聯的一組XML文件(〜10k),然後將填充後的表單作爲PDF保存到網絡共享。這將是一次性任務。將InfoPath表單自動轉換爲PDF

我有代碼循環訪問XML文件集和open them in InfoPath。但是,documented command-line parameters不足以滿足我的需求(無打印/關閉參數)。

任何人都可以提供啓動參數的任何建議,告訴InfoPath打開特定文件,將其打印到PDF並在打印時關閉?有沒有其他方法可以實現這一目標?

我們正在使用InfoPath 2007和文件在MOSS 2007

+0

你有PDF打印機嗎?或者如何轉換爲PDF? – 2010-01-05 16:58:53

+0

我通常使用PDFCreator來完成這樣的任務。將其設置爲自動打印到指定位置,然後在移動和重命名文件之前等待文件。 – 2016-11-30 22:38:24

回答

1

託管使用InfoPath的COM互操作程序集(添加引用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

這裏是@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) 

有關自動化InfoPath的更多信息,請參閱Microsoft的documentation