通し番号を印刷するJavaScript

このQ&Aのポイント
  • Illustrator10(MacOSX)で通し番号を印刷するスクリプトを教えていただきたい。
  • 現在のスクリプトでは0,1,2,3…と印刷されてしまうが、001,002,003…というように印刷したい。
  • ド素人なのでコピペして使っているが、改善方法を教えてほしい。
回答を見る
  • ベストアンサー

通し番号を印刷する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(); このようになっています。ちなみに私はド素人なのでよくわからずにコピペして使っています。

  • casin
  • お礼率88% (379/429)

質問者が選んだベストアンサー

  • ベストアンサー
  • gimmick
  • ベストアンサー率49% (134/270)
回答No.1

真ん中の「= i+j;」を 「= (i+j+1000).toString().substring(1);」 に変えるとどうでしょうか?

casin
質問者

お礼

お返事遅れましてすいません。アドバイスいただいた通りやってみましたら出来ました。とても勉強になりました。ありがとうございました。

関連するQ&A

  • 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); //ファイルを保存 }

  • javascriptタグを外部にしたい

    <script type="text/javascript"> <!-- function MM_swapImgRestore() { //v3.0 var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc; } function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} } function MM_findObj(n, d) { //v4.01 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); if(!x && d.getElementById) x=d.getElementById(n); return x; } function MM_swapImage() { //v3.0 var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3) if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];} } //--> </script> DWでデフォルトでロールオーバーイメージを使ってスクリプトが出ています。SEO的にこれを外部に移したいのですが、どうやればいいのでしょうか?CSSと同じ記述でいいのでしょうか・・・ SEO的にはスクリプト自体使わないほうがいいのはわかっています

  • JavaScriptでループできない

    let target = document.getElementById('create_new_user'); let name = document.getElementById('i_new_uname'); let pass = document.getElementById('i_new_passwd'); let pass2 = document.getElementById('i_new_passwd2'); let sakusei = document.getElementById('b_create_user'); let a = new Event('mousedown'); let e = new Event('mouseup'); for (let step = 0; step < 10; step++) { target.dispatchEvent(a); target.dispatchEvent(e); name.value = 'らき⭐︎すた' + Math.random(); pass.value = 'bbbb2' pass2.value = 'bbbb2' sakusei.dispatchEvent(a); sakusei.dispatchEvent(e); } これでループしても一回しか繰り返えされません。なぜでしょうか? ちなみにforの処理の中に他の処理も混ぜたら他の処理はちゃんと動きました。 なぜこれだけ一回しかできないのでしょうか?

  • JavaScriptについての質問です。

    ガウスの消去法による解の求め方をプログラムしたいのですが、上手くいかなかったので質問しました。以下のプログラムから実行はできるのですが、解が求められていませんでした。 どこを変えればきちんとできるのでしょうか、回答お願いします。 var A=[[1,-1,1],[1,2,0],[2,0,3]],b=[5,1,9]; WScript.Echo("ガウスの消去法の解:\n"+Gauss(A,b)); function Gauss(A,b) { var s,x=new Array(A.length),M=new Array(A.length); for(var i=k+1;i<A.length-1;k++) { for(var i=k+1;i<A.length;i++) { M[i]=new Array(A.length); M[i][k]=(A[i][k])/(A[k][k]); for(var j=k+1;j<A.length ;j++) A[i][j]=A[i][j]-(M[i][k]*A[k][j]); b[i]=b[i]-(M[i][k]*b[k]); } } for(var i=A.lengh-1;i>=0;i--) { s=0; for(var k=i+1;k<A.length;k++) s+=A[i][k]*x[k]; x[i]=(1/A[i][i])*(b[i]-s); } return x; }

  • カーソルからの泡操作

    カーソルから上に向けて泡を出すプログラムがあります. これを,上にではなく,ブラウザ上のある特定箇所に 泡を向かわせるには,以下のプログラムをどのように変更したらよいでしょうか? 教えていただけると,とても助かります. <SCRIPT language="JavaScript"> <!--// Image0=new Image(); Image0.src="awa.gif"; Amount=20; Ymouse=-50; Xmouse=-50; Ypos=new Array(); Xpos=new Array(); Speed=new Array(); rate=new Array(); grow=new Array(); Step=new Array(); Cstep=new Array(); nsSize=new Array(); ns=(document.layers)?1:0; WinHeight=(document.layers)?window.innerHeight:window.document.body.clientHeight; (document.layers)?window.captureEvents(Event.MOUSEMOVE):0; function Mouse(evnt){ Ymouse=(document.layers)?evnt.pageY-20:event.y-20; Xmouse=(document.layers)?evnt.pageX:event.x; } (document.layers)?window.onMouseMove=Mouse:document.onmousemove=Mouse; for (i=0; i < Amount; i++){ Ypos[i]=Math.random()*WinHeight-Ymouse; Xpos[i]=Xmouse; Speed[i]=Math.random()*10+1; Cstep[i]=0; Step[i]=Math.random()*0.1+0.05; grow[i]=4; nsSize[i]=Math.random()*15+5; rate[i]=Math.random()*0.5+0.1; } if (ns){ for (i = 0; i < Amount; i++){ document.write("<LAYER NAME='sn"+i+"' LEFT=0 TOP=0><img src="+Image0.src+" name='N' width="+nsSize[i]+" height="+nsSize[i]+"></LAYER>"); } } else{ document.write('<div style="position:absolute;top:0px;left:0px"><div style="position:relative">'); for (i = 0; i < Amount; i++){ document.write('<img id="si" src="'+Image0.src+'" style="position:absolute;top:0px;left:0px;filter:alpha(opacity=90)">'); } document.write('</div></div>'); } function MouseBubbles(){ var hscrll=(document.layers)?window.pageYOffset:document.body.scrollTop; var wscrll=(document.layers)?window.pageXOffset:document.body.scrollLeft; for (i=0; i < Amount; i++){ sy = Speed[i]*Math.sin(270*Math.PI/180); sx = Speed[i]*Math.cos(Cstep[i]*5); Ypos[i]+=sy; Xpos[i]+=sx; if (Ypos[i] < -40){ Ypos[i]=Ymouse; Xpos[i]=Xmouse; Speed[i]= 6+Math.random()*3; grow[i]=4; nsSize[i]=Math.random()*15+5; } if (ns){ document.layers['sn'+i].left=Xpos[i]+wscrll; document.layers['sn'+i].top=Ypos[i]+hscrll; } else{ si[i].style.pixelLeft=Xpos[i]+wscrll; si[i].style.pixelTop=Ypos[i]+hscrll; si[i].style.width=grow[i]; si[i].style.height=grow[i]; } grow[i]+=rate[i]; Cstep[i]+=Step[i]; if (grow[i] > 24) grow[i]=25; } setTimeout('MouseBubbles()',10); } MouseBubbles(); //--> </script> [参考] http://hp.ms-factory.biz/javak_bubbles2.htm

  • 2つのjavascriptの命令を1ページでやるには。

    Javascriptの超初心者です。 現在サイトを作っておりまして、 あるページに2つのjavascriptの命令を書き込みたいのですが。。。 1つはjavascriptによるプルダウンメニューをグローバルメニューの中に使用しています。 そしてもう1つはそのページ内にスワッピングで小さいサムネイル画像をクリックすると、大きな写真が切り替わるという仕掛けをjavascriptを使用して(dreamweaverの生成したものですが^^;)作ったのですが、 単体ではもちろん動作するのですが、2つ同時に自分なりにまとめてみてもどうにも動作しません。。2つを一緒にまとめるにはどのようなソースを書けばよいのでしょうか? どなたかご教授頂けませんでしょうか?宜しくお願い致します。 以下ソースです。 ●プルダウン用 (外部の長いjavascriptを読み込んでます) <link href="css/import.css" rel="stylesheet" type="text/css" media="all" /> <script src="js/SpryMenuBar.js" type="text/javascript"></script> <script type="text/javascript"><!-- window.onload = function(){ new Spry.Widget.MenuBar("MenuBar1"); } // --></script> ●スワッピング画像用 (直接書き込んでいます) <link href="css/import.css" rel="stylesheet" type="text/css" media="all" /> <script type="text/JavaScript"> <!-- function MM_swapImgRestore() { //v3.0 var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc; } function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} } function MM_findObj(n, d) { //v4.01 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); if(!x && d.getElementById) x=d.getElementById(n); return x; } function MM_swapImage() { //v3.0 var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3) if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];} } //--> </script> 以上の2つはどのようにまとめたら両方動作するのでしょうか?

  • Photoshop のスクリプト

    http://questionbox.jp.msn.com/qa4996423.html こちらの質問を参考に、全レイヤーとレイヤーセットを表示する スクリプトを作成してみました。私はCSを使っています。 docObj = activeDocument; for (i=0; i<docObj.layers.length; i++) {  docObj.layers[i].visible = true; } for (i=0; i<docObj.layerSets.length; i++) {  docObj.layerSets[i].visible = true; } このスクリプトはちゃんと動くのですが 表示されるのは「レイヤー」と「レイヤーセット」のみで、 「レイヤーセットの中のレイヤー」は対象ではないらしく、表示されないものがあります。 どうにかレイヤーセット内のレイヤーも全て表示するように出来ないでしょうか? わかりにくい質問になりまして、申し訳ございません。 どなたかお知恵を貸していただけないでしょうか。 よろしくお願いいたします。

  • javascriptを勉強しているのですが。

    毎日こつこつと参考書を見ながらjavascriptを勉強しています。サイトのソースを見て勉強する方法を最近しているのですが、壁に当たってしまったようなので質問させていただきました。 function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} } 質問1:上記のようなスクリプトを見かけたのですが、最初のif文には{}があるのですが、if(!d.MM_p) d.MM_p=new Array();と for(i=0;i<a.length; i++)の部分では{}が見あたらないのですがなぜでしょうか。 if文をしよう使用する場合には{}を使うと参考書に書いてありましたが、これには記述されていないのですが、普通に使用できているようなのですがなぜでしょうか。 質問2://v3.0とは何かのバージョンを示しているのでしょうか。 初歩的な質問で申し訳ありませんが、1つでもいいのでどなたかアドバイスをお願いします。

  • JavaScriptの記述が長い

    ホームページビルダー11でJavaScriptものの記述がとても長くなっています。HPBが、ホームページビルダーの略だとは思われますが、 この中で削除しても影響のない記述はありますでしょうか? 多少でもサイトの読み込み速度を早くしたいと考えています。 宜しくお願いいたします。 /////////////////////////////////////////////////////////// <SCRIPT language="JavaScript"> <!--HPB_SCRIPT_ROV_50 function HpbImgPreload() { var appVer=parseInt(navigator.appVersion); var isNC=false,isN6=false,isIE=false; if (document.all && appVer >= 4) isIE=true; else if (document.getElementById && appVer > 4) isN6=true; else if (document.layers && appVer >= 4) isNC=true; if (isNC||isN6||isIE) { if (document.images) { var imgName = HpbImgPreload.arguments[0]; var cnt; swImg[imgName] = new Array; for (cnt = 1; cnt < HpbImgPreload.arguments.length; cnt++) { swImg[imgName][HpbImgPreload.arguments[cnt]] = new Image(); swImg[imgName][HpbImgPreload.arguments[cnt]].src = HpbImgPreload.arguments[cnt]; } } } } function HpbImgFind(doc, imgName) { for (var i=0; i < doc.layers.length; i++) { var img = doc.layers[i].document.images[imgName]; if (!img) img = HpbImgFind(doc.layers[i], imgName); if (img) return img; } return null; } function HpbImgSwap(imgName, imgSrc) { var appVer=parseInt(navigator.appVersion); var isNC=false,isN6=false,isIE=false; if (document.all && appVer >= 4) isIE=true; else if (document.getElementById && appVer > 4) isN6=true; else if (document.layers && appVer >= 4) isNC=true; if (isNC||isN6||isIE) { if (document.images) { var img = document.images[imgName]; if (!img) img = HpbImgFind(document, imgName); if (img) img.src = imgSrc; } } } var swImg; swImg=new Array; ここにはロールオーバー類記載 HpbImgPreload('_HPB_ROLLOVER2', 'banner/618-115.jpg', 'banner/618-115.jpg'); //--> </SCRIPT>

  • Excel差し込み印刷について

    Excel2010使用。 データ一覧から別シートにあるフォームに 差し込み印刷をしたいのですが、 サイトを調べたところ、imogasiさんの imogasi方式という方法にたどり着きました。 下記がすごく参考になるのですが、 http://okwave.jp/qa/q667710.html この中のimogasiさんの回答にある 関数とVBAの組み合わせで差し込む方法を 応用したいと考えています。 作成したいのは、 A4サイズの中に、4つの同じフォームが あって、そこにデータ一覧から順番に 印刷をしたいのですが、 1ページに4件分を印刷する方法が よくわかりません。 VBA初心者の自分なりに考えてみたのが 下記のコードになりますが、 やはり違うようで、 「nextで指定された変数が不正です」とでました。 今ひとつfor~nextが理解できていない私に どなたご教授いただけないでしょうか? Sub test01() Worksheets("sheet1").Activate For i1 = 2 To 30 Step 4 '300 For i2 = 3 To 30 Step 4 '300 For i3 = 4 To 30 Step 4 '300 For i4 = 5 To 30 Step 4 '300 Cells(1, "F") = i1 Cells(1, "H") = i2 Cells(8, "F") = i3 Cells(8, "H") = i4 Range("a1:H12").PrintOut Next i1 Next i2 Next i3 Next i4 End Sub ※実際のデータは、多くのデータ量になるので サンプルで試している段階です。

専門家に質問してみよう