Il revient à Cari Jansen d'avoir inauguré il y a quelques années un script très utile, 1pt Stroke All Pages, pour InDesign CS et CS2. Le code de Cari génère un rectangle transparent, doté d'une bordure noire épousant parfaitement les bords sur chaque page du document cible. L'objet étant placé sur un calque dédié, il est aisé de le désactiver ou de le détruire en fin de parcours. PageBorder procède exactement de la même façon, sauf qu'il propose une petite interface d'appoint pour customiser notre affaire et qu'il est compatible avec les dernières versions d'InDesign.

Du point de vue du script, le principal réquisit introduit par CS5 est que nous devons désormais nous soucier du fait que les dimensions de page — calculables via Page.bounds — sont susceptibles de varier au sein d'un même document. Cela nous impose de redéfinir minutieusement la propriété geometricBounds du rectangle à l'intérieur de la boucle qui va traverser les pages. C'est ce qu'illustre le fragment de code ci-dessous :

var createBorder = function(/*Layer*/layer)
//------------------------------------------------
// this: Page [collective allowed]
{
    var pages = this.getElements(),
        alignMode = StrokeAlignment[alignStrings[align].
            toLowerCase()+'Alignment'],
        pg;
 
    var recProps = {
        fillColor: 'None',
        strokeColor: 'Black',
        strokeTint: 100,
        strokeWeight: ptBorder,
        strokeAlignment: alignMode,
        strokeType: (jDots && jDotsStyleName) || solidStyleName,
        };
 
    while( pg=pages.pop() )
        {
        recProps.geometricBounds = pg.bounds;
        pg.rectangles.add(layer,undefined,undefined,recProps);
        }
};
 

Ainsi, les utilisateurs d'InDesign CS5 pourront utiliser PageBorder dans ce type d'environnement :

Prise en charge des documents contenant des pages aux formats hétérogènes.

Interface et paramètres

PageBorder affiche une boîte de dialogue contrôlant une toute petite poignée de paramètres. (Notez que ces paramètres possèdent une persistance de session, c'est-à-dire que le script démarre toujours en tenant compte de vos derniers réglages.)

Boîte de dialogue de PageBorder (capture sous Windows).

• Le champ Weight permet de définir l'épaisseur du contour, de 0,1 à 5 pts. Vous pouvez saisir explicitement d'autres unités de mesure, par exemple "0.3 mm", sachant que l'unité par défaut est le point (pt) sous CS3/CS4, tandis que sous InDesign CS5 elle se conforme à vos préférences pour les contours, nouvelle option rangée dans Edition > Préférences > Unités et incréments > Autres unités.

• La rubrique Alignment permet de choisir le mode d'alignement du contour vis-à-vis des bords de page : Inside (intérieur), Outside (extérieur) ou Center (centré).

• Cochez la case All Pages pour appliquer PageBorder à l'ensemble des pages du document. À défaut, seule la page active sera décorée.

• Cochée la case Dotted Stroke pour obtenir un contour en pointillés (utilisant alors le style « Points japonais » de la palette Contour).

• Le script crée le cadre bordant sur un calque dédié intitulé PageBorderLayer, lequel est automatiquement verrouillé. En principe vous n'aurez jamais à manipuler ou à supprimer ce calque par vous-même, puisque PageBorder s'occupe de tout :
— Pour mettre à jour la bordure à tout moment, relancez le script, ajustez les options et validez.
— Pour finalement supprimer la bordure avant le départ à l'impression, lancez le script, cochez la case Remove the border et validez.

• Voir aussi :
Présentation de PageBorder sur Urbanbike.
Présentation sur le blog de Cari Jansen (EN).
Présentation sur DesignGu.ru (RU).
Mention dans InDesignSecrets (EN).

• Remerciements chaleureux et crédits à : Jean-Christophe Courte, Stéphane Georis, David Blatner, sans oublier Cari Jansen pour l'idée originale.