使用Python COM编写Photoshop脚本。复制和扁平化问题

时间:2016-01-15 18:19:34

标签: python python-2.7 photoshop win32com

我试图合并一些PS文件,基本上有两种方法:

1)展平,选择全部,复制,更改ActiveDocument和粘贴。这个在第一步中返回TypeError。

Traceback (most recent call last):
  File "C:\..\Merge.py", line 5, in <module>
    doc.flatten()
TypeError: 'NoneType' object is not callable
[Finished in 0.7s]

在Photoshop中我可以观察到文档被压平,但是返回此页面。停止剧本。

2)指向目标文档的重复图层集。

Traceback (most recent call last):
  File "C:\..\Merge.py", line 27, in <module>
    appRef.activeDocument.LayerSets[0].duplicate(appRef.documents[0]);  
  File "C:\python27-64\lib\site-packages\win32com\client\dynamic.py", line 197, in __call__
    return self._get_good_object_(self._oleobj_.Invoke(*allArgs),self._olerepr_.defaultDispatchName,None)
pywintypes.com_error: (-2147352573, 'Member not found.', None, None)
[Finished in 4.7s]

同样在这里! LayerSet已重复

  • Photoshop CC 2014 64bits
  • Python 2.7 64bits
  • Win32com for python 2.7 64bits

1 个答案:

答案 0 :(得分:0)

显然,win32com存在问题。

comtypes 效果很好!重新安装python 2.7 64bits。选中“仅为我安装”而不是“为所有用户安装”,然后安装comtypes。