Python 和 Indesign - 如何 运行 脚本?
Python and Indesign - how to run the script?
我正在尝试使用我在 github 上找到的脚本来开始使用它,但出现错误。
import win32com.client
import os
app = win32com.client.Dispatch('InDesign.Application.CC.2017')
myFile = r'C:\Users\gitte\Documents\Gittel Designs\eMAIL BANNERS\EmailBanners.indd'
myDocument = app.Open(myFile)
idPDFType = 1952403524
if app.Documents.Count is not 0:
directory = os.path.dirname(myFile)
docBaseName = myDocument.Name
for x in range(0, myDocument.Pages.Count):
myPageName = myDocument.Pages.Item(x + 1).Name
# We want to export only one page at the time
app.PDFExportPreferences.PageRange = myPageName
# strip last 5 char(.indd) from docBaseName
myFilePath = directory + "\" + docBaseName[:-5] + "_" + myPageName + ".pdf"
myDocument.Export(idPDFType, myFilePath)
myDocument.Close()
这是我的错误,我认为这与 Indesign 有关 - 我已经尝试更改年份,但我怎样才能让它识别我的应用程序?
runfile('C:/Users/gitte/Documents/SPYDER PYTHON/indesign export all pages as pdfs.py', wdir='C:/Users/gitte/Documents/SPYDER PYTHON')
Traceback (most recent call last):
File "C:\Users\gitte\Documents\SPYDER PYTHON\indesign export all pages as pdfs.py", line 10, in <module>
app = win32com.client.Dispatch('InDesign.Application.CC.2017')
File "C:\Users\gitte\Anaconda3\lib\site-packages\win32com\client\__init__.py", line 95, in Dispatch
dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch,userName,clsctx)
File "C:\Users\gitte\Anaconda3\lib\site-packages\win32com\client\dynamic.py", line 114, in _GetGoodDispatchAndUserName
return (_GetGoodDispatch(IDispatch, clsctx), userName)
File "C:\Users\gitte\Anaconda3\lib\site-packages\win32com\client\dynamic.py", line 91, in _GetGoodDispatch
IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.IID_IDispatch)
com_error: (-2147221005, 'Invalid class string', None, None)
您的字符串可能不正确。对于 2020 年,"InDesign.Application.2020" 下面是我的作品。如果您不确定,请在注册表中搜索 "InDesgin.Application"。希望这有帮助。
app = win32com.client.Dispatch("InDesign.Application.2020")
我正在尝试使用我在 github 上找到的脚本来开始使用它,但出现错误。
import win32com.client
import os
app = win32com.client.Dispatch('InDesign.Application.CC.2017')
myFile = r'C:\Users\gitte\Documents\Gittel Designs\eMAIL BANNERS\EmailBanners.indd'
myDocument = app.Open(myFile)
idPDFType = 1952403524
if app.Documents.Count is not 0:
directory = os.path.dirname(myFile)
docBaseName = myDocument.Name
for x in range(0, myDocument.Pages.Count):
myPageName = myDocument.Pages.Item(x + 1).Name
# We want to export only one page at the time
app.PDFExportPreferences.PageRange = myPageName
# strip last 5 char(.indd) from docBaseName
myFilePath = directory + "\" + docBaseName[:-5] + "_" + myPageName + ".pdf"
myDocument.Export(idPDFType, myFilePath)
myDocument.Close()
这是我的错误,我认为这与 Indesign 有关 - 我已经尝试更改年份,但我怎样才能让它识别我的应用程序?
runfile('C:/Users/gitte/Documents/SPYDER PYTHON/indesign export all pages as pdfs.py', wdir='C:/Users/gitte/Documents/SPYDER PYTHON')
Traceback (most recent call last):
File "C:\Users\gitte\Documents\SPYDER PYTHON\indesign export all pages as pdfs.py", line 10, in <module>
app = win32com.client.Dispatch('InDesign.Application.CC.2017')
File "C:\Users\gitte\Anaconda3\lib\site-packages\win32com\client\__init__.py", line 95, in Dispatch
dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch,userName,clsctx)
File "C:\Users\gitte\Anaconda3\lib\site-packages\win32com\client\dynamic.py", line 114, in _GetGoodDispatchAndUserName
return (_GetGoodDispatch(IDispatch, clsctx), userName)
File "C:\Users\gitte\Anaconda3\lib\site-packages\win32com\client\dynamic.py", line 91, in _GetGoodDispatch
IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.IID_IDispatch)
com_error: (-2147221005, 'Invalid class string', None, None)
您的字符串可能不正确。对于 2020 年,"InDesign.Application.2020" 下面是我的作品。如果您不确定,请在注册表中搜索 "InDesgin.Application"。希望这有帮助。
app = win32com.client.Dispatch("InDesign.Application.2020")