TOP > blog > インデザイン 画像取り込みvbs事例
スクリプト
2016/09/24

インデザイン 画像取り込みvbs事例

管理者用
blog

クリアファイルの印刷用のデザインテンプレートをWebページで紹介しようと作業に入りました。
イラストレータでの作業です。
クリアファイルの形をデザインした上にテンプレート画像を貼り付けて行く作業です。

これを100件繰り返すのです。
10件ほどでやめてしまいました。さらに繰り返す事を考えるとぞーっとします。

 

 

そこで、インデザインで自動化する事にしました。

以前に使った事のあるスクリプトを探し出し、改造することにしました。
このスクリプトは、非常にシンプルなものでした。
PDFファイルを取り込んでインデザインファイルで保存するだけのものです。

この時の使用目的をお話ししておきます。
組版ソフトのエディカラーを使って、あるお客様の名刺のレイアウトを行って来ました。
しかし、様々な問題から、インデザインに切り替える事にしたのです。
この時、古い名刺データを活かすため、全てPDFファイルに書き出しました。
そして、全てのPDFファイルをインデザインに貼り付けたのです。
この時のPDFファイルの貼り付け作業にスクリプトを書きました。
変更のあった方の名刺は、インデザインで新しく作り、リピートでお受けした時は、PDFが貼り付けられたインデザインのファイルを使用すると言うものです。

今回、インデザインに貼り付けるファイルは、.png 画像ファイルです。

 

取り込みたいPNG画像ファイルと同じフォルダー位置に vbs実行ファイル ”in_in.vbs” を保存します。

インデザインで、クリアファイルの形をデザインして保存しておきます。

in_in.vbs ファイルをダブルクリックしてスクリプトを実行します。

スクリプトと同じフォルダーの .png ファイルがインデザインに取り込まれて行きます。

インデザインにテンプレート画像が取り込まれていく様子です。

 

 

 インデザインファイルと、PNG画像ファイルが追加されて行きます。

 

すべての取り込んだら終わります。


スクリプトは、最後に紹介しておきます。

ファイル名やサイズ、取り込む画像の拡張子など変更して見て実際に使って見てください。

vbsファイルは、メモ帳などのテキストファイルで書けますので便利です。 

少し変えるだけで、色々便利に使えると思います。

 

最後に、このスクリプトの終わりに

ご参考として、書き出しの際のフォーマットの定数を調べておきましたので紹介しておきます。

スクリプト全体


 

Dim objFSO
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")

Dim strFileNamae
strFileNamae = ""

Dim strParentFolder'このスクリプトの位置する フォルダーパス名 を取得
strParentFolder = objFSO.GetParentFolderName(WScript.ScriptFullName)

'フォルダーオブジェクトを取得
Dim objParentFolder
Set objParentFolder = objFSO.GetFolder(strParentFolder)

Dim objFiles
Set objFiles = objParentFolder.Files
Dim objFile 

Rem インデザインの起動
Rem ****************************************************************************************
Dim myIndesign
'Set myInDesign = CreateObject("InDesign.Application.CS6_J")
Set myInDesign = CreateObject("InDesign.Application")

'********************************************************************************************

haichi_gazo_YS = 27
haichi_gazo_XS = 18
haichi_gazo_YE = 337
haichi_gazo_XE = 228

FillCunt = 0
'ファイル名を取得
For Each objFile In objParentFolder.Files
Rem スクリプトファイル以外のファイル名のリストを作成 及び ファイル数をカウント
	If not  objFile.Name = "in_in.vbs" then

		strFileNamae = strFileNamae & objFile.Name & vbCrLf
      		FillCunt = FillCunt + 1
	End If
Next

If FillCunt >= 1 then

	for CuntAA =1 to FillCunt step 1

		strValue = Split(strFileNamae, vbCrLf )
		filMei = Split(strValue(CuntAA-1), ".")
		pattion = filMei(1)
		File_mei = filMei(0)
		'ターゲットのファイルの拡張子だけ処理を行う
		'if pattion = "pdf" then
		if pattion = "png" then

			faill_mei = "E:\クリアファイル\2017クリアファイル\クリア台紙.indd"
			Set myDocument = myInDesign.Open(faill_mei)

			sevFile_Na = strParentFolder & "\" & File_mei & ".indd"
			pdfFilemei = strParentFolder & "\" & File_mei & "." & pattion
			Set myTextFrame = myDocument.TextFrames.Add

			myTextFrame.GeometricBounds = Array(Cstr(haichi_gazo_YS) + "mm", Cstr(haichi_gazo_XS) + "mm", Cstr(haichi_gazo_YE) + "mm", Cstr(haichi_gazo_XE) + "mm")
			myTextFrame.ContentType = 1735553140   'idContentType.idGraphicTy 
			myTextFrame.Place (pdfFilemei)

			'aaaaaaaa = strParentFolder & "\" & "JPG" & File_mei & ".jpg"
                       'myInDesign.ActiveDocument.Export 1246775072, aaaaaaaa , False

			bbbbbbbb = strParentFolder & "\" & "PNG" & File_mei & ".png"
                       myInDesign.ActiveDocument.Export 1699761735, bbbbbbbb , False

			myInDesign.ActiveDocument.Save sevFile_Na

			myInDesign.ActiveDocument.Close

		end if

	Next

end if

Set objParentFolder = Nothing
Set objFiles = Nothing
Set objFile = Nothing
Set objFSO = Nothing

'ご参考 書き出しオプション フォーマット 指定
'------ExportFormat----------------------------	
'INTERACTIVE_PDF	1952409936
'PDF_TYPE	1952403524
'EPS_TYPE	1952400720
'EPUB	1701868898
'FIXED_LAYOUT_EPUB	1701865080
'SWF	1702066022
'HTML	1213484364
'JPG	1246775072
'PNG_FORMAT	1699761735
'XML	1481460768
'RTF	1381254688

'-----------------------------------------------

 


 

 

関連記事