到目前为止,我实现了一个扩展来将InDesign文档导出到XML,除了超链接之外,一切都很正常。
我可以通过document.hyperlinkURLDestinations获得所有超链接(HyperLinkURLDestination),但是无法知道段落中的哪个文本被链接到这些超链接。有什么想法吗?
发布于 2016-06-20 12:45:33
超链接基本上有两个属性,一个源和一个目标。在您的情况下,目标是要在浏览器中打开的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();
https://stackoverflow.com/questions/37858639
复制相似问题