- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 inDesign JSX 脚本将以下数据插入到文档中:
data = [{heading:"Heading 1", content: ["Some content"]},
{heading:"Heading 2", content: ["Some other content with", "Multiple paragraphs"]}]
textFrame.contents
一次性完成多变的:
allContent = "";
headingParagraphs = []; // keep track of which paragraphs are headings
paragraph = 0;
for (var i = 0; i < data.length; i++) {
allContent += data.heading + "\r"; // Use a newline to split the paragraph
headingParagraphs.push(paragraph);
paragraph++;
for (var j = 0; j < data.content.length; j++) {
allContent += data.content[j] + "\r"; // Use a newline to split the paragraph
paragraph++;
}
}
textFrame.contents = allContent; // all data is in, but all text is styled the same
for (var i = 0; i < textFrame.paragraphs.count(); i++) {
if (headingParagraphs.indexOf(i) != -1) { // this is a heading paragraph
textFrame.paragraphs[i].pointSize = 20;
}
}
paragraphs
只返回可见的段落。如果我继续使用一个新的 textFrame,段落会被拆分并且
headingParagraphs[]
阵列不再排队。
// Pseudo code:
for all sections:
append the heading to the frame, split to next page if needed
style all the *new* paragraphs as headings
for all section contents
append the content to the frame, split to next page if needed
style any *new* paragraphs as normal content
最佳答案
您的较长文本会被弄乱,因为目前您正在单个 中工作。文本框 .一旦文本用完这一框架,您就不能再将它们称为该框架的“拥有”段落。使用 parentStory
相反,因为它指向整个故事,在一个文本框架内或跨越多个文本框架。如果文本溢出,它也会继续工作。
因此,如果您有一个名为 textFrame
的起始帧, 设置一个新变量 story
至 textFrame.parentStory
并使用它来添加文本。
至于向这个框架(/story)添加文本:确实,没有快速添加格式化文本的方法。设置 contents
仅适用于具有相同格式的长条。我使用的一种方法是将 INX 格式的文本写入临时文件并导入。对于短片段来说速度很慢,但是在 Javascript 本身中可以非常有效地创建更大的故事(最多数百页),然后将其导入 ID 是......好吧,它比尝试“手动”更快但速度更快.
另一种方法是一次添加一段内容。诀窍是设置格式并将您的文本添加到 story.insertionPoints[-1]
.这在一个特别方便的符号中,指的是故事的最后一个文本插入点。您可以将插入点视为“文本光标”;您可以对其“应用”格式,然后添加的任何文本也将具有此格式。
您的代码片段经过重新设计,添加了一个 data
项目一次:
for (var i = 0; i < data.length; i++)
{
story.insertionPoints[-1].pointSize = 20;
story.insertionPoints[-1].contents = data[i].heading + "\r"; // Use a newline to split the paragraph
story.insertionPoints[-1].pointSize = 10;
for (var j = 0; j < data[i].content.length; j++)
{
story.insertionPoints[-1].contents = data[i].content[j] + "\r"; // Use a newline to split the paragraph
}
}
pointSize
这里。如果您将其设置为较大的尺寸,则还必须再次将其设置回原始尺寸(我的代码片段中的“10”)。
hdrStyle = app.activeDocument.paragraphStyles.item("Header");
textStyle = app.activeDocument.paragraphStyles.item("Text");
for (var i = 0; i < data.length; i++)
{
story.insertionPoints[-1].contents = data[i].heading + "\r"; // Use a newline to split the paragraph
story.insertionPoints[-2].appliedParagraphStyle = hdrStyle;
for (var j = 0; j < data[i].content.length; j++)
{
story.insertionPoints[-1].contents = data[i].content[j] + "\r"; // Use a newline to split the paragraph
story.insertionPoints[-2].appliedParagraphStyle = textStyle;
}
}
insertionPoints[-2]
这里。
关于adobe-indesign - inDesign JSX 脚本将标题和内容添加到 textFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23985785/
我是 Adobe InDesign Server 的新手,我很难找到一个好的厨房水槽应用程序。我从 SDK 获得的所有示例似乎都部分起作用。我想要做的就是从服务器端使用 InDesign 的母版页
我正在尝试使用 inDesign JSX 脚本将以下数据插入到文档中: data = [{heading:"Heading 1", content: ["Some content"]}, {head
我有一个在 Windows 2007 VPS 上运行的 InDesign Server 实例,它在端口 8081 上运行 SOAP 服务。它作为 Windows 服务运行并运行开发和实时 JSX 脚本
我们有一个系统允许用户在 InDesign IDML 文件中填写可变数据。输入信息后,InDesign 服务器会呈现 IDML 的 JPG 供用户查看。输入所有数据后,用户便可以请求 PDF(也由 I
我有一个 InDesign 文档,其中包含不同宽度尺寸的页面。现在我想用 JS 脚本添加垂直指南。因此我必须添加 pageWidth + pageWidth (特定页面的)。 但我只知道如何获取文档尺
我不知道为什么没有人遇到这个问题,但是在 indesign cs6 中,当我尝试调试它时它没有附加到当前打开的文档,我该怎么办? 最佳答案 从 ESTK 源窗口左上角的“目标”下拉菜单中选择 InDe
我有一个包含 10 页文本的 inDesign 文档。文本使用不同的段落样式设置样式,其中一些与构建自定义目录相关。 有两个相关的段落样式,“Header1”和“Header2”,我试图从中构建自己的
我对 Adobe Indesign 还很陌生,但我对各种编码语言都满意。 我想创建一个基于 Web 的文档,其中列出了一些产品和产品说明,每个产品说明都充当在线产品本身的超链接。 我已经创建了列出
我想调整整个 indesign 文档的宽度和高度,这是我的代码,它给出错误 错误号:11265错误字符串:该值将导致一个或多个对象离开粘贴板 请帮我解决一下,谢谢 var NEW_HEIGHT = '
我搜索了 stackoverflow 和 adobe 社区来找到这个问题的答案。我不知道如何获取 Indesign 中所选对象的颜色。 我现在知道我需要检查它是样本还是添加的正常颜色。但我只是不知道如
我想从主项目中删除覆盖,但只是对象样式 X 中的项目,我写道: var doc = app.activeDocument; var pgs = doc.pages; for(i = 0; i
我想更改位于多状态对象中的图片的位置。 我将两个矩形(其中一个包含放置的位图)连接在一起以形成一个多状态对象。但是现在我不能再将这些矩形作为矩形来处理,只能作为页面项来处理。所以: app.activ
我正在尝试编写一个脚本,将一个图层从一个文档复制到另一个文档。 var srcDocName = 0; var destDocName = 1; var layerNameOriginal = "Or
以下 InDesign (Java) 脚本不会更改所有段落的文本内容和格式:- for (var j = 0; j < app.activeDocument.stories.length; j++)
我正在为 Indesign CS5 开发一个 JavaScript 插件,我希望能够从外部文件(例如 XML 文件)配置它。是否可以?我在 Adobe 网站或网络搜索中没有找到任何内容... 提前
你好这是我第一次使用 Adobe SDK,我正在使用 InDesign SDK 创建我的自定义插件,但我什至无法将示例插件加载到 InDesign 中。我打开了位于\Adobe InDesign
正在努力处理以下脚本。我修改了找到的脚本,以便它将所有故事提取为 txt 文件,并使用段落中文本的文件名保存 txt 文件。 事实证明,我们并不希望提取所有故事,但我们确实想要的故事的第一段有固定的段
编辑:我也愿意接受有关我能做什么的其他建议。 如何使用 onChange 事件更新我的窗口?我的解决方案有效,但我需要组在不可见时折叠。 w.DD.onChange = function() {
我正在尝试运行一个脚本,该脚本有助于自动转换文本并将其放置到 InDesign 文档中的脚注中。脚本: var scriptName = "Convert text to footnote", doc
我想构建一个 InDesign 脚本,当您导入 html 标签(例如粗体和斜体)时,这些词会转换为粗体或斜体。 例如 I really like walking to the park and eat
我是一名优秀的程序员,十分优秀!