我有一个SSIS代码,可以在类似于这个帖子代码的脚本任务中将Excel转换为PDF:Code to Convert Excel to PDF using VB.NET。 SSIS作业一直运行到导出到excel的位置:
oWorkbook.ExportAsFixedFormat(pFormatType, PDFFileName, pQuality, _
pIncludeDocProperties, _
pIgnorePrintAreas, _
pFrom, pTo, pOpenAfterPublish)
一旦它碰到这段代码,我的SSIS工作就会冻结。我将我的application.displayalerts设置为false,认为有些东西会弹出,但这不是问题。我的服务器上也安装了PDF阅读器,这也无济于事。此代码适用于我的PC,但不适用于服务器。我似乎无法弄清楚为什么会这样。看起来链接中引用的代码也可以工作。我的代码在我的服务器上无效的任何想法?
答案 0 :(得分:1)
您无法从没有桌面的服务器进程中可靠地调用桌面应用程序。
它可能缺少像Acrobat或打印队列这样的东西,正在等待永远不会来的用户输入。
如果您需要使用自动化流程从Excel中可靠地创建PDF,您需要查看第三方工具或撰写内容。
我现在无法找到它,但微软在某个地方提到了技术说明。
答案 1 :(得分:0)
所以我挖得更深了一点。我能够以交互模式运行SQL Agent,我可以看到Excel中弹出一个弹出窗口(或者至少看到一个标题为“打印机设置”的弹出窗口,否则屏幕全部被甩掉)。我用Google搜索并发现了另一个帖子:Excel automation: PDF export causes "Printer setup" popup,它描述了我的问题。他通过将默认打印机更改为微软XPS文档打印机来解决他的问题,这对我也有用。希望这有助于其他人。