2016-06-16 23 views
0

これまでは、InDesignドキュメントをXMLにエクスポートする拡張機能を実装していましたが、ハイパーリンクを除いてすべて正常に動作します。Adob​​e InDesign HyperLinkURLDestinationリンクテキストの取得方法

document.hyperlinkURLDestinationsですべてのハイパーリンク(HyperLinkURLDestination)を取得できますが、これらのハイパーリンクにリンクされている段落のテキストを知る方法はありません。何か案が?

答えて

0

ハイパーリンクには、基本的に、送信元と送信先の2つのプロパティがあります。あなたの場合の目的地は、ブラウザで開かれるURLです。ただし、ソースは実際にはInDesign Text Objectです。送り先は数回使用できますが、オブジェクトごとに1回だけ送信されます。ですから、実際にそれを使っているオブジェクト、すなわちハイパーリンクによってテキストソースにアクセスすることをお勧めします。

var main = function() { 
 
\t var doc = app.properties.activeDocument, 
 
\t hlks,hlk, 
 
\t src, 
 
\t txt; 
 
\t 
 
\t if (!doc) return; 
 
\t 
 
\t hlks = doc.hyperlinks; 
 
\t 
 
\t 
 
\t if (!hlks.length) return; 
 
\t 
 
\t hlk = hlks[0]; 
 
\t src = hlk.source; 
 
\t 
 
\t if (!(src instanceof HyperlinkTextSource)) return; 
 
\t txt = src.sourceText; 
 
\t app.select (txt); 
 
\t 
 
\t txt.parentTextFrames.length && zoomObject (txt.parentTextFrames[0]); 
 
\t 
 
\t alert("here you are…"); 
 
} 
 

 

 
function zoomObject(theObj) { 
 
try { 
 
    var objBounds = theObj.geometricBounds; 
 
} catch (e) { 
 
    throw "Object doesn't have bounds." 
 
} 
 
var ObjHeight = objBounds[2] - objBounds[0]; 
 
var ObjWidth = objBounds[3] - objBounds[1]; 
 
var myWindow = app.activeWindow; 
 
var pageBounds = myWindow.activePage.bounds; 
 
var PgeHeight = pageBounds[2] - pageBounds[0]; 
 
var PgeWidth = pageBounds[3] - pageBounds[1]; 
 
var hRatio = PgeHeight/ObjHeight; 
 
var wRatio = PgeWidth/ObjWidth; 
 
var zoomRatio = Math.min(hRatio, wRatio); 
 
myWindow.zoom(ZoomOptions.fitPage); 
 
myWindow.zoomPercentage = myWindow.zoomPercentage * zoomRatio; 
 
} 
 

 
main();

+0

おかげでプロ、これは私のために動作します – Leo

関連する問題