C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: VBからIndesign(テキストフレーム)


(過去ログ 26 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■11977 / inTopicNo.1)  VBからIndesign(テキストフレーム)
  
□投稿者/ ようすけ (1回)-(2007/12/26(Wed) 14:13:14)

分類:[VB6 以前] 

vb6.0
Indesign CS3
を使っています。
どなたかわかる方いらっしゃいましたら、ご教授ください。
今までIndesignが2.0だったのですが、今回CS3になりました。
VBからIndesignのテキストフレームにデータを乗せてPDFを出力するという処理をしています。

Private Sub SetText(Doc As InDesign.Document, Tag As String, Text As String, Optional Mode As String = "")
' Dim wStyles As CharStyles
'◆◆ cs3にはCharStylesはないらしい ◆◆
Dim wStyles As CharacterStyles

Dim wTextFrame As TextFrame

If Text = "" Then Exit Sub

'debug用にコメント On Error GoTo TagErr

' Set wStyles = Doc.CharStyles
'◆◆ cs3にはCharStylesはないらしい ◆◆
Set wStyles = Doc.CharacterStyles

'◆◆ココです◆◆cs3にはAssociatedObjectがないらしい
Set wTextFrame = Doc.XMLElements.Item(Tag).AssociatedObject.TextFrames.Item(1)

If Len(Text) <= 2 And Left(Text, 1) = "!" Then
wTextFrame.TextContents = "?" & Mid(Text, 2)
wTextFrame.Paragraphs(1).characters.Item(1).applystyle wStyles("Rev")

Else
wTextFrame.TextContents = Text
End If

'-----------------------外字処理
Dim n As Integer
For n = 1 To Len(Text)
Select Case AscW(Mid(Text, n, 1))
Case -8192 To -8192 + 1880 'UnicodeでE000から1880文字を外字とみなす
wTextFrame.Paragraphs(1).characters.Item(n).applystyle wStyles("gaiji")
End Select
Next
'-----------------------外字処理

Call Choutai(wTextFrame, Tag)

TagErr:
Call WriteLog("Tag Error - " & Doc.Name & "/" & Tag & "/" & Text)
End Sub

今までは上記のプログラムで動いていたのですが、CS3に変更したことにより
あちこちでエラーが出てしまい(デバッグ、EXE作成時)、少しずつ直しています。

今、困っているのはテキストフレームへのセットに時間がかかるということです。
Set wTextFrame = Doc.XMLElements.Item(Tag).AssociatedObject.TextFrames.Item(1)
この1行を、

For Each allobj In Doc.AllPageItems
If TypeName(allobj) = "TextFrame" Then
If Not allobj.AssociatedXMLElement Is Nothing Then
If allobj.AssociatedXMLElement.MarkupTag.Name = Tag Then
Set wTextFrame = allobj
Exit For
End If
End If
End If
Next

と書くことによって2.0と同じことはできたのですが、
かなり時間がかかってしまいます。
全部のオブジェクトを対象に探しに行っているからだと思うのですが、
他の書き方などありましたら教えてください。

よろしくお願いいたします。


引用返信 編集キー/
■12331 / inTopicNo.2)  Re[1]: VBからIndesign(テキストフレーム)
□投稿者/ 通りスガリ (1回)-(2008/01/08(Tue) 09:27:19)
No11977 (ようすけ さん) に返信

私もVBでIndesignScriptを作成しております。
しかしCS3もXML機能も使っていないため残念ながらお力にはなれません。
こちらの掲示板で聞くより、Adobe ユーザーフォーラムのインデザイン SDK フォーラムでトピックを建ててみてはいかがかと思いますがいかがでしょう。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -