Избранное »

22.09.2014 – 07:27 | 2 комментария | 27 541 views

Здравствуйте все, кто работает в Индизайне!
Извещаем вас о том, что на youtube.com работает канал «InDesign Мастерская вёрстки». Там уже размещены более 70 видео с полным описанием как работать с программой DoTextOK. Другие интересные темы, касающиеся работы …

Читать полностью »
Работа в InDesign

Хитрости и секреты, приемы работы, уроки

Новая версия!

Особенности новой версии Индизайна

Плагины

Описание плагинов, информация о плагинах для работы с Adobe InDesign

Скрипты

Готовые к использованию скрипты для Adobe InDesign

Скриптинг

Описание языка, приёмов и методов программирования для Adobe InDesign

Home » Скрипты

Скрипт Preflight

Добавлено на 14.10.2008 – 23:494 комментария | 1 062 views

Перед передачей файлов в типографию необходимо убедиться в отсутствии в работе косяков, которые могут обернуться не только потраченными нервами и временем, но и деньгами из собственного кармана. Выполнить Preflight-контроль вам поможет скрипт, написанный Евгением Каревым.

Диалог после завершения работы

В процессе работы скрипта контролируются:
1. Наличие RGB-графики в документе.
2. Наличие графики с низким разрешением (<240 dpi).
3. Наличие непропорционально масштабированной графики.
4. Переполнение текстовых фреймов (Overset Text).

Если о наличии RGB-графики мы можем узнать и штатными средствами Preflight, то о существовании в документе непропорционального масштабирования и графики с низким разрешением InDesign CS3 умалчивает. Нет в Индизайне и штатного средства контроля вытесненного текста.
Наличие такого вида проверок и есть главное достоинство скрипта.

После окончания работы скрипт по вашему желанию может вывести отчет в файл.

with(app){
myDoc = activeDocument
mySearchL = myDoc.allGraphics.length
myIm = myDoc.allGraphics
myMinRes = 240
textRGB = «»
countRGB = 0
textRes = «»
countRes = 0
textDis = «»
countDis = 0
countOver = 0
textOver = «»
for (count = 0;count<mySearchL;count++){
//rgb
if (myIm[count].constructor.name == «Image»&&myIm[count].space ==»RGB»){
owner = myIm[count].parent
countRGB = countRGB +1
while((owner.constructor.name != «Page»)&&(owner.constructor.name != «Spread»)){
owner = owner.parent}
if (owner.constructor.name == «Page»){textRGB =textRGB+»\n»+»>>> Page («+owner.name+»); file name: «+myIm[count].itemLink.name}
else{ textRGB = textRGB+»\n»+»>>> Page (PB)»+»; file name: «+myIm[count].itemLink.name}}
//Low resolution images
try{
myResW = myIm[count].effectivePpi[0]
myResH = myIm[count].effectivePpi[1]
if (myIm[count].constructor.name == «Image»){
if (myResW<myMinRes||myResH<myMinRes){
owner = myIm[count].parent
countRes = countRes +1
while((owner.constructor.name != «Page»)&&(owner.constructor.name != «Spread»)){
owner = owner.parent}
if (owner.constructor.name == «Page»){textRes =textRes+»\n»+»>>> Page («+owner.name+»); file name: «+myIm[count].itemLink.name+ » («+myResW+»x»+myResH+»)»}
else{ textRes = textRes+»\n»+»>>>Page (PB)»+»; file name: «+myIm[count].itemLink.name+ » («+myResW+»x»+myResH+»)»}}}
}catch (e){}
//Disproportionate images
myW = myIm[count].horizontalScale.toPrecision(3)
myH = myIm[count].verticalScale.toPrecision(3)
if (myIm[count].constructor.name == «Image»){
if (myW!=myH){
owner = myIm[count].parent
countDis = countDis +1
while((owner.constructor.name != «Page»)&&(owner.constructor.name != «Spread»)){
owner = owner.parent}
if (owner.constructor.name == «Page»){textDis =textDis+»\n»+»>>> Page («+owner.name+»); file name: «+myIm[count].itemLink.name}
else{ textDis = textDis+»\n»+»>>> Page (PB)»+»; file name: «+myIm[count].itemLink.name}}}}
//overflow
myStory = myDoc.stories
Len = myStory.length
for (a=0;a<Len;a++){
totLine = myStory.item(a).lines.length
lineLen = 0

myTxtFr = myStory.item(a).textContainers
for (t=0;t<myTxtFr.length;t++){
myTxt=myTxtFr[t]
if (myTxt.overflows==true){
myString = myTxt.lines.item(0).contents
owner = myTxt.parent
countOver = countOver +1
while((owner.constructor.name != «Page»)&&(owner.constructor.name != «Spread»)){
owner = owner.parent
}

if (owner.constructor.name == «Page»){textOver =textOver+»\n»+»>>> Page («+owner.name+»); «+myString+»\n……..»}
else{ textOver = textOver+»\n»+»>>> Page (PB)»+»; «+myString+»\n……..»}}}}

textTotalRGB = «\nRGB Images: «+countRGB+» item(s)»+»\n———————»

textTotalRes = «\nLow resolution images: «+countRes+» item(s)»+»\n———————»
textTotalDis = «\nDisproportionate images: «+countDis+» item(s)»+»\n———————»
textTotalOver = «\nOverset text: «+countOver+» item(s)»+»\n———————»

reportText  = «Document: «+myDoc.name + «\n———————«+»\nRGB Images: «+»(«+countRGB+»)»+textRGB+»\n———————«+
«\nLow resolution images: «+»(«+countRes+»)»+textRes+»\n———————«+
«\nDisproportionate images: «+»(«+countDis+»)»+textDis+»\n———————«+
«\nOverset text: «+»(«+countOver+»)»+textOver

result = confirm («Document: «+myDoc.name + textTotalRGB+textTotalRes+textTotalDis+textTotalOver+»\n\nCREATE REPORT?»+»\n\n\n jvk * 2007 | karev_e@mail.ru»)}
if(result == false){exit()}
pH = myDoc.documentPreferences.pageHeight
pW = myDoc.documentPreferences.pageWidth
lM = myDoc.pages.item(0).marginPreferences.left
rM = myDoc.pages.item(0).marginPreferences.right
tM = myDoc.pages.item(0).marginPreferences.top
bM = myDoc.pages.item(0).marginPreferences.bottom
myRepDoc=app.documents.add()
with(myRepDoc.documentPreferences){
var pageHeight = pH;
var pageWidth =  pW;
var facingPage = false;
var pagesPerDocument = 1;
var pageOrientation = PageOrientation.portrait}
with(myRepDoc.pages.item(0).marginPreferences){
var columnCount = 1;
var columnGutter = «4»;
var bottom = bM;
var left = lM;
var right = rM;
var top = tM;}
w = pW -(lM+rM)
h = pH -(tM+bM)
myTF = myRepDoc.pages.item(0).textFrames.add()
with(myTF){
var geometricBounds = [tM, lM, tM+h,lM+w];
myTF.textFramePreferences.textColumnCount = 2
myTF.textFramePreferences.textColumnGutter = 4
insertionPoints.item(0).contents =reportText
paragraphs.item(0).pointSize = 7}

with (app){
app.findTextPreferences = NothingEnum.nothing;
app.changeTextPreferences = NothingEnum.nothing;
findTextPreferences.findWhat = «>>> Page»;
changeTextPreferences.fontStyle = «Bold»
myRepDoc.changeText()
}

4 комментария »

Оставить комментарий!

Вы должны быть в системе чтобы оставить комментарий.