Как обратиться к Inkscape с Win32Com? - PullRequest
0 голосов
/ 11 марта 2019

Я успешно использовал win32com для взаимодействия с MS Visio. Отличная библиотека. Теперь я хотел бы сделать то же самое с Inkscape, но не могу найти какой-либо адекватной информации в сети.

import win32com.client
from win32com.client import constants
app = win32com.client.Dispatch(Inkscape.Application
app.Visible = 1

возвращает

    ---------------------------------------------------------------------------
com_error                                 Traceback (most recent call last)
C:\ProgramData\Anaconda3\lib\site-packages\win32com\client\dynamic.py in _GetGoodDispatch(IDispatch, clsctx)
     88                 try:
---> 89                         IDispatch = pythoncom.connect(IDispatch)
     90                 except pythoncom.ole_error:

com_error: (-2147221005, 'Ungültige Klassenzeichenfolge', None, None)

During handling of the above exception, another exception occurred:

com_error                                 Traceback (most recent call last)
<ipython-input-4-ce241241c43e> in <module>
----> 1 getVisio()

<ipython-input-3-266ab8177f92> in getVisio()
      2     ''' gets a handle on the visio application.
      3     sets global vApp'''
----> 4     vApp = win32com.client.Dispatch("Inkscape.Application")
      5     vApp.Visible =1
      6     return vApp

C:\ProgramData\Anaconda3\lib\site-packages\win32com\client\__init__.py in Dispatch(dispatch, userName, resultCLSID, typeinfo, UnicodeToString, clsctx)
     93   """
     94   assert UnicodeToString is None, "this is deprecated and will go away"
---> 95   dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch,userName,clsctx)
     96   return __WrapDispatch(dispatch, userName, resultCLSID, typeinfo, clsctx=clsctx)
     97 

C:\ProgramData\Anaconda3\lib\site-packages\win32com\client\dynamic.py in _GetGoodDispatchAndUserName(IDispatch, userName, clsctx)
    112         else:
    113                 userName = str(userName)
--> 114         return (_GetGoodDispatch(IDispatch, clsctx), userName)
    115 
    116 def _GetDescInvokeType(entry, invoke_type):

C:\ProgramData\Anaconda3\lib\site-packages\win32com\client\dynamic.py in _GetGoodDispatch(IDispatch, clsctx)
     89                         IDispatch = pythoncom.connect(IDispatch)
     90                 except pythoncom.ole_error:
---> 91                         IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.IID_IDispatch)
     92         else:
     93                 # may already be a wrapped class.

com_error: (-2147221005, 'Ungültige Klassenzeichenfolge', None, None)

Я не понимаю, что говорит мне сообщение об ошибке. Любая подсказка приветствуется. Заранее спасибо.

...