JSConstraintsDebug

JSConstraintsDebug (JSConstraintsDebug.exe) 是一种命令行工具,可在开发 V4 打印机驱动程序时为 JavaScript 约束提供调试支持。

在哪里可以下载 JSConstraintsDebug?

JSConstraintsDebug.exe包含在 Microsoft Windows 驱动程序工具包 (WDK) 中。 有关获取 WDK 的信息,请参阅 Windows 驱动程序工具包下载

该工具针对用户提供的打印票证对目标驱动程序的 JavaScript 约束执行以下每个相关的入口点 API:

PTGetPrintCapabilities

PTConvertDevModeToPrintTicket

TConvertPrintTicketToDevMode

PTMergeAndValidatePrintTicket

在执行期间,该工具将提示输入相应的 IDE 调试器,例如 Visual Studio。 选择后,约束源代码将在 JavaScript 调试器语句中打开并停止。

若要调试 JS 约束文件,请执行以下步骤:

  1. 打开命令提示符窗口。

  2. 运行JSConstraintsDebug.exe工具,并至少指定打印机名称和测试打印票证的路径。

  3. 选择要使用的调试工具。

在用户模式下运行 JSConstraintsDebug

需要提升的权限才能启用 JS 函数的调试。 若要在用户模式下运行,必须在执行JSConstraintsDebug.exe之前设置以下注册表项:

项名

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print

值名称

EnableJavaScriptDebugging

类型

DWORD

1

JavaScript 调试器语句

可以使用调试器语句在 JavaScript 源中创建断点。 这将暂停 Visual Studio 中的操作,所有操作都允许分步调试。 这些语句可以插入到任何 JavaScript 约束 API 中

例如:

function validatePrintTicket(PrintTicket, scriptContext)
{
    debugger; // debug tool will pause at this breakpoint
    ...
}

JSConstraintsDebug 命令语法

JSConstraintsDebug <PrinterName> <PrintTicket> [MergePrintTicket] [Constraints]

命令参数

参数 说明

PrinterName

必需。 指定包含 JS 约束源文件的打印驱动程序的字符串名称。 此驱动程序将用于所有调试操作。

PrintTicket

必需。 指定要验证的打印票证 XML 文件的路径和名称。

MergePrintTicket

可选。 指定将用于验证合并操作的打印票证 XML 文件的路径和名称。

如果未设置此参数,则默认 DevMode 将转换为打印票证,并传递给合并和验证 API。

约束

可选。 指定 JavaScript 约束文件的路径和名称,该文件将在调试之前替换目标打印机驱动程序中找到的现有约束源文件。

注意 使用 Constraints 参数指定约束文件将覆盖目标驱动程序中的现有源代码。

示例

根据已知的测试打印票证调试打印驱动程序。

JSConstraintsDebug “Contoso Printer” PrintTicket.xml

使用新的约束源文件针对已知的测试打印票证调试打印驱动程序。

JSConstraintsDebug “Contoso Printer” PrintTicket.xml Constraints.js

测试合并和验证两个自定义打印票证之间的操作。

JSConstraintsDebug “Contoso Printer” PrintTicket.xml PrintTicket2.xml