DTP駆け込み寺
  1. [21291] イラレからpdf保存するスクリプト どすこいタロー 2023/10/02 16:04
    1. [21292] Re: イラレからpdf保存するスクリプト どすこいタロー 2023/10/02 16:22
    2. [21293] Re: イラレからpdf保存するスクリプト (z-) 2023/10/03 09:24
      1. [21299] Re^2: イラレからpdf保存するスクリプト どすこいタロー 2023/10/10 18:19 *
        1. [21302] Re^3: イラレからpdf保存するスクリプト (z-) 2023/10/11 13:00
          1. [21306] Re^4: イラレからpdf保存するスクリプト . 2023/10/30 19:13

[ 返信 ]

イラレからpdf保存するスクリプト

Mac OS 10.13.5
illustrator CC 2018

初めて投稿させていただきます。
粗相があればすみません。

フォルダを指定してイラレからpdfを保存するスクリプトを作ったのですが、環境に無いフォントが使われている際に出る警告を消すとフォントが化けたままpdfが保存されてしまう状態になっています。

スクリプトの動きとしては
aiがあるフォルダを指定

pdfを保存するフォルダを指定

書き出しプリセットを選択

aiを1ファイルずつ開いてpdf保存して閉じる(繰り返し)
という形です。

フォントが引っかかるものは数百ファイルあるうちの数点程だと思うので、エラーが出たらそのファイルを開いたままの状態にしてスキップするか、pdfを保存する際にファイル名に印を付けて保存し後ほど確認する、という形を取ろうかと考えているのですが、この処理を行えるコードをご教授いただきたいです。

数週間奔走していたのですがイラレのjavascriptの例が少なく、全く進まないのでこちらに書き込ませていただいた次第です。

何卒よろしくお願いいたしますm(_ _)m

[21291] どすこいタロー (2023/10/02 Mon 16:04)

[ 返信 ]


Re: イラレからpdf保存するスクリプト

以下現在のスクリプトです。

#target "illustrator"

//フォルダの選択
var conf = confirm("IllustlatorからPDFを作成しますか?");

if(conf==true)
{
//今開いている全てのドキュメントを保存せずに閉じる
if(app.documents.length!=0)
{
var close=confirm("開いているドキュメントが"+app.documents.length+"つあります\n保存せずに閉じてもよろしいですか");
if(close==true)
{
for(var p=app.documents.length-1; p>=0; p--)
{
app.documents[p].close(SaveOptions.DONOTSAVECHANGES);
}//p
}//if(close==true)
else
{
alert("処理を中止します");
}//else
}//if(app.documents.length!=0)

if(app.documents.length==0)
{
alert("処理対象フォルダを選択してください");

var selFolder = Folder.selectDialog("処理対象フォルダを選択してください");

//フォルダを選んだら処理を進める
if(selFolder == null)
{
alert("処理対象フォルダの指定がキャンセルされました。\n処理を中止します");
}//if
else
{
//フォルダ内にあるaiデータのリストを作成
var fileList = selFolder.getFiles("*.ai");

//aiデータがあれば処理する
if(fileList == "")
{
alert("Illustratorのデータがありません。\n処理を中止します");
}//if
else
{
//ファイルの保存場所を指定する
alert("PDFを保存するフォルダを選択してください");

var saveFolder = Folder.selectDialog("PDFを保存するフォルダを選択してください");

if(saveFolder == null)
{
alert("保存フォルダの指定がキャンセルされました。\n処理を中止します");
}//if
else
{
var x4 = confirm("《X-4》で書き出しますか");

if(x4==true)
{
for (f=0; f<fileList.length; f++)
{
var fileObj = new File(fileList[f]);
app.open(fileObj);

var last=fileList[fileList.length-1];

var myDoc = app.activeDocument;
var namecount = (fileObj.name).lastIndexOf(".");
var fname = (fileObj.name).substr(0, namecount);
var pdfOpt = new PDFSaveOptions();

pdfOpt.pDFPreset = "PDF/X-4:2008 (日本)";
pdfOpt.viewAfterSaving = false;
pdfOpt.preserveEditability = false;
savefile = new File(saveFolder.fsName+"/"+fname+".pdf");
myDoc.saveAs(savefile,pdfOpt);
myDoc.close(SaveOptions.DONOTSAVECHANGES);

}//f

alert("全てのPDFが書き出されました");

}//if(x4==true)
else
{
alert("処理を中止します");
}

}
}
}
}//i
}

[21292] どすこいタロー (2023/10/02 Mon 16:22)

[ 返信 ]


Re: イラレからpdf保存するスクリプト

>環境に無いフォントが使われている際に出る警告を消すとフォントが化けたままpdfが保存されてしまう

「警告を消す」はどうやって実現してますか? 環境設定ファイルいじるやつですか?

[21293] (z-) (2023/10/03 Tue 09:24)

[ 返信 ]


Re^2: イラレからpdf保存するスクリプト

Re^2: イラレからpdf保存するスクリプト

(z-)さま
レスありがとうございます。
返答が送れてしまいすみません。

> 「警告を消す」はどうやって実現してますか? 環境設定ファイルいじるやつですか?

警告は手動で消しています。
しかしながらプログラムの処理速度のせいか、警告が出る前にpdfを書き出し終えてしまった場合、添付画像の警告が出てきます。
というかすべてこの警告が出ているのだと思います。
(自身で多数ファイルの書き出しを検証出来ておらず曖昧な回答で申し訳ありません)

[21299] どすこいタロー (2023/10/10 Tue 18:19)

[ 返信 ]


Re^3: イラレからpdf保存するスクリプト

あ、すみません意味わかりました
ファイル群を連続処理する際、フォント警告が出るが、「開くのをスキップして次のファイル」という選択肢がないため、きちんと書き出せないのがわかりきった状態で開かざるを得ず、当たり前に書き出しエラーが出るのでとても煩わしい、
ですね把握しました。

ドキュメントに使われているが、環境にないフォントの名前をテキストに書き出すJavaScriptを書いた ごんれのラボ
https://www.macneko.com/entry/export-not-installed-font-name-to-text

大きなヒントになりそうですね。

[21302] (z-) (2023/10/11 Wed 13:00)

[ 返信 ]


Re^4: イラレからpdf保存するスクリプト

てか長いのあげればいいのかな

[21306] . (2023/10/30 Mon 19:13)