• 締切済み

JavaScriptが分からなくて困っています…

私は学校でJSを使ってIllustratorを動かしてみようということでまず読み解くところから始まりました。 しかし、今回のこのコードを読み解くことが難しく教えてはいただけないでしょうか…。 今現在も解読をしているのですがどうしてもわかりません… PPTにまとめて説明発表しなくてはなりません。 記入例としては var saveFolderObj = Folder.selectDialog("PDFファイルを保存するフォルダを選択してください");// セレクトダイアログを表示してPDFファイルを保存するフォルダを選択する。 といったようにどういう動作の支持をしているのかを書かなければなりません。 お願いします助けてください… // タブ区切りテキストからデータを読み込み,テキストを入れ替えPDFファイルとして保存する (function(){ var TAB = String.fromCharCode(9);// タブコード var saveFolderObj = Folder.selectDialog("PDFファイルを保存するフォルダを選択してください"); if (!saveFolderObj) return;// キャンセルされたら処理しない var fileObj = File.openDialog("ひな形ファイルを選択してください","*", false); if (!fileObj) return;// キャンセルされたら処理しない var datafileObj = File.openDialog("タブ区切りテキストファイルを選択してください", "*", false); if (!datafileObj) return;// キャンセルされたら処理しない if (!datafileObj.open("r")){ alert("ファイルが開けません"); } var tag = datafileObj.readln().split(TAB); while(!datafileObj.eof){ app.open(fileObj); var txtObj = app.activeDocument.textFrames; var data = datafileObj.readln().split(TAB);// 一行=1人分のデータを読み込む for(var i=0; i<txtObj.length ;i++){// 全てのテキストフレームに対して処理 for(var j=0; j<tag.length; j++){// ##タグの数だけ繰り返す if (txtObj[i].contents == tag[j]){// 完全一致 txtObj[i].contents = data[j];// テキスト入れ替え } } } savePDF(saveFolderObj.fullName+"/"+data[0]+".pdf");// 名前で保存 app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);// 保存せず閉じる } })(); // PDFファイルとして保存 function savePDF(savefile){ savefile = new File(savefile); var opt = new PDFSaveOptions(); //PDFSaveOptionsを定義 var flatOpts = new PrintFlattenerOptions(); //flattenerOptionsを別指定 flatOpts.overprint = PDFOverprint.PRESERVEPDFOVERPRINT; //オーバープリント flatOpts.gradientResolution = 300.0; //グラデーション解像度 flatOpts.rasterizationResolution = 300.0; //ラスタライズ解像度 flatOpts.clipComplexRegions = true; //複雑な領域をクリップ flatOpts.convertTextToOutlines = true; //テキストをアウトラインに flatOpts.flatteningBalance = 100.0; //100でベクトル0でラスタ opt.compatibility = PDFCompatibility.ACROBAT8; //バージョン指定 opt.bleedLink = true; //ドキュメントの裁ち落とし opt.ColorProfileID = ColorProfile.INCLUDEALLPROFILE; //プロファイルの埋め込み activeDocument.saveAs(savefile, opt); //ファイルを保存 }

みんなの回答

回答No.1

質問の趣旨が、よくわかりませんね。 >をしているのかを書かなければなりません それはわかりましたが、コードが羅列してあり、コメントが記載されている。どこの、何が、わからないのでしょう。ちなみに、 compatibility と言うプロパティですが、その用途をリファレンスを見ましたでしょうか? それでサンプルとかみましたでしょうか? で、ネットで検索してサンプルとか見ましたでしょうか? それらをすれば、自然と全部読み解けるんですけどね。 http://search.yahoo.co.jp/search?b=1&n=10&ei=UTF-8&fr=ie8sc&p=%E3%82%A4%E3%83%A9%E3%82%B9%E3%83%88%E3%83%AC%E3%83%BC%E3%82%BF%E3%83%BC%E3%80%80compatibility%E3%80%80JavaScript

akayorikuro
質問者

補足

回答ありがとうございます。 検索も沢山しましたが調べ方がよくわからなかったので質問をさせていただきました。 どこが分からないのかといいますと、 13行目からなのですが var tag = datafileObj.reagln().split(TAB);((以下略 これらをすべての動作を細かく解説しなければなりません。 例)) var fileObj = File.openDialog("ひな形ファイルを選択してください","*",false); とあった場合 ダイアログが表示され「ひな形ファイルを選択してください」と表示が出る。 といったように1行ずつ解説をつけたいのですが13行目以降の解説の仕方が分からなくて困っています。 分かりにくくて申し訳ありません…

関連するQ&A

  • 通し番号を印刷するJavaScript

    こちらで、Illustrator10(MacOSX)で通し番号を印刷するスクリプトを教えていただいたのですが、0,1,2,3…と印刷されるのを001,002,003…というように印刷する事は可能でしょうか?数字の前にNo.を付けるとか?もし可能ならアドバイスお願いします。 現在の状態 epsOpt = new EPSSaveOptions(); epsOpt.compatibility = Compatibility.ILLUSTRATOR10; saveFile = new File("/temp.eps"); docObj = activeDocument; startNo =001;endNo = 300;step = 8;for (i=startNo; i<=endNo; i+=step) { for (j=0; j<step; j++) { docObj.layers["serial"+(j+1)].textArtItems[0].contents = i+j; } docObj.saveAs(saveFile, epsOpt); docObj.print(true); } saveFile.remove(); このようになっています。ちなみに私はド素人なのでよくわからずにコピペして使っています。

  • JavaScript、;がない?

    Google Apps Scriptでプログラムを書きました。 すると、「ステートメントの前に;がありまあせん。(行6、ファイル「コード」)」と表示されます。 プログラムは、以下のとおりで、6行目とは、「If」文のところです。 しかし、私には、そのようなエラーが出ている理由が分からないのですが、どなかたお教えください。 function myFunction() { var s = SpreadsheetApp.GetActiveSheet(); var l = s.getMaxRows(); for (var i = 1; i < l; i = i + 1) { for (var j = 2; j <= l; j = j + 1) { If (s.getRange(i, 1).getValue == s.getRange(j, 1).getValue && s.getRange(i, 2).getValue == s.getRange(j, 2).getValue) { s.getRange(j, 1: j, 2).setBackgroundColor('aqua'); } } } }

  • JavaScriptのエラー で困っています

    JavaScriptのエラー SyntaxError: missing ] after element list PDFをWEBで閲覧→ダウンロードしても閲覧不可 の設定をするために、 PDF上で下記のJavaScriptを書きこみました。 元ネタは http://kaathemachine.com/javascript/2010/02/19/pdf%E3%82%92%E4%BF%9... こちらからいただいて、 途中の手順までは終了したのですが、 下記JavaScriptをページのプロパティのアクションから入れようとすると、 SyntaxError: missing ] after element list のエラーが出て保存ができません。 var arr = ["Text1","Text2","Text3","Text4","Text5","Text6","Text7","Text8","Text9","Text10","Text11","Text12","Text13,"Text14","Text15","Text16","Text17","Text18","Text19","Text20","Text21","Text22","Text23","Text24","Text25","Text26","Text27"]; if(this.URL.indexOf("掲載したいPDFのURL")==0){ for(var i=0;i<arr.length;i++) { this.getField(arr[i]).hidden = true; } エラーとしてハイライトされるのは if(this.URL.indexOf("掲載したいPDFのURL")==0){ } else{ app.alert("保存しての閲覧は許可されていません。") } の部分です。 "掲載したいPDFのURL"の部分にはもちろん http://で始まり.pdfで終わるURLを入力しています。 JavaScriptは初心者で、 なぜこのようなエラーが出るのか、 どう対処すればいいのかが全く分かりません。 お分かりになる方いらしたら、ご教授ください。

  • 【WIN-AI-CS2】スクリプト:保存時の警告

    イラレCS2で、スクリプトを利用してAI(EPS)ファイルをJPEGに変換します。 イラレ上に展開しているファイルではなく、フォルダ内にあるファイルを展開してJPEGに保存するスクリプトを組みました。 基本の動作は問題なく行われるのですが、1点だけ問題があります。 それは、JPEGで保存する際に 「保存されるファイルの中にラテン文字以外の~」 というダイアログがファイルごとに出て、処理が中断するのです。 出来れば、スクリプトを走らせたら、あとは放置で全ファイルを変換してしまいたいのです。 なお、ファイル名に関しては、WEBに使うものではないので日本語も入っています。 (作業仕様上、回避することは出来ません) 最悪、英名に変換して処理後に日本名に戻すようなBATファイルでも組めばいいのかもしれませんが、効率化の意味がなくなります。 JPEG保存時に、上記のダイアログを出ないようにして、あるいは強制的に「OK」の処理を行って、スクリプトの作業をとめない方法はありますでしょうか? よろしくおねがいします。 環境:WindowsXP SP2/Adobe Illustrator CS2 スクリプト: openFolder = Folder.selectDialog("SelectFolder with AI&EPS"); saveFolder = Folder.selectDialog("SelectFolder to save JPEG"); //AI fileList in "openFolder" fileListAi = openFolder.getFiles("*.ai"); //EPS fileList in "openFolder" fileListEps = openFolder.getFiles("*.eps"); //JPEG Set savingOptions jpegOpt = new ExportOptionsJPEG(); jpegOpt.qualitySetting = 100; //Proccess START if (fileListAi.length != 0){ for (i=0; i<fileListAi.length; i++){ fileObj = new File(fileListAi[i].fsName); open(fileObj); tmpFile = (fileListAi[i].name).split(".ai")[0]; saveJPEGFile = new File(saveFolder + "/" + tmpFile + ".jpg"); activeDocument.exportFile(saveJPEGFile, ExportType.JPEG, jpegOpt); activeDocument.close(SaveOptions.DONOTSAVECHANGES); } } if (fileListEps.length != 0){ for (i=0; i<fileListEps.length; i++){ fileObj = new File(fileListEps[i].fsName); open(fileObj); tmpFile = (fileListEps[i].name).split(".ai")[0]; saveJPEGFile = new File(saveFolder + "/" + tmpFile + ".jpg"); activeDocument.exportFile(saveJPEGFile, ExportType.JPEG, jpegOpt); activeDocument.close(SaveOptions.DONOTSAVECHANGES); } }

  • IllustratorスクリプトでのEPS保存について

    IllustratorCS2で、EPS保存時にオーバープリント設定をすべて破棄したいのですが、 件数が多い為にスクリプトで実行しようと考えています。 そこでためしに以下のようなシンプルなスクリプトを組んでみたのですが オーバープリントが破棄されません。 var SaveOptions = new EPSSaveOptions; SaveOptions.overprint = PDFOverprint.DISCARDPDFOVERPRINT; var FileObj = new File(app.activeDocument.path + '/test.eps'); app.activeDocument.saveAs(FileObj, SaveOptions); スクリプトではなく、手作業で別名保存からオーバープリントを 破棄で保存すればちゃんと破棄されるのですが… Windows XPで開発しています。 ちなみにMacOSXのIllustratorCS3でも試してみましたが駄目でした。 何かほかに設定を行わなければいけないのでしょうか?

  • テキストサイズ拡大・縮小のJavascriptについて

    テキストサイズ拡大・縮小のJavascriptについて よろしくお願い致します。 下記のようなコードを使用して、サイト内のHTMLテキストを拡大・縮小させたいと思っています。 //*********************************** //テキストの拡大・縮小 //*********************************** var tgs = new Array( 'div','span' ); //Specify spectrum of different font sizes: var szs = new Array( '12px','14px' ); var startSz = 1; function ts( trgt,inc ) { if (!document.getElementById) return var d = document,cEl = null,sz = startSz,i,j,cTags; sz += inc; if ( sz < 0 ) sz = 0; if ( sz > 1 ) sz = 1; startSz = sz; if ( !( cEl = d.getElementById( trgt ) ) ) cEl = d.getElementsByTagName( trgt )[ 0 ]; cEl.style.fontSize = szs[ sz ]; for ( i = 0 ; i < tgs.length ; i++ ) { cTags = cEl.getElementsByTagName( tgs[ i ] ); for ( j = 0 ; j < cTags.length ; j++ ) cTags[ j ].style.fontSize = szs[ sz ]; } } この場合、「var tgs = new Array( 'div','span' );」で指定している、divとspanに含まれるテキストに対して拡大・縮小が適用されるのだと思いますが、特定のdiv要素(<div id="hogehoge">内のテキストなど)を拡大・縮小させないようにするには、どのようなコードを追加すればよいのでしょうか。 もしよろしければ、ご教授頂けると幸いです。 どうぞよろしくお願い致します。

  • photoshop 保存のjavaスクリプト

    photoshopのスクリプトで、下記のようなことができるでしょうか? Aというフォルダに1.jpg、2.jpgのふたつのjpgデータがあります。 これをphotoshopで開いて、Aフォルダ内にpsd形式で保存するというものです。 スクリプト後、Aフォルダの中に、1.jpg 2.jpg 1.psd 2.psd という 4つのデータが入ります。…というものです。 開いているjpgデータが4つあれば、4つ全てをpsdで保存したいです。 別のフォルダでなく、もとのデータが入っているフォルダに、 名前は、そのままの名前で(1.jpg→1.psd)保存したいです。 そのあと自動で閉じてくれたら最高です。 PSD形式で保存・・・や fileObj = new File("~/test.psd"); activeDocument.saveAs(fileObj, psdOpt, true, Extension.LOWERCASE); 全てのドキュメントを保存して閉じる・・・など while (documents.length > 0) { activeDocument.close(SaveOptions.SAVECHANGES); } 見てみましたが、うまく動かせません。 保存しますか、はい・いいえ、を毎回enterしないといけないのです。 どなたかご存知の方がいらっしゃいましたら、どうか教えてください。 もし、希望のスクリプトでなくても、その一部でも可能であれば 教えていただきたいです。 宜しくお願いいたします。

  • javascriptの九九の表の書き換えについて

    var a; for (a=1; a<10; a++) if (a<=1){ document.write("   "+a); }else{ document.write(" "+a);} document.write("<br>"); document.write("---------------------------------"); document.write("<br>"); var i, j; for (i=1; i<10; i++) { document.write(i+"|"+" "); for (j=1; j<10; j++) { var k = i*j; if ( k > 81 ) { break; } if (k>=10){ document.write(" "+k+" "); }else { document.write(" "+k);} } document.write("<br />"); } forを使った九九の表はできたのですが これをwhileを使ったコードに書き換えるにはどうしたらいいでしょうか?

  • Win版IllustratorCS3でJavascriptを使ってファイルを開くスクリプトを作成できずに困っています。

    Windows版IllustratorCS3でJavascriptを使ってファイルを開くスクリプトを作成しています。Web上で以下のようなソースを見つけたので参考にしていますが、ファイルを開くことができず困っています。 web上で以下のサイトを参考にして、IllustratorCS(Win)でJavascriptを使ってepsファイルを開くスクリプトを作成しています。 http://www.openspc2.org/book/IllustratorCS3/easy/file/001/index.htm... 以下のように作成しましたが、sample.jsという名前で保存して、Illustratorの「ファイル」-「スクリプト」から選択しても画面上にファイルが表示されません。どなたか原因をお分かりの方がいらっしゃいましたら教えていただけないでしょうか。 filename = "C:/tmp/test.eps"; fileObj = new File(filename); flag = fileObj.open("r"); if (flag == true) { alert("ファイルを開きました"); fileObj.close(); }else{ alert("ファイルが開けませんでした"); }

  • javascriptで困っています。教えてください

    canvasタグの画像の描画で困っています。 Imageオブジェクトを生成して、画像ファイルを先読みしておいて var aaa = new Image(); aaa.src = "img/item00.png"; var bbb = new Image(); bbb.src = "img/item01.png"; 配列に入れる var i = [aaa,bbb] 描画コンテキストの取得s取得して、画像を表示させる var canvas = document.getElementById('sample'); if (canvas.getContext) { var context = canvas.getContext('2d'); 座標(10, 10)(50, 50)の位置にイメージを表示 context.drawImage(aaa, 10, 10); context.drawImage(bbb, 50, 50); } としています。このあとクリックなどのきっかけで、画像の絵を入れ替えたいと思い、 var cha1 = i[0].src; var cha2 = i[1].src; i[0].src = cha2; i[1].src = cha1; もう一度描画させているのですが、うまくいきません。 cha1,cha2が取得できているかチェックすると、undifineとでます。 これでは、入れ替えることがでないのでしょうか? 入れ替えるとしたらどのような方法があるのでしょうか。 よろしくお願いします。

専門家に質問してみよう