終了

illustrator 2023 (27.x)で複数pdfを開いてアウトラインをかけて.aiで保存

Community Beginner ,
Jan 29, 2023 Jan 29, 2023

リンクをクリップボードにコピー

コピー完了

投稿初心者なので、情報不足ありましたら申し訳ございません。

複数のpdfファイルを開いてアウトラインをかけて.aiで保存するスクリプト(下記参照)を
作成しました。

________________________________________________

var folder = Folder.selectDialog("Select a folder of PDF files");
if (folder != null) {
var files = folder.getFiles("*.pdf");
for (var i = 0; i < files.length; i++) {
var file = files[i];
var doc = app.open(file);
doc.selectObjectsOnActiveArtboard();
doc.createOutlines();
var newFile = new File(doc.path + "/" + doc.name.split(".pdf")[0] + ".ai");
doc.saveAs(newFile, Illustrator.SaveOptions.SAVECHANGES);
doc.close();
}
}

_________________________________________________

 

実行したところ

 

===============================

Error 24: doc.createOutlines が関数ではありません。
Line: 8

->           doc.createOutlines();

===============================
のエラーが発生し、ここを解消することができませんでした。
いろいろ、検索して調べてみましたが、わからなかったためコミュニティに投稿させていただきました。


お手数ですが、何卒、よろしくお願いいたします。。

キーワード
スクリプティング , 読み込みと書き出し

表示

542

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines

correct answers 1 件の正解

Community Expert , Jan 29, 2023 Jan 29, 2023

createOutlines() はTextFrameクラスの関数です。

※Ten Aさんの返信のとおりでした。 Illustratorでは s いりません。この行だけは手打ちでテストしたのに手クセで正しいメソッド名を入力してた。。汗

Documentクラスであるところの変数docでやったのでエラーが出たわけです。

あと、オブジェクトのロック解除も折り込むべきかと思います。

.createOutlines() を実行する目的で改変するとなると、doc.pageItems コレクションをループして、オブジェクトがテキストなら.createOutlines() ,といった感じになりますが、めんどくさいので

メニューコマンドで ・ロック解除 ・アウトライン作成 を入れるとラクです。

 

 

var folder = Folder.selectDialog("Select a folder of PDF files");
if (folder != null) {
var files = folder.getFiles("*.pdf");
for (var i = 0; i < files.l
...

投票

翻訳

翻訳
Community Expert ,
Jan 29, 2023 Jan 29, 2023

リンクをクリップボードにコピー

コピー完了

createOutlinesはInDesignのメソッドですね。IllustratorではcreateOutlineというメソッドがtextFrameItemにあるのでテキストフレーム1つずつにメソッドを適用していく必要があります。

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Beginner ,
Jan 29, 2023 Jan 29, 2023

リンクをクリップボードにコピー

コピー完了

早速、ご連絡いただきましてありがとうございます!
内容理解しました。
textFrameItemに定義していく方法考えます。

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Expert ,
Jan 29, 2023 Jan 29, 2023

リンクをクリップボードにコピー

コピー完了

createOutlines() はTextFrameクラスの関数です。

※Ten Aさんの返信のとおりでした。 Illustratorでは s いりません。この行だけは手打ちでテストしたのに手クセで正しいメソッド名を入力してた。。汗

Documentクラスであるところの変数docでやったのでエラーが出たわけです。

あと、オブジェクトのロック解除も折り込むべきかと思います。

.createOutlines() を実行する目的で改変するとなると、doc.pageItems コレクションをループして、オブジェクトがテキストなら.createOutlines() ,といった感じになりますが、めんどくさいので

メニューコマンドで ・ロック解除 ・アウトライン作成 を入れるとラクです。

 

 

var folder = Folder.selectDialog("Select a folder of PDF files");
if (folder != null) {
var files = folder.getFiles("*.pdf");
for (var i = 0; i < files.length; i++) {
var file = files[i];
var doc = app.open(file);
app.executeMenuCommand("unlockAll");    //すべてをロック解除
doc.selectObjectsOnActiveArtboard();
//doc.createOutlines();    //コメントアウト
app.executeMenuCommand("outline");    //アウトラインを作成
var newFile = new File(doc.path + "/" + doc.name.split(".pdf")[0] + ".ai");
doc.saveAs(newFile, Illustrator.SaveOptions.SAVECHANGES);
doc.close();
}
}

 

 実際試してないのですが(ごめんなさいごめんなさい)参考にどうぞ。

予想だとPDF保存のくだりも問題がありそうに思いますが…

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Beginner ,
Jan 30, 2023 Jan 30, 2023

リンクをクリップボードにコピー

コピー完了

ありがとうございます!
PDF保存が手動で保存しなければいけなくなってしまいましたが

(SaveOptionsを変えれば対応できると思ってます)

対応できました!

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Expert ,
Jan 29, 2023 Jan 29, 2023

リンクをクリップボードにコピー

コピー完了

テキストのアウトライン化は、先にAcrobatで済ませておくのをお勧めします。

 

スクリーンショット 2023-01-30 15.37.45.png

 

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Beginner ,
Jan 30, 2023 Jan 30, 2023

リンクをクリップボードにコピー

コピー完了

ありがとうございます!
PDFの際にすでにアウトラインしておく方法があるのですね。
これは複数ファイル(何十ファイル)でも対応が可能なのか確認してから試してみます!

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Expert ,
Jan 30, 2023 Jan 30, 2023

リンクをクリップボードにコピー

コピー完了

AIファイルの用途次第だとは思うのですが,環境にないフォントが使用されているPDF,Illustrator編集機能付きのPDFについては考慮しなくてよいのでしょうか。

 

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Beginner ,
Jan 30, 2023 Jan 30, 2023

リンクをクリップボードにコピー

コピー完了

ありがとうございます!

現在の要件は環境にないフォントが使用されているPDFは考慮していないです。

2点についても考慮した場合方法が異なりますね。

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Expert ,
Jan 30, 2023 Jan 30, 2023

リンクをクリップボードにコピー

コピー完了

「PDF」というのが気になりますし、アウトライン化の目的はどのような目的でしょうか。

編集情報のないPDFを無理やり開くと、その時点で結果が変わる場合があるので、アウトライン化以前の話になります。

またAcrobatのプリフライトでアウトライン化しても、利用されている文字数次第ではかなりのデータ量になってしまうことがあり、むしろ出力時に不適な結果になる場合があります。

PDF/Xになっているのであれば、そのまま出力処理される方が望ましい、ということになりそうですし、アウトライン化を実施する目的を明確にしたほうが良いかもしれません。

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Beginner ,
Jan 30, 2023 Jan 30, 2023

リンクをクリップボードにコピー

コピー完了

最新

ありがとうございます!

大量のpdfを扱う場合は、仰る通りそのまま出力が望ましいかもしれませんね。

数が少ない場合はプリフライトも一個の案として持っておきます。

アウトライン化の実施目的を明確化したうえで対応方法を変えたいと思います!

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines