Aller au contenu

Profils d'imprimeur

phil/print-preflight

Une PrintProfile contient ce qu'un imprimeur exige d'un fichier. Chaque argument est nommé et a une valeur par défaut qui convient à la plupart des imprimeurs offset et numériques ; le profil d'un imprimeur donné ne fixe que ce qui diffère.

use Phil\PrintPreflight\Length;
use Phil\PrintPreflight\PrintProfile;
use Phil\PrintPreflight\Size;

$booklet = new PrintProfile(
    trimSizes: [Size::a5()],
    bleed: Length::mm(3),
    safetyMargin: Length::mm(6),
    minimumPages: 8,
    maximumPages: 64,
    pageMultiple: 4,
);

Les règles

ArgumentPar défautRègle
trimSizes[]Les formats rognés que l'imprimeur imprime, chaque orientation acceptée listée à part ; vide pour tout format
uniformTrimSizetrueChaque page a le format rogné de la première page
bleedLength::mm(3)Le fond perdu que chaque page doit porter, et la distance dont un élément qui déborde doit dépasser le bord de coupe
safetyMarginLength::mm(5)La distance à l'intérieur du bord de coupe où le contenu doit rester
minimumResolution150La résolution effective, en pixels par pouce, sous laquelle une image est une erreur
targetResolution300La résolution effective sous laquelle une image est un avertissement
maximumResolutionnullLa résolution effective au-dessus de laquelle une image est une remarque, comme poids que l'imprimeur écarte ; aucune par défaut
minimumPages1Le moins de pages que l'imprimeur relie
maximumPagesnullLe plus de pages qu'il relie ; aucune limite par défaut
pageMultiple1Le nombre de pages doit en être un multiple : 2 pour une feuille imprimée recto verso, 4 pour une piqûre à cheval
colourWorkflowColourWorkflow::CmykLes couleurs qu'attend l'imprimeur : CMJN, ou RVB pour les services qui convertissent eux-mêmes
allowSpotColoursfalseSi l'imprimeur tire des plaques de tons directs
maximumInkCoverage300La couverture d'encre totale, en pour cent, au-dessus de laquelle une image ou un aplat est une erreur, dans un flux CMJN : 300 convient au papier couché sur une presse offset, 260 à 280 au papier non couché, 240 au papier journal
minimumLineWidthLength::pt(0.25)Le filet le plus fin que l'imprimeur reproduit ; un filet plus fin est un avertissement
allowOverprinttrueSi l'imprimeur respecte la surimpression ; sinon, chaque élément en surimpression est un avertissement
allowTransparencytrueSi l'imprimeur accepte la transparence active, comme PDF/X-4 ; sinon, comme avec PDF/X-1a, chaque élément qui l'utilise est un avertissement
severities[]La gravité d'une règle, par son code, à la place de sa gravité par défaut
ignore[]Les codes des règles à ne pas signaler

Un profil dont les règles se contredisent est refusé par InvalidProfile : un fond perdu ou une marge de sécurité négatifs, une résolution minimale qui n'est pas positive, une cible sous le minimum, un maximum sous la cible, un nombre minimal de pages sous un, un maximum sous le minimum, un multiple de pages sous un, une couverture d'encre maximale qui n'est pas positive, une épaisseur minimale de filet négative.

Les gravités

Chaque règle intégrée a une gravité par défaut (voyez Vérifications et constats). Un imprimeur qui ajoute lui-même les pages blanches fait du multiple un avertissement ; un imprimeur qui ne convertit jamais les couleurs fait du RVB une erreur ; une application qui ne veut pas de remarques sur la couleur les ignore :

use Phil\PrintPreflight\PrintProfile;
use Phil\PrintPreflight\Rule;
use Phil\PrintPreflight\Severity;

$profile = new PrintProfile(
    pageMultiple: 4,
    severities: [Rule::PageCountMultiple->value => Severity::Warning, Rule::ColourRgbInCmyk->value => Severity::Error],
    ignore: [Rule::ColourSpot->value],
);

Les clés sont des codes, pas des cas de Rule : un profil fixe donc aussi la gravité des constats d'une vérification qu'ajoute l'application.