Render.ru

Помогите со скриптом

#1
Такая вот задачка: есть около 350 страниц (левое и правое поле различаются)и на каждой нужно расположить текстовой бокс, к тому же они должны быть слинкованными друг с другом. Не получается скрипт. Бокс создается только на одной из страниц разворота. Как линковать их друг с другом?
 
#3
на email сбросить не получилось

Вот такой скрипт:


Dim myInDesign As InDesign.Application

Sub main()
Set myInDesign = CreateObject("InDesign.Application.2.0")

Set myWindow = myInDesign.ActiveWindow
Set myDocument = myInDesign.ActiveDocument
For i = 1 To 351
Set myTextFrame = myDocument.Pages.Item(i).TextFrames.Add
Rem Specify the size and shape of the text frame.
myTextFrame.GeometricBounds = Array("184 mm", "17 mm", "195.154 mm",
"130 mm")
Next

End Sub


сильно ногами не пинать :) я только учусь...

------
tonych
 
#4
=== Настройки ======
fTop = 184
fLeft = 17
fBottom = 195.154
fRight = 113
==================

Dim myInDesign

Set myInDesign = CreateObject("InDesign.Application.2.0")
Set myDocument = myInDesign.ActiveDocument
Set myWindow = myInDesign.ActiveWindow
i = 0
For Each mySpread In myDocument.Spreads
For Each myPage In mySpread.Pages
bPage = myPage.Bounds
If i = 0 Then
Set myTextFrame = myPage.TextFrames.Add
myTextFrame.GeometricBounds = Array(fTop & " mm", (bPage(1) + fLeft) & " mm", fBottom & " mm", (bPage(1) + fLeft + fRight) & " mm")
Else
Set myTextFrame.NextTextFrame = myPage.TextFrames.Add
myTextFrame.NextTextFrame.GeometricBounds = Array("184 mm", (bPage(1) + 17) & " mm", "195.154 mm", (bPage(1) + 17 + 113) & " mm")
Set myTextFrame = myTextFrame.NextTextFrame
End if
i = 1
Next
Next

Обрати внимание, что пейджи лежат не просто так, а в колекции спридов (разворотов, как я понимаю). Удачи!
 
#5
Запостил сначала немного недоделанный скрипт. И к тому же не указал, что данный скрипт написан VBScript. То есть копируешь его текст в буфер обмена, создаешь пустой текстовый файл с расширение .vbs, копируешь из буфера туда, сохраняешь - у тебя работающий скрипт.

' НАЧАЛО СКРИПТА
'=== Настройки ======
fTop = 184
fLeft = 17
fBottom = 195.154
fRight = 113
'==================

Dim myInDesign

Set myInDesign = CreateObject("InDesign.Application.2.0")
Set myDocument = myInDesign.ActiveDocument
Set myWindow = myInDesign.ActiveWindow
i = 0
For Each mySpread In myDocument.Spreads
For Each myPage In mySpread.Pages
bPage = myPage.Bounds
If i = 0 Then
Set myTextFrame = myPage.TextFrames.Add
myTextFrame.GeometricBounds = Array(fTop & " mm", (bPage(1) + fLeft) & " mm", fBottom & " mm", (bPage(1) + fLeft + fRight) & " mm")
Else
Set myTextFrame.NextTextFrame = myPage.TextFrames.Add
myTextFrame.NextTextFrame.GeometricBounds = Array(fTop & " mm", (bPage(1) + fLeft) & " mm", fBottom & " mm", (bPage(1) + fLeft + fRight) & " mm")
Set myTextFrame = myTextFrame.NextTextFrame
End if
i = 1
Next
Next
' КОНЕЦ СКРИПТА

Обрати внимание, что пейджи лежат не просто так, а в колекции спридов (разворотов, как я понимаю). Удачи!
 
#6
Закрутилось!!! Большое спасибо!!!!
ps а чем отличается vbscript от обычного vb? какие преимушества???
 
#7
Ну дык, а чего не будет крутиться-то. Компилить, к примеру, не нужно. Да и средства разработки бесплатней некуда: FAR, Notepad или чего еще с подсветкой синтаксиса VB. Проще (хотя и VB достаточно прост), например, все данные в переменных исключительно типа Variant. Ну и т.д.
 
Сверху