首页 > 解决方案 > SQL Server 代理 - 打印 PDF

问题描述

因此,我需要按需下载、保存和打印 pdf。我目前的 SSIS 流程如下:

  1. 从表中读取和分配变量
  2. 创建 URL 并从 SSRS 服务器下载 .pdf 报告
  3. 使用 powershell 参数将 PDF 从指定文件夹打印到指定打印机:
-ExecutionPolicy Unrestricted -Command "<<.ps1 file path>>'<<variable1>>' '<<variable2>>'"
  1. .ps1 脚本:
Start-Process $file -Verb PrintTo $printer_Name
sleep 10
taskkill /im acro* /f

该作业在具有管理员权限的代理下运行。作业报告已成功完成。日志显示正在到达 .ps1 文件的最后一行。

当在 Visual Studio 中手动执行以及从服务器手动执行包时,这一切都有效。但是当作业执行相同的语句时,什么也没有发生。

我已经尝试过这既是一个 powershell 命令作业,现在又是一个 cmd 命令。

为什么没有任何工作?

SQL Server 2014 R2

标签: sql-serverjobs

解决方案


我也有同样的问题。最初,我猜这可能是打印机的权限问题。后来,我尝试改用 Window Task Scheduler 运行,它打印得很完美。仍然很高兴知道为什么它不适用于代理工作。有趣的是,我尝试使用不同的打印 exe adobereader、ghostscript 和 PDfToPrinter 运行代理作业。所有 3 都显示作业成功,但未到达打印机队列。我尝试使用 7zip 而不是使用打印机执行文件,并且 7zip 通过代理作业成功执行。我想知道代理工作是否存在使用打印机执行的一般问题。


推荐阅读