Imposition
Contexte
L'imposition est l'une des étapes fondamentales du processus d'impression prépresse. Elle consiste à disposer les pages du produit imprimé sur la feuille de l'imprimante, afin d'obtenir une impression plus rapide, de simplifier la reliure et de réduire le gaspillage de papier.
Définitions
(tirée du wiki de Scribus).
- Trimbox
- essentiellement la taille de votre page dans le produit final, après toutes les opérations de découpe. C'est la taille de votre page dans scribus.
- Bleedbox
- contient la trimbox + tout fond perdu
- Mediabox
- contient bleedbox + n'importe quel crop/bleed/etc... marques
- Cropbox
- est surtout un élément du visualiseur, elle spécifie la zone affichée dans le visualiseur : dans Adobe Reader, la taille du document affiché est normalement la taille de la boîte à découper. Avec les pdf exportés par scribus la cropbox est égale à la mediabox
Remove crop marks (for a PDF without correct TrimBox infos)
var pdf = new PDFDocument(scriptArgs[0]);
pdf.getTrailer().Root.PageLayout = "TwoColumnLeft";
var n = pdf.countPages();
for (var i = 0; i < n; ++i) {
var page = pdf.findPage(i);
var currentWidth = page.MediaBox[2];
var currentHeight = page.MediaBox[3];
var wcrop = ((currentWidth - 482) / 2);
var hcrop = ((currentHeight - 652) / 2);
print(wcrop);
page.MediaBox = page.CropBox = [wcrop,hcrop, 482 + wcrop, 652 + hcrop];
}
pdf.save(scriptArgs[1]);
call with mutool run bin/resize.js source.pdf destination.pdf
Remove crop marks (for a PDF with correct TrimBox infos)
var pdf = new PDFDocument(scriptArgs[0]);
var n = pdf.countPages();
for (var i = 0; i < n; ++i) {
var page = pdf.findPage(i);
page.MediaBox = page.CropBox = page.TrimBox;
}
pdf.save(scriptArgs[1]);
call with mutool run bin/resize.js source.pdf destination.pdf
Alter Trimbox for imposition
var pdf = new PDFDocument(scriptArgs[0]);
var n = pdf.countPages();
for (var i = 0; i < n; ++i) {
var page = pdf.findPage(i);
if (i % 2 == 1) {
page.MediaBox = page.CropBox = [page.TrimBox[0], page.MediaBox[1], page.MediaBox[2], page.MediaBox[3]];
} else {
page.MediaBox = page.CropBox = [page.MediaBox[0], page.MediaBox[1], page.TrimBox[2], page.MediaBox[3]];
}
}
pdf.save(scriptArgs[1]);
Fix corrupted PDFs
gs -o repaired.pdf -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress test2.pdf
8 pages imposition plan
-- 8_pages.plan
-- Required
PageWidth = SourceWidth * 2
PageHeight = SourceHeight * 2
-- PushRecord(sourcepage, targetpage, rotation, x, y)
currentSourcePage = currentTargetPage = 1
while currentSourcePage <= PageCount
do
i = currentSourcePage - 1
PushRecord(i + 8, currentTargetPage, 0, 0, 0)
PushRecord(i + 1, currentTargetPage, 0, SourceWidth, 0)
PushRecord(i + 5, currentTargetPage, 180, SourceWidth, SourceHeight * 2)
PushRecord(i + 4, currentTargetPage, 180, SourceWidth * 2, SourceHeight * 2)
PushRecord(i + 6, currentTargetPage + 1, 0, 0, 0)
PushRecord(i + 3, currentTargetPage + 1, 0, SourceWidth, 0)
PushRecord(i + 7, currentTargetPage + 1, 180, SourceWidth, SourceHeight * 2)
PushRecord(i + 2, currentTargetPage + 1, 180, SourceWidth * 2, SourceHeight * 2)
currentSourcePage = currentSourcePage + 8
currentTargetPage = currentTargetPage + 2
end
-- vim:ft=lua:
Call with podofoimpose source.pdf destination.pdf 8_pages.plan lua