将InfoPath表单自动转换为PDF
我的任务是通过编程打开一组与各种InfoPath模板(20)关联的XML文件(~10k),然后将填充的表单以PDF格式保存到网络共享中。这将是一项一次性任务 我有代码可以循环浏览XML文件集和。但是,这些参数不足以满足我的需要(没有打印/关闭参数) 是否有人可以提供有关启动参数的建议,这些参数将告诉InfoPath打开特定文件,将其打印为PDF,然后在打印时关闭?是否有其他方法来实现这一目标将InfoPath表单自动转换为PDF,pdf,infopath,Pdf,Infopath,我的任务是通过编程打开一组与各种InfoPath模板(20)关联的XML文件(~10k),然后将填充的表单以PDF格式保存到网络共享中。这将是一项一次性任务 我有代码可以循环浏览XML文件集和。但是,这些参数不足以满足我的需要(没有打印/关闭参数) 是否有人可以提供有关启动参数的建议,这些参数将告诉InfoPath打开特定文件,将其打印为PDF,然后在打印时关闭?是否有其他方法来实现这一目标 我们使用的是InfoPath 2007,文件托管在MOSS 2007中。使用InfoPath的COM互操
我们使用的是InfoPath 2007,文件托管在MOSS 2007中。使用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打印机的输出文件名。也许您可以将打印机配置为使用默认名称,然后等待文件打印出来,移动文件,然后打印下一个文档。下面是@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的。您是否有PDF打印机或如何转换为PDF?我通常使用PDFCreator执行类似的任务。将其设置为自动打印到指定位置,然后等待文件移动和重命名。