Skip to main content
Inspiring
July 13, 2023
Answered

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

  • July 13, 2023
  • 1 reply
  • 2169 views

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数、フォントの違いがあるため使えないのです。

 

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

This topic has been closed for replies.
Correct answer 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 reply

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

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