Использование Win32api для печати на принтере - PullRequest
0 голосов
/ 19 июля 2011

Я пытаюсь получить скрипт Python для печати файла CSV на принтер через Win32api.ShellExectute, IE

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

Вот моя проблема: когда я связываю файл с Open Office,он просто полностью отказывается печатать.Прекрасно печатает в блокноте.Прекрасно печатает в Microsoft Excel.Отказывается от печати в Open Office.

Также нет сообщения об ошибке.Если кто-нибудь знает способ получить сообщение об ошибке или что-то, по крайней мере, я мог бы попытаться поработать над этим.Я пошел на сайт OpenOffice.org и их вики, и все их решения включают в себя интегрированные скрипты Python-макросов с использованием модуля UNO.Я пытаюсь вызвать печать из отдельного приложения.

1 Ответ

1 голос
/ 19 июля 2011

Вы полагаетесь на оболочку, определяющую «печатный» глагол для определенного типа файла.Это работает следующим образом:

  1. Оболочка удаляет расширение файла, в данном случае «.csv».
  2. Оболочка ищет расширение в реестре в разделе HKEY_CLASSES_ROOT, чтобы найтисвязанный тип файла.Например, в моей системе это «Excel.CSV».
  3. В разделе HKEY_CLASSES_ROOT \ filetype будет ключ «shell», и под ним находятся поддерживаемые глаголы.
  4. Запись реестра в разделеглагол будет содержать сведения о том, как запустить команду для выполнения желаемого действия.

Все эти ключи реестра должны быть помещены туда программой установки.Когда вы связываете тип файла, вы изменяете поиск на шаге 2.

Редактировать: То, что я оставил недосказанным, - это то, что ничто не мешает вам исправить опущение глагола изопределенный тип файла, если вы можете редактировать реестр и предоставлять соответствующую командную строку.

...