首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取Adobe InDesign HyperLinkURLDestination链接文本

如何获取Adobe InDesign HyperLinkURLDestination链接文本
EN

Stack Overflow用户
提问于 2016-06-16 12:02:47
回答 1查看 228关注 0票数 0

到目前为止,我实现了一个扩展来将InDesign文档导出到XML,除了超链接之外,一切都很正常。

我可以通过document.hyperlinkURLDestinations获得所有超链接(HyperLinkURLDestination),但是无法知道段落中的哪个文本被链接到这些超链接。有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2016-06-20 12:45:33

超链接基本上有两个属性,一个源和一个目标。在您的情况下,目标是要在浏览器中打开的url。然而,源实际上是一个InDesign文本对象。可以多次使用目的地,但每个对象只能使用一次源。因此,我建议通过实际使用它的对象访问文本源,即超链接。

代码语言:javascript
复制
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();

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37858639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档