隐藏InDesign文档中不完整的页面


9

我经常处理InDesign文档,这些文档的部分是完整的,并且我希望导出为PDF以与客户端共享,但是我希望隐藏其他正在进行的部分或页面。

我的问题是,有没有一种方法可以将InDesign中的页面标记为“跳过导出”之类的东西,这样我完成我的工作后就不必手动删除这些页面(并且页面编号不正确)。出口?

预先感谢迈克尔

Answers:


4

由于页码的问题,这可能不是一个完美的解决方案。但是,这是我使用脚本编写的解决方案:

下载此样本文件并保存到您的系统。它是CS5中的IDML,因此应该可以在CS4 +中运行。

您会在第3页和第4页上注意到,有一个粉红色的大块文字说是DRAFT:

草稿截图

如果你拉起Script Label面板(Window> Utilities> Script Label),你会看到,它的标记为“DRAFT_LABEL”。

现在,采用以下脚本,将其复制/粘贴到文本编辑器中,然后将其保存到Scripts目录(作为.js或.jsx文件,这无关紧要):

try // to get the path of the file that's active when you run the script.
{
    var OpenFilePath = app.documents.item(0).fullName; // Declare a variable representing the open document.
    var OpenFile = app.open(File(OpenFilePath), true, 1332757360); // Create a duplicate to work with. In Adobe's world, "1332757360" means "open a copy".
}
catch (err)
{
    var OpenFile = "error";
    alert("Please save this file before using the script.");
}

var OpenFileLength = OpenFile.pages.length; // Get number of pages of open document and master file.

// These help make the array that stores master markers.
var ArrayCounter = 0;
var FindTheMarkers = new Array();

for (var i=0; i<OpenFileLength; i++) // Loop through every page.
{
    ItemsOnPage = OpenFile.pages.item(i).pageItems.length; // Get the number of items on the page.

    for (var j=0; j<ItemsOnPage; j++) // Loop through every item.
    {
        var ScriptLabel = OpenFile.pages.item(i).pageItems.item(j).label;   

        if (ScriptLabel != "" && ScriptLabel.indexOf("DRAFT_LABEL") == 0) // If the item has a label and it equals what we want it to,
        {
            FindTheMarkers[ArrayCounter] = i; // Put the page number in the array.
            ArrayCounter++; // Advance the counter for next time!
        }
    }
}

var numberToSubtract = 0; // This compensates for screwing up the page counter when you remove a page.

for (i=0; i<FindTheMarkers.length; i++) // Loop through the array and remove pages!
{
    OpenFile.pages.item(FindTheMarkers[i] - numberToSubtract).remove();
    numberToSubtract++;
}

在运行脚本之前,请保存文档。然后运行它!

我是一名脚本设计师,而不是其他人,所以这可能不是最优雅的代码。但是,这样做是在文档中扫描带有“ DRAFT_LABEL”标签的页面项,然后将其页码存储在数组中。扫描完成后,它将删除相应的页面。

然后,您将获得一个删除了草稿页的新文件!


1
复杂。技术。但作品很有魅力。
丹·汉利

1
+1-另一种方法是使用数组指定要导出的页面范围,并使用其他导出设置的存储预设。这将是非破坏性的。
horatio 2013年

@horatio-是的!我想向OP提到这是一个可能的解决方案,但是后来我没有这样做,因为我不确定。我从未尝试解决。这是一个很好的选择,尤其是如果您始终以相同的方式导出内容时。如果您希望像通常那样控制导出设置,则上述解决方案效果更好。我还不得不补充一点,这是一种非破坏性的解决方案...首先要做的是打开一个副本,使原件保持原样。
布伦丹2013年

2

您可以在导出对话框窗口中输入所需的页面以导出为PDF ...

出口

在范围的数字之间使用连字符,并在逗号之间使用逗号分隔各个页码。

上面的内容排除了第11页到第14页,第16页,以及第19页之后的所有内容。

如果您打算导出为PDF,就好像这些页面没有出现在文档中一样,因此页面编号会重排以与导出匹配,那么请。我不知道有什么方法可以根据导出的页面对页面编号进行重排。您必须首先删除Indesign文档中的页面。


1
您好斯科特,感谢您的答复。我知道可以导出某些页面,但是随着文档页数的增加和缩小,这使我有责任继续跟踪,这并不理想。我真正想要的是在处理页面时将其本身作为草稿,并能够发布所有非草稿页面的PDF。
迈克尔,

@Michael我认为不可能。
斯科特,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.