繁体   English   中英

Python InDesign 脚本:如何运行预检?

[英]Python InDesign scripting: How to run a preflight check?

本指南很好地概述了使用 Python 编写的 InDesign 脚本。 我能够打开我的文档并将其导出为 PDF,但除此之外,我想检查是否有任何文本框有一些溢出的文本。 我想使用一些预检检查来完成此操作,但是当我尝试调用

myPreflight = app.PreflightProcesses.add(myDocument, myProfile)

我收到错误“缺少方法'Add'所需的参数'TargetObject'。”,尽管根据文档我确实提供了目标对象。

我真的很感激一个关于如何检查溢出文本的具体例子,因为我对这种方法很陌生。 感谢您的时间!

这是对我有用的 Python 片段:

import win32com.client

app = win32com.client.Dispatch('InDesign.Application.CS6')
doc = app.Open(r'd:\temp\test.indd')

profile = app.PreflightProfiles.Item('Stackoverflow Profile')
print('Profile name:', profile.name)

process = app.PreflightProcesses.Add(doc, profile)
process.WaitForProcess()
results = (process.processResults)
print('Results:', results)

doc.Close()

input('\nDone... Press <ENTER> to close the window')

对于我的测试文件,当它出现“Overset Text”错误时,它会显示如下输出:

在此处输入图片说明

如果没有错误,我会得到这个:

在此处输入图片说明

当然,您需要使用您的实际文件名和配置文件更改代码中的文件名和配置文件名称。 也许您需要使用CC.2020或您拥有的任何内容更改CS6

以防万一,代码的 ExtendScript 变体(对于已经打开的文档)如下所示:

var myDocument = app.activeDocument;
var myProfile = app.preflightProfiles.item('Stackoverflow Profile');
var myPreflight = app.preflightProcesses.add(myDocument, myProfile);
myPreflight.waitForProcess();
var results = (myPreflight.processResults);
alert(results);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM