【问题标题】:Finding page sizes in InDesign multipage document with different page sizes在具有不同页面大小的 InDesign 多页文档中查找页面大小
【发布时间】:2025-10-13 00:05:02
【问题描述】:

我正在尝试编写一个简单的脚本来查看活动的 InDesign 文件并报告页面宽度和高度。但是,我有一个多页文档,并且并非所有页面的大小都相同。所以我不能使用文档页面大小。如何读取各个页面大小?

这是我的起始代码:

#target "InDesign"

var doc=app.activeDocument;  

// set in inches
doc.viewPreferences.horizontalMeasurementUnits = MeasurementUnits.inches;  
doc.viewPreferences.verticalMeasurementUnits = MeasurementUnits.inches;

for(var j =0;j<doc.pages.length;j++)  
    { 

        // gather data
        var pageW=doc.documentPreferences.pageWidth;  
        var pageH=doc.documentPreferences.pageHeight;  

        // display
        //$.writeln("w: " + pageW + " h: " + pageH );
        
        $.writeln(doc.pages[j].name);
        $.writeln(doc.pages[j].properties);

    }

【问题讨论】:

    标签: javascript adobe adobe-indesign extendscript


    【解决方案1】:

    打那个。找到了。

    #target "InDesign"
    
    var doc=app.activeDocument;  
    
    // set in inches
    doc.viewPreferences.horizontalMeasurementUnits = MeasurementUnits.inches;  
    doc.viewPreferences.verticalMeasurementUnits = MeasurementUnits.inches;
    
    for(var j =0;j<doc.pages.length;j++)  
        { 
    
            // gather data
            var pageW=doc.documentPreferences.pageWidth;  
            var pageH=doc.documentPreferences.pageHeight;  
    
            // display
            //$.writeln("w: " + pageW + " h: " + pageH );
            
            $.writeln(doc.pages[j].name);     
            $.writeln("Page Width : " +  doc.pages[j].bounds[3] + "\rPage Height : " + doc.pages[j].bounds[2] );
    
        }

    【讨论】:

      【解决方案2】:

      只是一个后续。仅当您的 slug 区域中没有内容时,上述答案才有效。以下是更好的答案。

      #target "InDesign"
      
      var doc=app.activeDocument;  
      
      // set in inches
      doc.viewPreferences.horizontalMeasurementUnits = MeasurementUnits.inches;  
      doc.viewPreferences.verticalMeasurementUnits = MeasurementUnits.inches;
      
      $.writeln(doc.pages.item(0).marginPreferences.top);
      
      for(var j =0;j<doc.pages.length;j++)  
          { 
      
              // gather data
              var pageW=doc.documentPreferences.pageWidth;  
              var pageH=doc.documentPreferences.pageHeight;  
      
              // write data
              $.writeln("Page : " + doc.pages[j].name);   
              $.writeln("  Page Width : " +  (doc.pages[j].bounds[3]-doc.pages[j].bounds[1]) + "\r  Page Height : " + (doc.pages[j].bounds[2] - doc.pages[j].bounds[0] ));
      
          }

      【讨论】: