Skip to main content
Participant
Nov 10, 2026 8:24 PM UTC
Question

Export first page, when pages are named

My team uses indesign to keep resize our flyers and have the pages named after the sizes. We love the export with page name feature, but when we try export just the first page, we have to type the name in (caps sensitive). Is this a Indesign Bug? 

 

    1 reply

    Community Expert
    Nov 11, 2026 7:44 AM UTC

    You don't need to type the page name.

    In the JPEG Export dialog, select Range and enter +1 instead of the page name.

    The + tells InDesign to use the page's absolute position in the document rather than its assigned name.

    For example:

    •  +1 exports the first page.

    •  +2 exports the second page.

    • +1-+3 exports the first three pages.

    • +1,+4,+6 should export 1 4 and 6

    This works regardless of whether your pages are named MainAd1, Mobile2, Display3, etc.

     

    ----
    You could do it better via scripting

    Something like this

     



    /*
    Export Selected Named Pages to JPEG
    ExtendScript / Adobe InDesign 2025–2026
    Lists page names using section prefixes/names (and alternate layouts),
    then exports individually selected pages by absolute document position.
    */
    (function () {
    if (app.documents.length === 0) {
    alert("Open an InDesign document before running this script.");
    return;
    }

    var doc = app.activeDocument;
    var prefs = app.jpegExportPreferences;
    var old = {
    jpegExportRange: prefs.jpegExportRange,
    pageString: prefs.pageString,
    exportingSpread: prefs.exportingSpread,
    jpegQuality: prefs.jpegQuality,
    jpegRenderingStyle: prefs.jpegRenderingStyle,
    exportResolution: prefs.exportResolution,
    jpegColorSpace: prefs.jpegColorSpace,
    embedColorProfile: prefs.embedColorProfile,
    antiAlias: prefs.antiAlias,
    useDocumentBleeds: prefs.useDocumentBleeds,
    simulateOverprint: prefs.simulateOverprint
    };

    function safeFileName(s) {
    s = String(s).replace(/[\\\/:*?"<>|\x00-\x1F]/g, "_");
    s = s.replace(/^\s+|\s+$/g, "").replace(/[. ]+$/g, "");
    return s.length ? s : "Unnamed_Page";
    }

    function uniqueFile(folder, base) {
    var candidate = new File(folder.fsName + "/" + base + ".jpg");
    var num = 2;
    while (candidate.exists) {
    candidate = new File(folder.fsName + "/" + base + "_" + num + ".jpg");
    num++;
    }
    return candidate;
    }

    // Page.name is sometimes only the number, even when the Pages panel
    // shows a prefix or an alternate layout name. Read the Section instead.
    function trimString(value) {
    return String(value === undefined || value === null ? "" : value)
    .replace(/^\s+|\s+$/g, "");
    }

    function pageDisplayName(page) {
    var pageName = trimString(page.name);
    var prefix = "";
    var alternateLayout = "";
    var sectionName = "";
    var marker = "";
    try {
    if (page.appliedSection && page.appliedSection.isValid) {
    prefix = trimString(page.appliedSection.sectionPrefix);
    sectionName = trimString(page.appliedSection.name);
    marker = trimString(page.appliedSection.marker);
    alternateLayout = trimString(page.appliedSection.alternateLayout);
    }
    } catch (e1) {}

    // Some multi-size/ad documents use Alternate Layouts for these labels.
    if (!alternateLayout) {
    try {
    if (page.appliedAlternateLayout && page.appliedAlternateLayout.isValid) {
    alternateLayout = trimString(page.appliedAlternateLayout.alternateLayout);
    }
    } catch (e2) {}
    }

    // Prefer the visible numbering prefix, then named alternate layout,
    // then a custom section name or section marker.
    var label = prefix || alternateLayout;
    if (!label && sectionName && !/^Section[ \t]+[0-9]+$/i.test(sectionName)) {
    label = sectionName;
    }
    if (!label) label = marker;

    if (label) {
    if (pageName.indexOf(label) === 0) return pageName;
    if (!pageName || /^[0-9]+$/.test(pageName) || /^[ivxlcdm]+$/i.test(pageName)) {
    return label + pageName;
    }
    return label + " - " + pageName;
    }
    return pageName || "Page " + (page.documentOffset + 1);
    }

    var pageLabels = [];
    for (var p = 0; p < doc.pages.length; p++) {
    pageLabels.push(pageDisplayName(doc.pages[p]));
    }

    var win = new Window("dialog", "Export Named Pages to JPEG");
    win.orientation = "column";
    win.alignChildren = ["fill", "top"];
    win.margins = 18;

    win.add("statictext", undefined, "Select pages by the names shown in the Pages panel:");
    var list = win.add("listbox", undefined, [], {multiselect: true});
    list.preferredSize = [460, 250];

    for (var i = 0; i < doc.pages.length; i++) {
    list.add("item", pageLabels[i] + " (document page " + (i + 1) + ")");
    }
    if (list.items.length) list.items[0].selected = true;

    var chooseRow = win.add("group");
    chooseRow.orientation = "row";
    var allBtn = chooseRow.add("button", undefined, "Select All");
    var noneBtn = chooseRow.add("button", undefined, "Clear Selection");
    allBtn.onClick = function () {
    for (var i = 0; i < list.items.length; i++) list.items[i].selected = true;
    };
    noneBtn.onClick = function () {
    for (var i = 0; i < list.items.length; i++) list.items[i].selected = false;
    };

    var options = win.add("panel", undefined, "JPEG settings");
    options.orientation = "column";
    options.alignChildren = ["left", "top"];
    options.margins = 12;

    var dpiRow = options.add("group");
    dpiRow.add("statictext", undefined, "Resolution (ppi):");
    var dpiInput = dpiRow.add("edittext", undefined, String(Math.round(old.exportResolution)));
    dpiInput.characters = 6;

    var colorRow = options.add("group");
    colorRow.add("statictext", undefined, "Colour space:");
    var colorList = colorRow.add("dropdownlist", undefined, ["RGB", "CMYK"]);
    colorList.selection = (old.jpegColorSpace === JpegColorSpaceEnum.CMYK) ? 1 : 0;

    var bleedBox = options.add("checkbox", undefined, "Use document bleed settings");
    bleedBox.value = old.useDocumentBleeds;
    var overprintBox = options.add("checkbox", undefined, "Simulate overprint");
    overprintBox.value = old.simulateOverprint;

    var buttons = win.add("group");
    buttons.alignment = "right";
    var cancelBtn = buttons.add("button", undefined, "Cancel", {name: "cancel"});
    var exportBtn = buttons.add("button", undefined, "Export JPEGs", {name: "ok"});
    var selectedIndices = [];
    var resolution = 300;

    exportBtn.onClick = function () {
    selectedIndices = [];
    for (var i = 0; i < list.items.length; i++) {
    if (list.items[i].selected) selectedIndices.push(i);
    }
    if (!selectedIndices.length) {
    alert("Select at least one page.");
    return;
    }
    resolution = Number(dpiInput.text);
    if (!isFinite(resolution) || resolution < 1 || resolution > 2400) {
    alert("Resolution must be a number between 1 and 2400 ppi.");
    return;
    }
    win.close(1);
    };
    cancelBtn.onClick = function () { win.close(0); };
    if (win.show() !== 1) return;

    var folder = Folder.selectDialog("Choose the folder for the exported JPEGs");
    if (!folder) return;

    var completed = 0;
    var errors = [];

    try {
    prefs.exportingSpread = false;
    prefs.jpegExportRange = ExportRangeOrAllPages.EXPORT_RANGE;
    prefs.jpegQuality = JPEGOptionsQuality.MAXIMUM;
    prefs.jpegRenderingStyle = JPEGOptionsFormat.BASELINE_ENCODING;
    prefs.exportResolution = resolution;
    prefs.jpegColorSpace = (colorList.selection.index === 1) ?
    JpegColorSpaceEnum.CMYK : JpegColorSpaceEnum.RGB;
    prefs.antiAlias = true;
    prefs.embedColorProfile = true;
    prefs.useDocumentBleeds = bleedBox.value;
    prefs.simulateOverprint = overprintBox.value;

    for (var n = 0; n < selectedIndices.length; n++) {
    var index = selectedIndices[n];
    var page = doc.pages[index];
    try {
    // +N refers to the Nth page's absolute document position,
    // even when the visible page name uses section numbering.
    prefs.pageString = "+" + (index + 1);
    var target = uniqueFile(folder, safeFileName(pageLabels[index]));
    doc.exportFile(ExportFormat.JPG, target, false);
    completed++;
    } catch (pageError) {
    errors.push(pageLabels[index] + ": " + pageError.message);
    }
    }
    } catch (exportError) {
    errors.push("Export settings: " + exportError.message);
    } finally {
    try {
    prefs.jpegExportRange = ExportRangeOrAllPages.EXPORT_RANGE;
    prefs.pageString = old.pageString;
    prefs.exportingSpread = old.exportingSpread;
    prefs.jpegQuality = old.jpegQuality;
    prefs.jpegRenderingStyle = old.jpegRenderingStyle;
    prefs.exportResolution = old.exportResolution;
    prefs.jpegColorSpace = old.jpegColorSpace;
    prefs.embedColorProfile = old.embedColorProfile;
    prefs.antiAlias = old.antiAlias;
    prefs.useDocumentBleeds = old.useDocumentBleeds;
    prefs.simulateOverprint = old.simulateOverprint;
    prefs.jpegExportRange = old.jpegExportRange;
    } catch (restoreError) {
    errors.push("Could not fully restore JPEG preferences: " + restoreError.message);
    }
    }

    var report = "Exported " + completed + " of " + selectedIndices.length + " selected pages to:\n" + folder.fsName;
    if (errors.length) report += "\n\nIssues:\n" + errors.join("\n");
    alert(report);
    })();

     

    Translate