使用Adobe Text Engine进行Illustrator插件开发
小标 2018-04-25 来源 : 阅读 173 评论 0

摘要:使用Adobe Text Engine进行Illustrator插件开发,是很重要的一部分,本文通过具体的解释说明,让我们从中学到如何进行Illustrator插件开发,让我们在今后学习和使用的时候能够更加熟练的运用它们,从而便于更好的操作。

使用Adobe Text Engine进行Illustrator插件开发

 

使用Adobe Text Engine进行Illustrator插件开发,是很重要的一部分,本文通过具体的解释说明,让我们从中学到如何进行Illustrator插件开发,让我们在今后学习和使用的时候能够更加熟练的运用它们,从而便于更好的操作。

Adobe text engine提供了Illustrator中强大的文本支持,主要的特点有:

1.      unicode

2.      OpenType

3.      先进的排版技术,如字距、边缘对齐、自动的字形替换、字形比例。

4.      文本和段落样式

5.      亚洲文字

下面就是一些使用ATE的方法。

创建point text:

[cpp] view plain copy
1. ASErr SnpText::CreatePointText()  
2. {  
3.     ASErr result = kNoErr;  
4.     try {  
5.         // Get the group art that contains all the art in the current layer.  
6.         AIArtHandle artGroup = NULL;  
7.         result = sAIArt->GetFirstArtOfLayer(NULL, &artGroup);  
8.         aisdk::check_ai_error(result);  
9.   
10.   
11.         // Add the new point text item to the layer. 添加point text  
12.         AITextOrientation orient = kHorizontalTextOrientation;  
13.         AIRealPoint anchor = {10,10};  
14.         AIArtHandle textFrame = NULL;  
15.         result = sAITextFrame->NewPointText(kPlaceAboveAll, artGroup, orient, anchor, &textFrame);  
16.         aisdk::check_ai_error(result);  
17.   
18.   
19.         // Set the contents of the text range. 改变内容  
20.         TextRangeRef range = NULL;  
21.         result = sAITextFrame->GetATETextRange(textFrame, &range);  
22.         aisdk::check_ai_error(result);  
23.         ITextRange crange(range);  
24.         crange.InsertAfter("New point text item");  
25.     }  
26.     catch (ai::Error& ex) {  
27.         result = ex;  
28.     }  
29.     catch (ATE::Exception& ex) {  
30.         result = ex.error;  
31.     }  
32.     return result;  
33. }

 使用Adobe Text Engine进行Illustrator插件开发

 

创建In path text:

[cpp] view plain copy
1. ASErr SnpText::CreateInPathText()  
2. {  
3.     ASErr result = kNoErr;  
4.     try {  
5.         // Get the group art that contains all the art in the current layer. 获取组art  
6.         AIArtHandle artGroup = NULL;  
7.         result = sAIArt->GetFirstArtOfLayer(NULL, &artGroup);  
8.         aisdk::check_ai_error(result);  
9.   
10.         // Add the new in path text item to the layer.  
11.         AIArtHandle textFrame;  
12.         sAIArt->GetArtFirstChild(artGroup, &textFrame); // 我先创建了一个矩形矿,这里是获取这个矩形框  
13.         aisdk::check_ai_error(result);  
14.         AITextOrientation orient = kHorizontalTextOrientation;  
15.         result = sAITextFrame->NewInPathText(kPlaceAboveAll, artGroup, orient, textFrame, NULL, false, &textFrame);  
16.         aisdk::check_ai_error(result);  
17.   
18.         // Set the contents of the text range. 改变内容  
19.         TextRangeRef range = NULL;  
20.         result = sAITextFrame->GetATETextRange(textFrame, &range);  
21.         aisdk::check_ai_error(result);  
22.         ITextRange iTextRange(range);  
23.         iTextRange.InsertAfter("New in path text item");  
24.     }  
25.     catch (ai::Error& ex) {  
26.         result = ex;  
27.     }  
28.     catch (ATE::Exception& ex) {  
29.         result = ex.error;  
30.     }  
31.     return result;  
32. }

 使用Adobe Text Engine进行Illustrator插件开发

 

创建on path text:

[cpp] view plain copy
1. ASErr SnpText::CreateOnPathText()  
2. {  
3.     ASErr result = kNoErr;  
4.     try {  
5.         // Get the group art that contains all the art in the current layer.  
6.         AIArtHandle artGroup = NULL;  
7.         result = sAIArt->GetFirstArtOfLayer(NULL, &artGroup);  
8.         aisdk::check_ai_error(result);  
9.   
10.         // Add the new on path text item to the layer.  
11.         AITextOrientation orient = kHorizontalTextOrientation;  
12.         AIArtHandle<span style="white-space:pre;">  </span>textPath;  
13. <span style="white-space:pre;">     </span>sAIArt->GetArtFirstChild(artGroup, &textPath); // 先创建了一个圆弧,这里是获取这个圆弧  
14.         aisdk::check_ai_error(result);  
15.         result = sAITextFrame->NewOnPathText(kPlaceAboveAll, artGroup, orient, textPath, 0, 0, NULL, false, &textPath);  
16.         aisdk::check_ai_error(result);  
17.   
18.         // Set the contents of the text range.  
19.         TextRangeRef range = NULL;  
20.         result = sAITextFrame->GetATETextRange(textPath, &range);  
21.         aisdk::check_ai_error(result);  
22.         ITextRange iTextRange(range);  
23.         iTextRange.InsertAfter("New on path text item");  
24.     }  
25.     catch (ai::Error& ex) {  
26.         result = ex;  
27.     }  
28.     catch (ATE::Exception& ex) {  
29.         result = ex.error;  
30.     }  
31.     return result;  
32. }

 使用Adobe Text Engine进行Illustrator插件开发

 

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注常用软件Illustrator频道!


本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论
X
免费获取海同IT培训资料
验证码手机号,获得海同独家IT培训资料
获取验证码
提交

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号