終了

undefined is not an object

Community Beginner ,
Jun 25, 2020 Jun 25, 2020

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

コピー完了

過去(CS6)に公開されていたスクリプトをそのままInDesign 2020に移植したのですが、件名のエラーで実行できません。このエラー自体は色々な要因で発生しているようですが、原因がわかりませんでした。もしお分かりになる方がいらっしゃればご教示下さい。

 

//Display a "choose folder" dialog box.

if(app.documents.length !==0){
var myFolder=Folder.selectDialog("choose a Folder");
if(myFolder !==null){
myExportPages(myFolder);
}
}
else{
alert("Please oppen a document and try again.");
}

function myExportPages(myFolder){
var myPageName, myFilePath, myFile;
var myDocument=app.activeDocument.name;
var myDocumentName=myDocument.name;
var myDialog=app.dialogs.add();

with(myDialog.dialogColumns.add().dialogRows.add()){
staticTexts.add({staticLabel:"Base name;"});
var myBaseNameField=textEditboxes.add();
}

var myResult=myDialog.show({name:"ExportPages"});

if(myResult===true){
var myBaseName=myBaseNameField.editContents;
//Remove the dialog box from memory.
myDialog.destroy();

for(var counter=0;counter<myDocument.pages.length;counter++){
myPageName=myDocument.pages.item(counter).name;
app.pdfExportPreferences.pageRange=myPageName;

//The name of the exported files will be the base name + the page name + ".pdf".
//If the page name contains a colon ( as it will if the document contains sections),
//then remomve the colon.

var myRegExp=new RegExp(":","gi");
myPageName=myPageName.replace(myFegExp,"_");
myFilePath=myFolder + "/" + myBaseName + "_" + myPageName + ".pdf";
myFile=new File(myFilePath);
myDocument.exportFile(ExportFormat.pdfType,myFile,false);
}
}
else{
myDialog.destroy();
}
}

キーワード
スクリプティング

表示

902

翻訳

翻訳

レポート

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

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

コピー完了

卓馬栗33532265さん:

そのまま移植されたわけではなさそうですね。コードに間違いがあり、このままではバージョンに関係なくエラーになって動きません。

開発元から正しいスクリプトを再度ダウンロードなり何なりしていただくのが筋かと思います。

少なくとも、僕から見るとスクリプトに手を加えた跡が見受けられますので、元のスクリプトのライセンスがどうなっているかも気になります。

 

ここでコードの間違い部分を指摘させていただくことは可能ですが、念のため開発元から改めて取得し直し、問題なく動作するかどうかをお試しください。

もし卓馬栗33532265さんが手を加えていらっしゃるようでしたら注意が必要です。前述の通りスクリプトにもプログラムとしてライセンスが設定されているはずです。それをご確認の上改めてご相談ください。

 

Yusuke S.

投票

翻訳

翻訳

レポート

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

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

コピー完了

ライセンスはよくわかりませんけどAdobeの「Adobe InDesign CS4 Scripting Guide」に掲載されているようですね。

 

https://books.google.co.jp/books?id=zKjoLa-n66cC&lpg=PA43&ots=12GqnORxcd&dq=Display%20a%20%22choose%...

jdash2000_0-1593157257000.png

 

投票

翻訳

翻訳

レポート

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

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

コピー完了

それをご本人から聞きたかったのですが……^^;;

CS4に限らず、Adobeのスクリプティングガイド(最新がCS6)に掲載されているものと酷似しているのは認識していました。

https://www.adobe.com/content/dam/acom/en/devnet/indesign/sdk/cs6/scripting/InDesign_ScriptingGuide_...

非常に似たスクリプトがp.51に掲載されています。

 

ただし、タイポが多くこれを見ながら手打ちされた(いわゆる写経、書き写し)されたのではないかなと思った次第です。

しかし「公開されていた」とおっしゃっているので、どこかのウェブサイトで自分のスクリプトとして公開しているページがあるのか、それともそれは勘違いで公式ドキュメントから書き写したものだったのか、それを確かめたかったのでした。

 

また、小さいミスが多数見受けられるため、スクリプトに詳しい方ではないとも感じました。

ですので、公式ドキュメントから拝借する分にはまだしも、ウェブから安易にスクリプトを引用してしまっていないか心配だったのです。

スクリプトはマシンに悪意ある改変を加えることが可能ですから、中身をしっかり確認したり出処を明確にしておかないと危ないんだぞ、ということも言いたかったのでした。

あれーどこから引用した(コピペした・ダウンロードした)んだっけなーという状態だと、万が一スクリプトが原因で大きなトラブルになった際に自分が責任を負う羽目になりかねないので…。

Yusuke S.

投票

翻訳

翻訳

レポート

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

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

コピー完了

ちなみにこのスクリプティングガイドのライセンスは冒頭に書かれています。

 

If this guide is distributed with software that includes an end user agreement, this guide, as well as the software described in it, is furnished under license and may be used or copied only in accordance with the terms of such license. Except as ermitted by any such license, no part of this guide may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, recording, or otherwise, without the prior written permission of Adobe Systems Incorporated. Please note that the content in this guide is protected under copyright law even if it is not distributed with software that includes an end user license agreement.

 

以下Google翻訳

このガイドがエンドユーザー契約を含むソフトウェアと一緒に配布される場合、このガイドとそれに記載されているソフトウェアはライセンスに基づいて提供され、そのライセンスの条件に従ってのみ使用またはコピーできます。そのようなライセンスで許可されている場合を除き、アドビの事前の書面による許可なしに、このガイドのいかなる部分も、電子的、機械的、録音、またはその他の方法または方法を問わず、複製、検索システムに保存、または送信することはできません。組み込まれたシステム。このガイドのコンテンツは、エンドユーザーライセンス契約を含むソフトウェアと一緒に配布されていなくても、著作権法により保護されていることに注意してください。

Yusuke S.

投票

翻訳

翻訳

レポート

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

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

コピー完了

ご返信いただいた皆様
諸々ご教示頂きまして、ありがとうございます。
確かに引用元はご推察の通りです。

 

ライセンスの文言から考えると、この場に掲載してしまったのは問題がありそうです。

この質問自体を削除できれば良いのですが、どうもそういった方法が見当たりませんでした…

 

再度チュートリアルから学習し直す事にしましたので、本件はこれでクローズとさせて頂ければと思います。

 

ありがとうございました。

投票

翻訳

翻訳

レポート

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

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

コピー完了

最新

卓馬栗33532265さん:

ガイドから引用されたということでひと安心です。

それでしたら、先のリンク先がPDFになっていますので、ダウンロードしていただいてテキストに書き出したり該当部分をコピーしていただければ、目的のスクリプトは問題なく動作すると思います。

 

 

 

Yusuke S.

投票

翻訳

翻訳

レポート

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