找回密码
 立即注册
2024年双11
搜索
热搜: 软件 下载 美剧
查看: 102|回复: 1

Adobe Illustrator自动按画板顺序生成页码的脚本,并且底部居中

[复制链接]
发表于 2024-11-4 15:37:14 | 显示全部楼层 |阅读模式

Adobe Illustrator 2019 支持使用 JavaScript 进行自动化任务。你可以使用 ExtendScript(Adobe 的 JavaScript 实现)来编写脚本。

以下是一个示例脚本,它会在每个画板上生成页码,并将页码显示在画板的底部居中位置:
  1. #target illustrator

  2. function main() {
  3.     var doc = app.activeDocument;
  4.     var numArtboards = doc.artboards.length;

  5.     for (var i = 0; i < numArtboards; i++) {
  6.         var artboard = doc.artboards[i];
  7.         addPageNumberToArtboard(doc, artboard, i + 1);
  8.     }
  9. }

  10. function addPageNumberToArtboard(doc, artboard, pageNumber) {
  11.     // Create a new text frame
  12.     var textFrame = doc.textFrames.add();
  13.    
  14.     // Set the content of the text frame to the page number
  15.     textFrame.contents = pageNumber.toString();
  16.    
  17.     // Get the bounds of the artboard
  18.     var artboardBounds = artboard.artboardRect;
  19.    
  20.     // Calculate the position for the text frame to be centered at the bottom of the artboard
  21.     var textFramePosition = [
  22.         artboardBounds[0] + (artboardBounds[2] - artboardBounds[0]) / 2, // Center horizontally
  23.         artboardBounds[1] + (artboardBounds[3] - artboardBounds[1]) * 0.95 // Bottom with some margin
  24.     ];
  25.    
  26.     // Set the position of the text frame
  27.     textFrame.top = textFramePosition[1];
  28.     textFrame.left = textFramePosition[0];
  29.    
  30.     // Align the text frame to the center
  31.     textFrame.justification = Justification.CENTER;
  32. }

  33. main();
复制代码


如何使用此脚本:
在桌面新建一个.js的文件,如“自动页码888.js”
然后在Adobe Illustrator,点击“文件-脚本-其他脚本”,找点桌的.js文件,即可。

回复

使用道具 举报

 楼主| 发表于 2024-11-4 15:39:06 | 显示全部楼层
在制作企业画册时,目录不算页码,就可以留空。即前7页空白,从第8页开始生成页码1。以下是更新后的脚本:
  1. #target illustrator

  2. function main() {
  3.     var doc = app.activeDocument;
  4.     var numArtboards = doc.artboards.length;

  5.     for (var i = 0; i < numArtboards; i++) {
  6.         var artboard = doc.artboards[i];
  7.         if (i >= 7) {
  8.             addPageNumberToArtboard(doc, artboard, i - 6); // Start page numbering from 1 on the 8th artboard
  9.         }
  10.     }
  11. }

  12. function addPageNumberToArtboard(doc, artboard, pageNumber) {
  13.     // Create a new text frame
  14.     var textFrame = doc.textFrames.add();
  15.    
  16.     // Set the content of the text frame to the page number
  17.     textFrame.contents = pageNumber.toString();
  18.    
  19.     // Get the bounds of the artboard
  20.     var artboardBounds = artboard.artboardRect;
  21.    
  22.     // Calculate the position for the text frame to be centered at the bottom of the artboard
  23.     var textFramePosition = [
  24.         artboardBounds[0] + (artboardBounds[2] - artboardBounds[0]) / 2, // Center horizontally
  25.         artboardBounds[1] + (artboardBounds[3] - artboardBounds[1]) * 0.95 // Bottom with some margin
  26.     ];
  27.    
  28.     // Set the position of the text frame
  29.     textFrame.top = textFramePosition[1];
  30.     textFrame.left = textFramePosition[0];
  31.    
  32.     // Align the text frame to the center
  33.     textFrame.justification = Justification.CENTER;
  34. }

  35. main();
复制代码


回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|AvBoss论坛 ( 桂ICP备20005148号-1 )

GMT+8, 2024-11-23 19:12 , Processed in 0.110193 second(s), 18 queries .

Powered by Discuz! X3.5

© 2012-2024 精彩绝伦科技有限公司

快速回复 返回顶部 返回列表