Html InDesign脚本更改textframe中的子字符串样式
我想构建一个InDesign脚本,当您导入html标记(如粗体和斜体)时,这些单词将转换为粗体或斜体 e、 gHtml InDesign脚本更改textframe中的子字符串样式,html,css,adobe-indesign,extendscript,Html,Css,Adobe Indesign,Extendscript,我想构建一个InDesign脚本,当您导入html标记(如粗体和斜体)时,这些单词将转换为粗体或斜体 e、 g 我真的喜欢步行到公园吃冰淇淋是: 我真的很喜欢去公园散步和吃冰淇淋 然而,在我的文本框中,我只能得到一整段来选择一种风格,而不是单个单词或短语 在下面的示例中,我希望对第二个短语变量应用粗体样式(我没有问题去掉标记等-只是想知道如何仅对第二个短语应用样式) with (myElement) { // Apply basic text style applyParagr
我真的喜欢步行到公园吃冰淇淋
是:
我真的很喜欢去公园散步和吃冰淇淋
然而,在我的文本框中,我只能得到一整段来选择一种风格,而不是单个单词或短语
在下面的示例中,我希望对第二个短语变量应用粗体样式(我没有问题去掉标记等-只是想知道如何仅对第二个短语应用样式)
with (myElement) {
// Apply basic text style
applyParagraphStyle(myDoc.paragraphStyles.item("DefaultText"));
var firstPhrase = "I really like";
var secondPhrase = " walking to the park";
var thirdPhrase = " and eating icecream";
contents = firstLine + secondLine + thirdPhrase;
}
类似下面的代码应该可以做到这一点。
insertionPoint
就像InDesign中的光标一样。如果您一直抓住最后一个insertionPoint
,您可以在添加文本时更改它的样式
var doc = app.documents.add();
var frame = doc.pages[0].textFrames.add({
geometricBounds: [6, 6, 40, 40]
});
var bold = doc.characterStyles.add({ name: "Bold", fontStyle: "Bold" });
var none = doc.characterStyles.itemByName("[None]");
frame.insertionPoints.lastItem().applyCharacterStyle(none);
frame.insertionPoints.lastItem().contents = "I really like";
frame.insertionPoints.lastItem().applyCharacterStyle(bold);
frame.insertionPoints.lastItem().contents = " walking to the park";
frame.insertionPoints.lastItem().applyCharacterStyle(none);
frame.insertionPoints.lastItem().contents = " and eating icecream";
类似下面的代码应该可以做到这一点。
insertionPoint
就像InDesign中的光标一样。如果您一直抓住最后一个insertionPoint
,您可以在添加文本时更改它的样式
var doc = app.documents.add();
var frame = doc.pages[0].textFrames.add({
geometricBounds: [6, 6, 40, 40]
});
var bold = doc.characterStyles.add({ name: "Bold", fontStyle: "Bold" });
var none = doc.characterStyles.itemByName("[None]");
frame.insertionPoints.lastItem().applyCharacterStyle(none);
frame.insertionPoints.lastItem().contents = "I really like";
frame.insertionPoints.lastItem().applyCharacterStyle(bold);
frame.insertionPoints.lastItem().contents = " walking to the park";
frame.insertionPoints.lastItem().applyCharacterStyle(none);
frame.insertionPoints.lastItem().contents = " and eating icecream";
类似下面的代码应该可以做到这一点。
insertionPoint
就像InDesign中的光标一样。如果您一直抓住最后一个insertionPoint
,您可以在添加文本时更改它的样式
var doc = app.documents.add();
var frame = doc.pages[0].textFrames.add({
geometricBounds: [6, 6, 40, 40]
});
var bold = doc.characterStyles.add({ name: "Bold", fontStyle: "Bold" });
var none = doc.characterStyles.itemByName("[None]");
frame.insertionPoints.lastItem().applyCharacterStyle(none);
frame.insertionPoints.lastItem().contents = "I really like";
frame.insertionPoints.lastItem().applyCharacterStyle(bold);
frame.insertionPoints.lastItem().contents = " walking to the park";
frame.insertionPoints.lastItem().applyCharacterStyle(none);
frame.insertionPoints.lastItem().contents = " and eating icecream";
类似下面的代码应该可以做到这一点。
insertionPoint
就像InDesign中的光标一样。如果您一直抓住最后一个insertionPoint
,您可以在添加文本时更改它的样式
var doc = app.documents.add();
var frame = doc.pages[0].textFrames.add({
geometricBounds: [6, 6, 40, 40]
});
var bold = doc.characterStyles.add({ name: "Bold", fontStyle: "Bold" });
var none = doc.characterStyles.itemByName("[None]");
frame.insertionPoints.lastItem().applyCharacterStyle(none);
frame.insertionPoints.lastItem().contents = "I really like";
frame.insertionPoints.lastItem().applyCharacterStyle(bold);
frame.insertionPoints.lastItem().contents = " walking to the park";
frame.insertionPoints.lastItem().applyCharacterStyle(none);
frame.insertionPoints.lastItem().contents = " and eating icecream";
下面是对Josh解决方案的一个简单介绍——插入点是一个不错的选择。如果您需要操作、镜像或处理动态JSON内容/想要分离文本,您需要通过循环运行它,并简单地将文本块指定为对象。这使得交换文本和使用某些东西变得更加容易它类似于
Array.prototype.reverse()
,我需要在我的案例中使用它
以下是我对它的看法:
// Basic Setup
var doc = app.documents.add();
var myPage = doc.pages.item(0); // Arbitrary page
// Character-Styles
var bold = doc.characterStyles.add({ name: "Bold", fontStyle: "Bold" });
var none = doc.characterStyles.itemByName("[None]");
// My String as an Array of Objects (Basic JSON format)
var myStringsAndStyles = [
{
contents: "I really like",
characterStyle: none
},
{
contents: " walking to the park ",
characterStyle: bold
},
{
contents: "and eating ice cream.",
characterStyle: none
}
];
// Do stuff
with ( myPage) {
var myTextFrame = textFrames.add({
geometricBounds: [6, 6, 40, 40] // Arbitrary coords
});
with ( myTextFrame.insertionPoints ) {
for ( var i = 0, arrlength = myStringsAndStyles.length; i < arrlength; i++ ) {
lastItem().properties = {
contents: myStringsAndStyles[i].contents,
appliedCharacterStyle: myStringsAndStyles[i].characterStyle
}
}
}
}
//基本设置
var doc=app.documents.add();
var myPage=doc.pages.item(0);//任意页面
//人物风格
var bold=doc.characterStyles.add({name:“bold”,fontStyle:“bold”});
var none=doc.characterStyles.itemByName(“[none]”);
//作为对象数组的我的字符串(基本JSON格式)
var myStringsAndStyles=[
{
内容:“我真的很喜欢”,
characterStyle:无
},
{
内容:“步行去公园”,
字符样式:粗体
},
{
内容:“和吃冰淇淋。”,
characterStyle:无
}
];
//做事
带(myPage){
var myTextFrame=textFrames.add({
几何边界:[6,6,40,40]//任意坐标
});
使用(myTextFrame.insertionPoints){
对于(var i=0,arrlength=myStringsAndStyles.length;i
Ta da!这里有一个关于Josh解决方案的简单介绍——插入点是一个不错的选择。如果您需要操作、镜像或处理动态JSON内容/想要分离文本,您需要通过循环运行它,并简单地将文本块指定为对象。这使得交换文本和使用JSON更加容易比如
Array.prototype.reverse()
,我需要在我的案例中使用它
以下是我对它的看法:
// Basic Setup
var doc = app.documents.add();
var myPage = doc.pages.item(0); // Arbitrary page
// Character-Styles
var bold = doc.characterStyles.add({ name: "Bold", fontStyle: "Bold" });
var none = doc.characterStyles.itemByName("[None]");
// My String as an Array of Objects (Basic JSON format)
var myStringsAndStyles = [
{
contents: "I really like",
characterStyle: none
},
{
contents: " walking to the park ",
characterStyle: bold
},
{
contents: "and eating ice cream.",
characterStyle: none
}
];
// Do stuff
with ( myPage) {
var myTextFrame = textFrames.add({
geometricBounds: [6, 6, 40, 40] // Arbitrary coords
});
with ( myTextFrame.insertionPoints ) {
for ( var i = 0, arrlength = myStringsAndStyles.length; i < arrlength; i++ ) {
lastItem().properties = {
contents: myStringsAndStyles[i].contents,
appliedCharacterStyle: myStringsAndStyles[i].characterStyle
}
}
}
}
//基本设置
var doc=app.documents.add();
var myPage=doc.pages.item(0);//任意页面
//人物风格
var bold=doc.characterStyles.add({name:“bold”,fontStyle:“bold”});
var none=doc.characterStyles.itemByName(“[none]”);
//作为对象数组的我的字符串(基本JSON格式)
var myStringsAndStyles=[
{
内容:“我真的很喜欢”,
characterStyle:无
},
{
内容:“步行去公园”,
字符样式:粗体
},
{
内容:“和吃冰淇淋。”,
characterStyle:无
}
];
//做事
带(myPage){
var myTextFrame=textFrames.add({
几何边界:[6,6,40,40]//任意坐标
});
使用(myTextFrame.insertionPoints){
对于(var i=0,arrlength=myStringsAndStyles.length;i
Ta da!这里有一个关于Josh解决方案的简单介绍——插入点是一个不错的选择。如果您需要操作、镜像或处理动态JSON内容/想要分离文本,您需要通过循环运行它,并简单地将文本块指定为对象。这使得交换文本和使用JSON更加容易比如
Array.prototype.reverse()
,我需要在我的案例中使用它
以下是我对它的看法:
// Basic Setup
var doc = app.documents.add();
var myPage = doc.pages.item(0); // Arbitrary page
// Character-Styles
var bold = doc.characterStyles.add({ name: "Bold", fontStyle: "Bold" });
var none = doc.characterStyles.itemByName("[None]");
// My String as an Array of Objects (Basic JSON format)
var myStringsAndStyles = [
{
contents: "I really like",
characterStyle: none
},
{
contents: " walking to the park ",
characterStyle: bold
},
{
contents: "and eating ice cream.",
characterStyle: none
}
];
// Do stuff
with ( myPage) {
var myTextFrame = textFrames.add({
geometricBounds: [6, 6, 40, 40] // Arbitrary coords
});
with ( myTextFrame.insertionPoints ) {
for ( var i = 0, arrlength = myStringsAndStyles.length; i < arrlength; i++ ) {
lastItem().properties = {
contents: myStringsAndStyles[i].contents,
appliedCharacterStyle: myStringsAndStyles[i].characterStyle
}
}
}
}
//基本设置
var doc=app.documents.add();
var myPage=doc.pages.item(0);//任意页面
//人物风格
var bold=doc.characterStyles.add({name:“bold”,fontStyle:“bold”});
var none=doc.characterStyles.itemByName(“[none]”);
//作为对象数组的我的字符串(基本JSON格式)
var myStringsAndStyles=[
{
内容:“我真的很喜欢”,
characterStyle:无
},
{
内容:“步行去公园”,
字符样式:粗体
},
{
内容:“和吃冰淇淋。”,
characterStyle:无
}
];
//做事
带(myPage){
var myTextFrame=textFrames.add({
几何边界:[6,6,40,40]//任意坐标
});
使用(myTextFrame.insertionPoints){
对于(var i=0,arrlength=myStringsAndStyles.length;i