Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 应用段落样式后文本框消失_Javascript_Adobe Indesign_Indesign Server - Fatal编程技术网

Javascript 应用段落样式后文本框消失

Javascript 应用段落样式后文本框消失,javascript,adobe-indesign,indesign-server,Javascript,Adobe Indesign,Indesign Server,至少可以说,我没有很多Indesign的经验,但我被要求调查是否有可能(使用Indesign脚本服务器)启动一个新文档、应用主控页、插入一些段落和应用一些段落样式 我想出的解决办法是 // define template var indesignTemplate = new File("/e/mytemplate.indt"); // open the template var doc = app.open(indesignTemplate); // get master page var

至少可以说,我没有很多Indesign的经验,但我被要求调查是否有可能(使用Indesign脚本服务器)启动一个新文档、应用主控页、插入一些段落和应用一些段落样式

我想出的解决办法是

// define template
var indesignTemplate = new File("/e/mytemplate.indt");

// open the template
var doc = app.open(indesignTemplate);

// get master page
var masterPage = doc.masterSpreads.item("A-Master");

// get first page
var page = doc.pages.item(0);

// apply master page to our first page
page.appliedMaster = masterPage

// get paragraph style
var paragraphStyle = doc.paragraphStyles.item("_2.ondertitel_bladzijde");

for (var i = 0; i < masterPage.textFrames.length; i++) {
     var textframe = masterPage.textFrames.item(i);
    if (textframe.label === "flow") {
        for (var x = 0; x < 5; x++) {
            // insert another new paragraph
            textframe.parentStory.insertionPoints.item(-1).contents = "Lorem ipsum dolor... \r\r";
        }

       for (var x = 0; x < textframe.paragraphs.length; x++) {
         textframe.paragraphs.item(0).applyParagraphStyle(paragraphStyle);
       }

     }
}

//Save the document (fill in a valid file path).
doc.save(new File("/c/mybook.indd"));

// Save the document as an PDF
doc.exportFile(ExportFormat.pdfType, new File("/c/mybook.pdf"));

// close the document.
app.documents.item(0).close();
//定义模板
var indesignTemplate=新文件(“/e/mytemplate.indt”);
//打开模板
var doc=app.open(indesignTemplate);
//获取母版页
var母版页=单据主价差项目(“A-母版”);
//获取第一页
变量页=单据页项目(0);
//将母版页应用于我们的第一页
page.appliedMaster=母版页
//获取段落样式
var paragraphStyle=文件paragraphStyles.item(“'u 2.ondertitel_bladzijde”);
对于(var i=0;i
当我注释掉applyParagraphStyle代码时,它可以工作并查看我的文本

从我尝试应用段落样式的那一刻起,文本就被隐藏了。然后,当我在Indesign中打开保存的indd文件,并在空文本框中单击command+shift时,文本出现,我还看到一个额外的层出现

我也尝试过以差不多相同的方式应用角色样式,但没有任何问题


我认为问题在于我可能用错误的方式来处理这个问题

您正在应用主排列,然后对其进行修改。我认为更好的方法是覆盖页面上的文本框。试试这个:

// define template
var indesignTemplate = new File("/e/mytemplate.indt");

// open the template
var doc = app.open(indesignTemplate);

// get master page
var masterPage = doc.masterSpreads.item("A-Master");

// get first page
var page = doc.pages.item(0);

// apply master page to our first page
page.appliedMaster = masterPage;  // you are missing closing semicolon here

// get paragraph style
var paragraphStyle = doc.paragraphStyles.item("_2.ondertitel_bladzijde");

for (var i = 0; i < page.textFrames.length; i++) {
     var textframe = page.textFrames.item(i);
    if (textframe.label === "flow") {
        textframe.override(page);
        for (var x = 0; x < 5; x++) {
            // insert another new paragraph
            textframe.parentStory.insertionPoints.item(-1).contents = "Lorem ipsum dolor... \r\r";
        }

       for (var x = 0; x < textframe.paragraphs.length; x++) {
         textframe.paragraphs.item(0).applyParagraphStyle(paragraphStyle);
       }

     }
}

//Save the document (fill in a valid file path).
doc.save(new File("/c/mybook.indd"));

// Save the document as an PDF
//定义模板
var indesignTemplate=新文件(“/e/mytemplate.indt”);
//打开模板
var doc=app.open(indesignTemplate);
//获取母版页
var母版页=单据主价差项目(“A-母版”);
//获取第一页
变量页=单据页项目(0);
//将母版页应用于我们的第一页
page.appliedMaster=母版页;//这里缺少结束分号
//获取段落样式
var paragraphStyle=文件paragraphStyles.item(“'u 2.ondertitel_bladzijde”);
对于(var i=0;i

如果出于某种原因必须更改主排列,请尝试先修改主排列,然后应用于页面。

最后,我提出了以下解决问题的方法。我不知道我是否有点过度设计,或者这是在艺术规则之下

var indesignTemplate = new File("/e/boek_nl.indt");  

// open the template  
var doc = app.open(indesignTemplate);  

// get master page  
var masterPage = doc.masterSpreads.item("A-Master");  

// get first page  
var page = doc.pages.item(0);  

// apply master page to our first page  
page.appliedMaster = masterPage  

// get paragraph style  
var paragraphStyle = doc.paragraphStyles.item("_2.ondertitel_bladzijde");  

// get text frame  
function getTextFrame(pageObj, frameName) {  
   var allItems = pageObj.appliedMaster.pageItems.everyItem().getElements();  

for(var j=0;j<allItems.length;j++)  
{  
    if(allItems[j].label === frameName) {  
        return allItems[j].override(pageObj);  
    }  
}  

var textFrame = getTextFrame(page, "flow")  

// insert a paragraph 5 times  
for (var x = 0; x < 5; x++) {  
   textFrame.parentStory.insertionPoints.item(-1).contents = "text \r\r";  
}  

// apply paragraph style  
textFrame.paragraphs.item(0).applyParagraphStyle(paragraphStyle);  

//Save the document (fill in a valid file path).  
doc.save(new File("/c/boek_nl.indd"));  

// Save the document as an PDF  
doc.exportFile(ExportFormat.pdfType, new File("/c/boek_nl.pdf"));  

// close the document.  
app.documents.item(0).close();  
var indesignTemplate=新文件(“/e/boek_nl.indt”);
//打开模板
var doc=app.open(indesignTemplate);
//获取母版页
var母版页=单据主价差项目(“A-母版”);
//获取第一页
变量页=单据页项目(0);
//将母版页应用于我们的第一页
page.appliedMaster=母版页
//获取段落样式
var paragraphStyle=文件paragraphStyles.item(“'u 2.ondertitel_bladzijde”);
//获取文本框
函数getTextFrame(pageObj,frameName){
var allItems=pageObj.appliedMaster.pageItems.everyItem().getElements();

对于(var j=0;jTrt)添加TrimeFr.ReCyfe()到不幸的是:(在这种情况下,我也得到了空白文档,不幸的是,我的测试文件基于您的POST作品很好,所以还有别的东西。