Уважаемые, помогите - скрипт дурит

  • Автор темы Автор темы Dr.Seventh
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Dr.Seventh

Участник
Топикстартер
Сообщения
3
Реакции
0
Код:
Set myInDesign = CreateObject("InDesign.Application.CS2")
Dim MyActiveDocument
Set MyActiveDocument = MyIndesign.ActiveDocument
If myInDesign.Documents.Count <> 0 Then
	If myInDesign.Selection.Count <> 0 Then
		'создаем Article элемент
		MyActiveDocument.XMLElements.Item(1).XMLElements.Add("Article")
		Set MyArticle = MyActiveDocument.XMLElements.Item(1).XMLElements.Item(MyActiveDocument.XMLElements.Item(1).XMLElements.Count)
		For myCounter = 1 To myInDesign.Selection.Count
			Select Case TypeName(MyIndesign.ActiveDocument.Selection.Item(myCounter))
				Case "TextFrame":
        Zagol(MyIndesign.ActiveDocument.Selection.Item(myCounter))
				Case "Rectangle":
				' Добавляю элемент Photo
				MyArticle.XMLElements.Add("Photo")
				' MyPhoto - это номер последней фотографии в последней статье в публикац
				Set MyPhoto = MyArticle.XMLElements.Item(MyArticle.XMLElements.count)
				Set MyXMLElement = MyPhoto.XMLElements.Add("Picture")
				MySelection.Item(myCounter).Markup MyXMLElement
			End Select
		Next
	End If
End If
Sub Zagol(MyFrame)
For i = 1 To MyFrame.Paragraphs.Count
	If MyFrame.Paragraphs.Item(i).AppliedParagraphStyle = "body text" Then
		MyFrame.Paragraphs.Item(i).Markup MyArticle.XMLElements.Add("Pt")
	End If
Next
End Sub
Вышеприведенный код на vbs должен в структуре документа создать тег - статью (Article) и - графический фрейм добавить в статью под тегом Picture, а текстовый если есть стиль параграфа body text - помечает тегом Pt, который должен быть в теге Article.
С графическим фреймом всё нормально - а вот с текстовым - бред -- откуда - то берется Story и хитро в нем сохраняет Pt - помогите - в чем я неправ???? Тег Story автоматом берется почему - то из Tagging Preset Options
PS Indesign CS2
 
Ответ: Уважаемые, помогите - скрипт дурит

Неужели никто ?!?
Неужели проблема нерешаема ??!?
 
Ответ: Уважаемые, помогите - скрипт дурит

Всем спасибо .
После долгих исследований ... и многочисленных консультации уважаемого Ragman было выяснено- что без этого самого Story ... или как угодно обзываемого, нельзя закинуть кусок текста из фрейма.
Пришлось с этим смириться - но возникла другая проблема - это самое Story -- пишется в корневой элемент --- а как его закинуть например в Article ?? Может есть у кого соображения ?
Код:
Set myInDesign = CreateObject("InDesign.Application.CS2")
Dim MyActiveDocument
Set MyActiveDocument = MyIndesign.ActiveDocument
If myInDesign.Documents.Count <> 0 Then
	If myInDesign.Selection.Count <> 0 Then
		'создаем Article элемент
		MyActiveDocument.XMLElements.Item(1).XMLElements.Add("Article")
		Set MyArticle = MyActiveDocument.XMLElements.Item(1).XMLElements.Item(MyActiveDocument.XMLElements.Item(1).XMLElements.Count)
		For myCounter = 1 To myInDesign.Selection.Count
			Select Case TypeName(MyIndesign.ActiveDocument.Selection.Item(myCounter))
				Case "TextFrame":
				For i = 1 To MyIndesign.ActiveDocument.Selection.Item(myCounter).Paragraphs.Count
        Zagol(MyIndesign.ActiveDocument.Selection.Item(myCounter).Paragraphs.Item(i))
        Podzagol(MyIndesign.ActiveDocument.Selection.Item(myCounter).Paragraphs.Item(i))
        Vrez(MyIndesign.ActiveDocument.Selection.Item(myCounter).Paragraphs.Item(i))
        Pt(MyIndesign.ActiveDocument.Selection.Item(myCounter).Paragraphs.Item(i))
        Author(MyIndesign.ActiveDocument.Selection.Item(myCounter).Paragraphs.Item(i))
        AuthorF(MyIndesign.ActiveDocument.Selection.Item(myCounter).Paragraphs.Item(i))
        Pictopisan(MyIndesign.ActiveDocument.Selection.Item(myCounter).Paragraphs.Item(i))
        Next 
				Case "Rectangle":
				' Добавляю элемент Photo
				MyArticle.XMLElements.Add("Photo")
				' MyPhoto - это номер последней фотографии в последней статье в публикац
				Set MyPhoto = MyArticle.XMLElements.Item(MyArticle.XMLElements.count)
				Set MyXMLElement = MyPhoto.XMLElements.Add("Picture")
				myInDesign.Selection.Item(myCounter).Markup MyXMLElement
			End Select
		Next
	End If
End If
Sub Zagol(MyParagraph)
	If MyParagraph.AppliedParagraphStyle = "zag" Then
		MyParagraph.Markup MyArticle.XMLElements.Add("Zagol")
	End If
End Sub
Sub Podzagol(MyParagraph)
	If MyParagraph.AppliedParagraphStyle = "podz" Then
		MyParagraph.Markup MyArticle.XMLElements.Add("Podzagol")
	End If
End Sub
Sub Vrez(MyParagraph)
	If MyParagraph.AppliedParagraphStyle = "wrez" Or MyParagraph.AppliedParagraphStyle = "wrez-w" Then
		MyParagraph.Markup MyArticle.XMLElements.Add("Vrez")
	End If
End Sub
Sub Pt(MyParagraph)
	If MyParagraph.AppliedParagraphStyle = "body text"  Or MyParagraph.AppliedParagraphStyle = "zvezda" Then
		MyParagraph.Markup MyArticle.XMLElements.Add("Pt")
	End If
End Sub
Sub Author(MyParagraph)
	If MyParagraph.AppliedParagraphStyle = "podpis" Then
		MyParagraph.Markup MyArticle.XMLElements.Add("Author")
	End If
End Sub
Sub AuthorF(MyParagraph)
	If MyParagraph.AppliedParagraphStyle = "avt photo" Then
		MyParagraph.Markup MyArticle.XMLElements.Add("AuthorPhoto")
	End If
End Sub
Sub Pictopisan(MyParagraph)
	If MyParagraph.AppliedParagraphStyle = "podp photo" Then
		MyParagraph.Markup MyArticle.XMLElements.Add("Pictopisan")
	End If
End Sub
 
Статус
Закрыто для дальнейших ответов.