vb.net - illustrator

改行コードの削除 何回目???

イラストレーターの文字列の改行コードは 強制改行時に付与されるらしい。 調べてみると Asc(改行コード) = 3 '[3]-ETX(テキスト終了) と判明。 という訳で '改行コードを半角スペースに置換 temContents = Regex.Replace(temContents, Chr(3), " ")

改行コードの削除 何回目?

'改行コードが先頭にある場合 If Regex.IsMatch(Name, "^\w") Then 'Console.WriteLine("ok") Else Name = Name.Remove(0, 1) End If

参照設定

ちょっとメモ。 Adobe Illustrator 10.0 Type Library C:\Program Files (x86)\Adobe\Illustrator 10.0.3\プラグイン\機能拡張\ScriptingSupport.aip

エリアテキストのボックスサイズを指定

エリアテキスト作成時、ボックスがやたらデカイ。 何なんだこれは? ちょっと調べてみると、どうやらテキストボックスの幅は 特に指定しなければ、フォントサイズに関係なく「文字数 * 6 pt」 のようだ。たぶん。 ちゅう事で、文字列がほどほどに収まるよう…

画像(RasterItem)の本来の大きさを取得

BoundingBoxを使用 Dim RasterItem As Illustrator.RasterItem Dim rHeight As Single = RasterItem.BoundingBox(1) Dim rWidth As Single = RasterItem.BoundingBox(2)

破線

Dim sDash(1) As Object sDash = New Object() {6.0, 3.0} With Line .Filled = False .Stroked = True .StrokeColor = LineColor("B") .StrokeWidth = 2 .StrokeDashes = sDash End With

エリアテキスト

表示したり、しなかったり・・・ TextType の位置を変えてテスト。 Dim IllApp As New Illustrator.Application Dim NewDoc As Illustrator.Document = IllApp.ActiveDocument Dim TextItem1 As Illustrator.TextArtItem Dim Str As String Dim rowCount As …

パスアイテムが含まれるアイテムタイプを取得

For Each pItem In IllDoc.PathItems Console.WriteLine(TypeName(pItem.Parent)) 'GroupItem 'Layer Next

PathItemの数値

プロパティ 値の型 説明 Height Single GeometricBounds に基づいて計算した PathItem の高さ(線の幅を除く)。 Width Single GeometricBounds に基づくPathItem の幅(線の幅を除く)。 Top Single PathItem の上端の位置。 Left Single PathItem の左側の…

パスアイテム 乗算

pathItem.BlendingMode = Illustrator.AiBlendModes.aiMultiply

フォント名称 取得・設定

ちょっとメモ FontName = TextArtItems(i).TextRange.Font "MS-Gothic" "MS-PGothic" "ArialMT" "Arial-BoldMT"

用紙サイズ

A3 - 297×420 A4 - 210×297 B4 - 257×364 レター - 215.9×279.4 (単位:mm)

文字列の改行を削除 3回目

文字列の改行を徹底的に削除←なんてやってたけど、どうもうまくいかない。 仕方ないので一文字づつ処理していく事にした。 Dim temContents As String = String.Empty Dim newCont As String Dim temCont As String = String.Empty For Each tItem As TextAr…

複合パスを解除

Ctrl + Alt + 8 オブジェクトタブ - 複合パス - 解除

文字列の改行を徹底的に削除

イラストレーター 改行コード で改行の削除はとりあえず可能になったが、他所のイラスト屋さんから送られてきたイラストレーターファイルには「vbCr」では取れない物も存在した。 イカン!これではイカン!!という事で、Replace と StringReader の2段構え…

LINQ to Object で String を取得 - IEnumerable(Of String)

イラストレーターのアイテムを格納する class を作り、プロパティとしてアイテムの情報を取得させる。 Dim PName As Object Dim PNameStr As String '条件に合う文字列を「PName」に格納。 PName = From c As IllData1 In iData Where (c.Cate = 3) AndAlso …

SQLデータベースを使用してアイテムを削除

Imports System.Data.OleDb ・・・ Public Sub ItemRemove(ByVal IllDoc As Illustrator.Document) 'タイトルと罫線を削除する If Form1.Cn.State = ConnectionState.Closed Then Form1.Cn.Open() 'データベースに接続 Dim delCom As OleDbCommand = Form1.C…

COMオブジェクトの内部エラー 複数回トライ

COMオブジェクトの内部エラー メモリ解放でもダメなら 5回トライしてみる Imports System.Runtime.InteropServices.Marshal ... Dim IllDoc As Illustrator.Document Dim IllLay As Illustrator.Layer Dim n, i, ErrorCount As Integer Dim LayName() As St…

COMオブジェクトの内部エラー メモリ解放

vb.net で他のアプリケーションを操作していると頻発するのが an internal error occurred:PARM 直訳すれば「内部でエラーが起きたぜ」って事になるが、内部ってなんやねん。調べてみるとどうやら「COMオブジェクトの内部エラー」らしい。 ふーん ( ´_ゝ`)…

pt - mm 換算

1pt = 1/72inch = 0.3527777...mm ≒ 0.35mm (1inch = 25.4mm) ということは 2.86pt ≒ 1mm じゃあイラストレーターで実際に移動させてみよう。 IllDoc.PathItems(1).Translate(moveX, 0) ちなみに PathItems(0) はエラーになる。配列とは違うので気をつけよう…

グループアイテムの取得方法

Dim IllApp As New Illustrator.Application Dim IllDoc As Illustrator.Document = IllApp.ActiveDocument Dim gItem As Illustrator.GroupItem Dim lItem As Illustrator.Layer Dim pgItem As Illustrator.PageItem 'ドキュメント内の全てのグループアイテ…

楕円を作成

Dim pItem As Illustrator.PathItem pItem = IllDoc.PathItems.RoundedRectangle(0, 0, 12, 6, 1, 2) 'RoundedRectangle( '[top As Single], [left As Single], 座標で位置を指定(オブジェクトの左上が基準) '[Width As Single], [Height As Single], 幅と…

グループアイテムを再帰的に処理

内部エラーで止まる場合はcomオブジェクトの開放をしよう。 Private Sub GetText() Dim Illapp As New Illustrator.Application Dim IllDoc As Illustrator.Document IllDoc = Illapp.ActiveDocument Dim lItem As Illustrator.Layer Dim gItem As Illustrat…

別のディレクトリに保存して閉じる

Public Sub aiSave() '処理したいファイルを別ディレクトリにコピーするためのフォルダを新しく作成します Dim SaveDocDir As String = Path.GetDirectoryName(Form1.FL(0)) & "\ai_" & Format(Now(), "yyyyMMddHHmmss") & "\" MkDir(SaveDocDir) Dim IllApp…

class を使用して情報収集サンプル

処理モジュールサンプル Imports System.IO Imports System.Text Imports System.Text.RegularExpressions Imports System.Runtime.InteropServices.Marshal Module IllClass_sample Dim FLs As New List(Of String) '処理するファイルパスを格納したリスト …

イラストレーター 保存せずにドキュメントを閉じる

IllDoc.Close(Illustrator.AiSaveOptions.aiDoNotSaveChanges)

イラストレーター 改行コード

イラストレーターの文字列の改行を削除したい。 NameStr = Replace(NameStr, vbCr, String.Empty) ミソは「vbCr」。「vbCrLf」ではうまくいかない。 ???おやおや?? イラストレーターで処理しても削除されないぞ??? って事であーだこーだやってる内に…

COMオブジェクトの開放

Imports System.Runtime.InteropServices.Marshal If Not IllDoc Is Nothing Then ReleaseComObject(IllDoc) 'COMオブジェクトの開放

イラストレーター GeometricBoundsって何だ?

Public Function WhatIsGeometricBounds() Dim IllApp As New Illustrator.Application Dim IllDoc As Illustrator.Document Dim pItem As PathItem Dim temObj As Object IllDoc = IllApp.ActiveDocument For Each pItem In IllDoc.Selection Console.Write…

イラストレーター GeometricBoundsでセンター取得

Public Function GetCenter(ByVal pItem As Illustrator.PathItem) Dim CX, CY, Right, Left, Top, Bottom, Width, Height As Single 'GeometricBounds(0) : Left 'GeometricBounds(1) : Top 'GeometricBounds(2) : Right 'GeometricBounds(3) : Bottom 'な…