Skip to main content
Inspiring
July 13, 2023
解決済み

PDF内のノンブル P.00 に一括でハイパーリンクを施したい

  • July 13, 2023
  • 返信数 1.
  • 2176 ビュー

10ページほどあるカタログの索引ページがあります。

すべてのノンブルに(P.)がついています。

 

P.200 > https//~~~~~.100 

P.199 > https//~~~~~.199

P.198 > https//~~~~~.198

             ↓

P.10 > https//~~~~~.10

 

のようなリストを用意しています。

 

このPDFの(P.100 ~ P.10)に一括で上記リストに基づいて

ハイパーリンクを施したいです。

 

PDF上での作業ですが、元はインデザインで作成しており

インデザイン上でも可能であればご教示ください。

その場合、

https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12180403562

にある方法は、ノンブルのQ数、フォントの違いがあるため使えないのです。

 

よろしくお願いいたします。

このトピックへの返信は締め切られました。
解決に役立った回答 ajabon grinsmith

回答の準備が整ったらスレッド移動しますね。

Acrobat上で何か策をお持ちの方がいらっしゃるかもしれないのでギリギリで。


ということでAcrobatフォーラムからInDesignフォーラムにスレッドを移動しました。

 

かんたんにしかテストできていませんが、どうでしょう。

var findGrepPrefOrg = app.findGrepPreferences.properties; //検索設定・置換設定の元
app.findGrepPreferences.findWhat = "^P\.\\d+ > https?\\/{2}.+?\\.\\d+$";
var doc = app.activeDocument;
var myFind = doc.findGrep();
app.findGrepPreferences.properties = findGrepPrefOrg; //検索設定・置換設定モドス
if(myFind.length == 0){
   alert("なしでした");
   exit();
}

//元からあるハイパーリンクを全消し
doc.hyperlinkTextSources.everyItem().remove();
doc.hyperlinkURLDestinations.everyItem().remove();
doc.hyperlinks.everyItem().remove();

//ハイパーリンク作成
var txtSorce, url, dest, hypl, count = 0;
for(var i = 0; i < myFind.length; i++){
    txtSorce = doc.hyperlinkTextSources.add(myFind[i]);
    url = myFind[i].contents.replace(/^.+(?=http)/, ""); //URL
    dest = doc.hyperlinkURLDestinations.add(url);
    hypl = doc.hyperlinks.add(txtSorce, dest);
    count++;
    }
alert(myFind.length + "こ見つかり " + count + "こ処理しました");

 

返信数 1

ajabon grinsmith
Community Expert
Community Expert
July 13, 2023

どちらでもよければInDesignのほうが正規表現検索置換が使えるため断然有利かと思います。

それでよければスレッド移動(こちらで処理します)の上、お相手いたします。

Acrobatのスクリプトで解決できる方が現れる可能性もありますが…

Inspiring
July 13, 2023

ajabon grinsmith様

よろしくお願いいたします。

Inspiring
July 13, 2023

Indesignとなるなら、

こちらの環境が必要ですね。

MacOS 10.14.6 モハベ

Indesign 2020

です。よろしくお願いいたします。