到目前为止,我实现了一个扩展,将InDesign文档导出为XML,除了超链接外,一切正常。
我可以通过 document.hyperlinkURLDestinations 获取所有超链接(HyperLinkURLDestination),但无法知道段落中的哪些文本链接到这些超链接。有什么想法吗?
答案 0 :(得分:0)
超链接基本上有两个属性,即源和目标。您的案例的目的地是在浏览器中打开的URL。但是,源实际上是InDesign文本对象。目标可以多次使用,但每个对象只能使用一次。所以我建议通过实际使用它的对象访问文本源,即超链接。
var main = function() {
var doc = app.properties.activeDocument,
hlks,hlk,
src,
txt;
if ( !doc) return;
hlks = doc.hyperlinks;
if ( !hlks.length ) return;
hlk = hlks[0];
src = hlk.source;
if ( !( src instanceof HyperlinkTextSource) ) return;
txt = src.sourceText;
app.select ( txt );
txt.parentTextFrames.length && zoomObject ( txt.parentTextFrames[0] );
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();