• ベストアンサー

javaスクリプト 読み解けますか

下記、Adobeアクロバットにて 実行したく、ネットで探してきたのですが、実行すると最後の1文が出て、実行されませんでした。 何か間違ってるところありますでしょうか???やりたいことは、Adobeのpdf内の全てのページに、同じスタンプを押したい。。。 this.syncAnnotScan(); var annt = this.getAnnots(this.pageNum)[0]; var props = annt.getProps(); for(var i=0;i<this.numPages;i++){ props.page = i; if(i !=this.pageNum) this.addAnnot(props); } [Markup 2 bce44816-3c74-4e95-8bfd-c5d4ca46cc3c] 全然よくわかっていないものですが、何か教えていただけますと幸いです。 よろしくお願いいたします。

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

  • ベストアンサー
  • luka3
  • ベストアンサー率74% (330/442)
回答No.4

>2ページ目以降、スタンプが反転します 一口に反転と言っても、左右反転か上下反転か。 ただどちらにしても、解決できません。 自分の中では、選択したオブジェクトをそっくりそのままコピーするイメージなんですが、それがどうして崩れるのか。 反転に関わるプロパティがあるのか、少し調べようとしましたが、全然情報が見つかりません。 私の力不足ですみませんがお手上げです。 仕方が無いので、AIに聞いてみたら次のような回答でした。 var selectedAnnot = this.selectedAnnots[0]; var props = selectedAnnot.getProps(); var nCurrent = props.page; for (var i = 0; i < this.numPages; i++) { props.page = i; // 取得したアノテーションの向き情報を設定 props.rotation = selectedAnnot.rotation; props.isHorizontalFlip = selectedAnnot.isHorizontalFlip; if (i !== nCurrent) this.addAnnot(props); }

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • luka3
  • ベストアンサー率74% (330/442)
回答No.3

このスクリプトの問題の1つは、複製したいスタンプがそのページの1番目になっていないとならないこと。 それをふまえると、こちらのページの最後にあるスクリプトの方がいいかもしれません。 選択中のダイナミックスタンプを他ページにコピー、だそうです。 https://community.adobe.com/t5/acrobat-sdk-discussions/custom-dynamic-stamp-to-every-page-automatically/m-p/10894065 var props = this.selectedAnnots[0].getProps(); var nCurrent = props.page; for(var i=0;i<this.numPages;i++) { props.page = i; if(i!=nCurrent) this.addAnnot(props); }

123mi123
質問者

補足

var props = this.selectedAnnots[0].getProps(); var nCurrent = props.page; for(var i=0;i<this.numPages;i++) { props.page = i; if(i!=nCurrent) this.addAnnot(props); } 回答頂きありがとうございます! またお聞きしたいのですが、 2ページ目以降、スタンプが反転します😂 改善できますでしょうか??

全文を見る
すると、全ての回答が全文表示されます。
  • luka3
  • ベストアンサー率74% (330/442)
回答No.2

スクリプトの解説をご希望のようですので、わかる範囲で説明します。 (私はAcrobatでスクリプトを常用するプロではありません。回答・説明のために必要な情報を調べているに過ぎませんのでご容赦ください) this.syncAnnotScan(); 解説によると 注釈の同期化 だそうです var annt = this.getAnnots(this.pageNum)[0]; getAnnots 指定した条件の注釈を全て取得する this.pageNum 今開いているページ番号? 上と合わせて「このページの注釈全部」 [0] …の1番目(コンピュータでは効率化のためゼロから始めることがよくある) すなわち「このページにある最初の注釈を取得してannt変数に入れる」 var props = annt.getProps(); 取得した注釈のプロパティ情報をprops変数に入れる(コピーする?) for(var i=0;i<this.numPages;i++){ 簡単に言うと「このPDFのページ数だけループする」 変数iをカウンタとして使う props.page = i; ページ番号iに挿入するための準備? if(i !=this.pageNum) iが今開いているページじゃなかったら次の行を実行 this.addAnnot(props); propsのデータを使って注釈を追加する? いちおう確認ですが、スタンプは「注釈(コメント)」のスタンプですよね? あと「Markup」は何個追加したかの結果を表示したものと思われます。スクリプトの一部ではないようです。

123mi123
質問者

補足

Markup2 と出たので、どこかに追加されていたのでしょうか?2個? 総ページはもっとあったのですが🥺 スタンプは、Adobeacrobatproの、スタンプ機能から作ったスタンプです。デバック?はこのhttps://youtu.be/ZRmXJqkIqpw?si=ywXzpzo97ct3uZ9_ YouTubeの通りにして画面出しました!!コントロールエンター押す直前に、スタンプは押してます!! 訳して頂き、やはり合ってそう なのに!!なぜ動かなかったのでしょうー!!!涙涙涙

全文を見る
すると、全ての回答が全文表示されます。
  • luka3
  • ベストアンサー率74% (330/442)
回答No.1

前準備として、このページの手順のとおり、「後で削除.js」を作成し、Acrobat\Javascriptsのフォルダにコピーします。 https://qiita.com/yuyamaga/items/fee9313fac6d02a5d3de 私の場合、Acrobat再起動、PDFを開く、最小化・元に戻す でデバッガ画面が出ました。 デバッガ画面が出たら、「コンソール」の下のエリアに質問者さんのスクリプトを(this.syncAnnotScan(); から } まで)貼り付けて、貼り付けた分を範囲選択して、Ctrl+Enterを押したところ、(適当に押してみた)スタンプが他のすべてのページにコピーされました。 なお、「後で削除.js」をAcrobat\Javascriptsのフォルダにコピーする際、管理者権限が必要になります。 最後の [Markup ...] の行が何をするものかわかりませんが、この行を含めて実行しようとするとエラーで動きませんでした。

123mi123
質問者

補足

聞いてください!デバッカ(?)画面に貼り付けてコントロールエンターを押したのですが。。涙。 全部に押せたんですね!羨ましいです。このコードでなぜスタンプが選択できるんですかね? 補足、Adobeアクロバットプロの、Javaスクリプト選択したらデバッカ画面でましたそこで、コードを全選択し、コントロールとエンター押したら「」のエラーでました

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • pdfフッターにページ/総数、ファイル名の頭6桁

    タイトルのようにpdfにフッターをつけたく、調べて下記スクリプトを実行したらエラーが出ました!! 何か、おかしいところ、わかる方あればどうか教えてください よろしくお願いします var fileName = this.documentFileName; var fileNamePrefix = fileName.substr(0, 6); for (var i = 0; i < this.numPages; i++){ this.pageNum = i; var currentPage = this.pageNum + 1; var totalPages = this.numPages; var footerText = fileNamePrefix + " " + currentPage + "/" + totalPages; var cFontSize = 10; var cWidth = 450; var coords = [30, 40]; var alignment = "right"; this.addWatermarkFromText({ cText: footerText, nFontSize: cFontSize, aTextRect: coords, cFont: "Helvetica", nHorizAlign: alignment, nVertAlign: align_center }); } エラー内容↓ ReferenceError: align_center is not defined 11:Console:Exec undefined ★Windows10  AdobeAcrobat proにてjavascript実行

  • Adobeアクロバットプロスタンプ自動押し

    下記は、AIに考えてもらった、Adobeアクロバットプロで使用するjavascriptなんですが、実行されず、SyntaxError: missing ; before statement 5:Console:Exec undefinedと、エラーがでました。 どこが悪いか、誰かご教示いただけないでしょうか? やりたいことは、pdfの1枚目に指定のスタンプを押したい。スクリプトが成功したらアクションウィザードに登録し複数の、ファイルに一括処理を、したい。 Nkaitouと、いうのは、カスタムスタンプに登録した名前なのですが、登録名を入力というのも、間違っているのでしょうか??元はその部分は"Approved"; と いう文書でした。スタンプの名前を入れるところが間違ってるとか、ですか?? “”の中ではなく、"Approved";の後ろに入れるとか??  スタンプの名前なんかで反応するのでしょうか??無知ですみません var stampName = "Nkaitou"; var xPos = 100; // X座標 var yPos = 100; // Y座標 // 全てのページに対してスタンプを追加する for (var i = 0; i < this.numPages; i++) { if (i == 0) { // 1ページ目にのみスタンプを追加 this.addAnnot({ type: "Stamp", page: i, name: stampName, rect: [xPos, yPos, xPos + 150, yPos + 50] }); } } 使用は、Windows10 Adobeアクロバットプロです

  • Java script エラー

    以前、質問して教えていただいたJava scriptですが、 サーバにアップしたところ Java script エラー 「pages[i].style.display = 'none';」が発生しました。 Java scriptの知識が全くない素人で申し訳ないのですが、 エラーの原因を教えていただけますでしょうか? よろしくお願いいたします。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "​http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">​ <html xmlns="​http://www.w3.org/1999/xhtml"​ xml:lang="ja" lang="ja"> <head> <title>タブ切替のサンプル</title> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" /> <script type="text/javascript"> // <![CDATA[ var tab = { peek:0, init: function(start){ var tabs = this.setup.tabs; var pages = this.setup.pages; for(var i=0; i<pages.length; i++) { if(i !== 0) pages[i].style.display = 'none'; tabs[i].onclick = function(){ tab.showpage(this); return false; }; } this.peek = start; this.showpage(tabs[this.peek]); }, showpage: function(obj){ var tabs = this.setup.tabs; var pages = this.setup.pages; var num; for(num=0; num<tabs.length; num++) { if(tabs[num] === obj) { tab.peek = num; break; } } for(var i=0; i<pages.length; i++) { if(i == num) { pages[num].style.display = 'block'; tabs[num].className = 'present'; } else{ pages[i].style.display = 'none'; tabs[i].className = null; } } } } function initialize(){ tab.setup = { tabs: document.getElementById('tab').getElementsByTagName('li'), pages: [ document.getElementById('page1'), document.getElementById('page2'), document.getElementById('page3'), document.getElementById('page4'), document.getElementById('page5') ] } tab.init(0); } function proceed(num){ if(tab.peek + num < tab.setup.tabs.length && 0 <= tab.peek + num){ tab.showpage(tab.setup.tabs[tab.peek + num]); } } // ]]> </script>

  • アクロバットのスクリプトで連番の前に任意の数字

    アクロバットのスクリプトで連番の前に任意の数字を入れる方法 var re = /.*\/|\.pdf$/ig; var filename = this.path.replace(re,""); try { for (var i = 1; i < this.numPages; i++) this.extractPages ({ nStart: i, cPath: "/C/test/test/"+filename+"_" + i +".pdf" }); } catch (e) { console.println("Aborted: "+e) } 上記のスクリプトで 連番が1桁の場合は頭に00をつけて 連番が2桁の場合は頭に0をつけて 連番が3桁の場合は頭に何もつけないようにするには どう記述すればよろしいいでしょうか? test_001.pdf test_010.pdf test_100.pdf このような感じになればいいです。 おわかりになるかたいますか? 詳しく書いていただけたら幸いです。 よろしくお願いします。

  • Acrobat Java Scriptについて教えてください。

    お世話になります。 Acrobat JavaScriptの初心者ですが、以下の問題で困ってます。 使用環境:Acrobat 4.05で、PDFフォームにてテキスト型のフィールドA,B,Cを作成しております。やりたいことは、AとBにデータが入力されるとCにA+Bの文字列を代入したいです。 つまり、Aに”012”と入力され、Bに”034”と入力された時、Cには”012034”を入れたいのです。 そのためフィールドcの書式スクリプトに var a;・・・・・・・・・・・・・・(1) var b;・・・・・・・・・・・・・・(2) a = this.getField("A").value;・・・(3) b = this.getField("B").value;・・・(4) event.value = a+b;・・・・・・・・(5) の5行を記述していますが、どうも(3)、(4)行目の段階で"012"の"0", "034"の"0"が消えてしまいます。 Acrobat5.0だと”valueAsString”のようなプロパティが追加されているようですが、Acrobat4.05の環境ではどうすればテキストの前のゼロを保留できるのでしょうか? どなたが教えてください.

  • forの中にいれたcreateTextの使い方

    はじめまして、 内容をまとめて書いてあるテキストがあり、これを変数に入れて分割したものを画面に表示させたいのですが、表示するところがうまくいきません。 createTextの書き方がおかしいと思うのですがどこを書き換えればいいのかわかりません。 すいませんがどなたかお教え願えないでしょうか。 var text1=new LoadVars(); text1.load("test.txt") text1.onLoad=function(){   var test_array:Array=text1.split(",");   for(var i=0;i<test_array.length;i++){   this.createTextField("c"+[i],this.getNextHighestDepth(),50,20+i*20,200, 20); this.c[i].text =test_array[i]; } 多分thisのあたりがおかしいと思っているのですが、どう書けばいいのかわかっていません。 すいませんがどなたかお願いします。

  • PDFファイルにナンバリングしたい

    こんにちは。 数百ページで1ファイルのPDFファイルがあって、その画像の右上にナンバリングをしたくて、インターネットで見つけたコードを改良したのですが、私の打ちたいナンバリングになりません。 見つけたコードは以下のとおりです。 for (var i=0; i < numPages; i++){ removeField ('paging.'+i); var aRect = this.getPageBox('Crop', i); var dX = aRect[2] - aRect[0]; var numPos = [dX-150,1630, dX-10, 10]; var f = addField({ cName: 'paging.'+i, cFieldType: 'text', nPageNum: i, oCoords: numPos }); f.value = '00' + (i + 1); f.fillColor = color.transparent; f.readonly = true; f.strokeColor = color.transparent; f.alignment = 'right'; f.textFont = font.Helv; f.textSize = 11; }; 上記のコードですと 1 2 3 ・ ・ 99 100 となるのですが、私の打ちたい表記は 001 002 003 ・ ・ 099 100 ・ ・ なんです。 いろいろ試してみたのですが、素人なもので、うまく行きません。 どなたか、ご教授いただければ幸いです。 よろしくお願い申し上げます。

  • jQueryでリストを分割してページ送りを表示

    現在、以下の内容でリストを分割してページ送りで切り替えられる様にしています。 [jQuery] $(function() { var item = $('#list li').length; var i = 0; while (i < item){ var group = i * 10; var num = group + 10; for (var j = group; j < num; j++) { $('#list li').eq(j).addClass('num'+(i+1)); } i++; } /* Pagenation */ $('#list').after('<ul id="nav"></ul>') var lastrep = $('#list li:last').attr('class').replace(/no/i,''); var lists = ""; for (var i = 0; i < lastrep; i++) { lists += '<li class="page-count">'+( i+1 )+'</li>\n'; } $("nav").append(lists); /* First View */ $('#list li').hide(); $('#list .no1').show(); $('#nav li').eq(0).addClass('current'); /* Click */ $('#nav li').click(function () { var items = $(this).parent().children().index(this); var setitems = items +1; $('#list li').hide(); $('#list .no'+setitems).show(); $('#nav li').removeClass('current'); $(this).addClass('current'); }); }); [html] <ul id="nav"> <li class="page-count current">1</li> <li class="page-count">2</li> <li class="page-count">3</li> <li class="page-count">4</li> </ul> <ul id="list"> <li class="no1">item</li> <li class="no1">item</li> ... <li class="no4">item</li> </ul> このページネーションの部分を次の様にするにはどうしたら良いでしょうか…? [html] <ul id="nav"> <li class="page-count">Prev</li> <li class="page-count">Next</li> </ul> <div class="count"><span class="now">1</span>/<span class="total">4</span></div>

  • is not a functionというエラー

    jqueryのスクリプトを書いていたところ $(function () { var wrapper = $("#main"); var wrapperWidth; var blocks = []; NewBlocks(blocks, wrapper.children()); function NewBlocks(blocks, elements) { for (var i = 0; i < elements.length; i++) { var element = elements[i]; var block = new Block(element); blocks.push(block) } } function Block(element) { this.element = element; element.style.margin = "10px"; this.init(); } Block.prototype = { init: function () { this.width = this.element.offsetWidth; this.height = this.element.offsetHeight; } } }); 上記スクリプトを実行すると「this.init is not a function」というエラーが出てしまいます。 一体何をどう間違っているせいでエラーが出るのか、どうかご教授いただけますでしょうか。

  • Adobe reader5.0 アンインストールについて

    XP SP2使ってます。Adobe reader5.0 アンインストールしましたら以下がでました アンインストールが完了しましたがいくつかの項目が削除できません。 アプリケーションの関連する項目を個々に削除する必要があります ファイルは'C:\Program Files\Adobe\Acrobat 5.0\Reader\ActiveX\AcroIEHelper.ocx'を使用中です。 ファイルは'C:\Program Files\Adobe\Acrobat 5.0\Reader\ActiveX\AcroIEHelper.ocx'を使用中です。 'C:\Program Files\Adobe\Acrobat 5.0\Reader\ActiveX'フォルダを削除できません。 'C:\Program Files\Adobe\Acrobat 5.0\Reader'フォルダを削除できません。 'C:\Program Files\Common Files\Adobe'フォルダを削除できません。 'C:\Program Files\Adobe\Acrobat 5.0'フォルダを削除できません。 'C:\Program Files\Adobe'フォルダを削除できません。 使用中なんですがはじめに追加と削除実行した時は 使用中を検知した為終了させろとでました。 タスクマネージャーでみても動いてるプログラムはなかったのですが・・・再起動させたら削除できました。上のもの全て削除していいのでしょうか?(手動で) よろしくお願い致します

1passwordの使用法
このQ&Aのポイント
  • 1passwordの使い方が分からない方への解説
  • 1passwordを使う際に困っている方へのサポート
  • 1passwordのデスクトップアプリに関するお悩みについて
回答を見る