使用Win32api打印到打印机

时间:2011-07-19 19:19:09

标签: python winapi csv openoffice.org

我正在尝试使用我的python脚本通过Win32api.ShellExectute,I.E打印CSV文件到打印机。

win32api.ShellExecute(0,"print","C:\Test.csv",None,".",0)

这是我的问题:当我将文件与Open Office关联时,它完全拒绝打印。在记事本中打印得很好。在Microsoft Excel中打印正常。拒绝在Open Office中打印。

也没有错误消息。如果有人知道一种方法来获取错误消息或至少有一些我可以尝试使用它。我去了OpenOffice.org的网站,他们的wiki及其所有解决方案都涉及使用UNO模块的集成python宏脚本。我想从单独的应用程序中调用打印件。

1 个答案:

答案 0 :(得分:1)

您依赖于为特定文件类型定义“print”动词的shell。其工作原理如下:

  1. shell剥离文件扩展名,在本例中为“.csv”。
  2. shell在HKEY_CLASSES_ROOT下的注册表中查找扩展名以查找关联的文件类型。例如,在我的系统上,这是“Excel.CSV”。
  3. 在HKEY_CLASSES_ROOT \ filetype下会有一个“shell”键,其下是支持的动词。
  4. 动词下的注册表项将包含有关如何运行命令以生成所需操作的详细信息。
  5. 所有这些注册表项必须由安装程序放在那里。关联文件类型时,您将在步骤2中更改查找。

    编辑:我未提及的是,只要您可以编辑注册表并提供适当的命令行,就没有什么可以阻止您更正特定文件类型的动词的省略