Une fois intégré dans Scribus, le script Python suivant automatise la création d’un document vierge, constitué d’une page respectant l’un des formats préconisés par Amazon KDP pour une couverture de livre broché. Des boîtes de dialogue permettent de paramétrer la taille en fonction du format, du nombre de pages du livre et du type de papier choisi (blanc ou crème). Sur le document créé, des repères sont placés pour borner les zones utilisables. J’aurais souhaité pouvoir employer une liste déroulante pour la sélection du format, mais je n’ai pas trouvé de solution simple pour le faire dans la version actuelle de Scribus (1.6.2). Il semble que ce sera possible en version 1.7. Si, comme moi, vous importez une image de fond, pensez à aller dans les préférences de Scribus pour le régler de telle façon à ce que les repères apparaissent au-dessus des objets (voir la capture d’écran ci-dessous).
*Capture d'écran de la boîte de dialogue des préférences de Scribus
Pour utiliser le script, copier le texte ci-dessous dans un éditeur type « Bloc Note » puis enregistrer le fichier obtenu en lui donnant l’extension « . py ». Placez-le ensuite dans le dossier où se trouvent vos autres scripts dédiés à Scribus. Si vous n’en avez pas encore, créez-en un où vous le souhaitez. Vous pourrez le sélectionner à partir du menu de Scribus.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# CreaCouvKdpScribus.py (c)2024 Franck Girapelli
# Licence Creative Commons CC-BY-NC-SA
"""
Création d'un document de page de couverture pour
un livre broché destiné à être imprimé par Amazon KDP.
Choix d'un format conforme aux préconisations KDP
Paramètres à fournir :
# Format
# Nb de pages
# Type de papier
Des repères sont placés automatiquement pour borner les zones utilisables
---
Creating a cover page document for
a paperback book intended for printing by Amazon KDP.
Choosing a format that complies with KDP recommendations
Parameters to provide:
# Format
# Number of pages
# Kind of paper
Guides are automatically placed to demarcate usable areas
"""
import scribus
"""Local strings to be translated """
CreaCouvStr1 = 'Choix du format en pouces :\n' #Choice of format in inches :
CreaCouvStr2 = 'Paramétrage' #Setting
CreaCouvStr3 = 'Nombre de pages\n(doit être pair) :' #Number of pages\n(must be even) :
CreaCouvStr4 = 'Type de papier\n 1: Crème\n 2: Blanc' #Paper type\n 1: Cream\n 2: White
CreaCouvStr5 = 'Erreur' #Error
CreaCouvStr6 = 'Impossible de créer les repères' #Unable to create guides
CreaCouvStr7 = 'Impossible de créer le document' #Unable to create the document
""" Feel free to change defaults"""
defaultFormat = '3' # 6 x 9 po
defaultNumPages = '100'
defaultPaper = '1'
""" You don't need change anything below this line """
from scribus import UNIT_MM,LANDSCAPE,PAGE_1
ListeLargeurs = [5,5.25,6,5.06,6.14,7]
ListeHauteurs = [8,8,9,7.81,9.21,10]
LeFormat = 0
while (LeFormat < 1) or (LeFormat > 6):
LeFormatT = scribus.valueDialog(CreaCouvStr2,CreaCouvStr1 + "1: 5 x 8\n2: 5,25 x 8\n3: 6 x 9\n4: 5,06 x 7,81\n5: 6,14 x 9,21\n6: 7 x 10", defaultFormat)
LeFormat = int(LeFormatT)
NbPages = 1
while (NbPages % 2) != 0:
NbPagesT = scribus.valueDialog(CreaCouvStr2,CreaCouvStr3, defaultNumPages)
NbPages = int(NbPagesT)
TypePapier = '0'
while (TypePapier != '1') and (TypePapier != '2'):
TypePapier = scribus.valueDialog(CreaCouvStr2,CreaCouvStr4, defaultPaper)
if TypePapier == '1':
EpaisseurFeuille = 0.0635
else:
EpaisseurFeuille = 0.0572
FondPerdu = 3.17
Marge = 3.17
MargesDos = 1.59
LargeurCodeBarres = 50.8
HauteurCodeBarres = 30.5
MargesCodeBarres = 6.35
Dos = float(NbPages) * EpaisseurFeuille
H_Livre = ListeHauteurs[LeFormat - 1] * 25.4
L_Livre = ListeLargeurs[LeFormat - 1] * 25.4
Hauteur = H_Livre + 2 * FondPerdu
Largeur = 2 * (L_Livre + FondPerdu) + Dos
unit = scribus.getUnit()
if scribus.newDocument((Hauteur,Largeur),(0,0,0,0),LANDSCAPE,0,UNIT_MM,PAGE_1,0,1):
H1 = FondPerdu + Marge
H2 = H_Livre + FondPerdu - MargesCodeBarres - HauteurCodeBarres
H3 = FondPerdu + H_Livre - Marge
V1 = H1
Va = FondPerdu + L_Livre
V2 = Va - MargesCodeBarres - LargeurCodeBarres
V3 = Va - Marge
V4 = Va + MargesDos
Vb = Va + Dos
V6 = Vb + Marge
V5 = Vb - MargesDos
V7 = Vb + L_Livre - Marge
try:
scribus.setUnit(UNIT_MM)
scribus.setHGuides([H1,H2,H3])
scribus.setVGuides([V1,V2,V3,V4,V5,V6,V7])
scribus.setUnit(unit)
except:
scribus.setUnit(unit)
result = scribus.messageBox(CreaCouvStr5,CreaCouvStr6)
sys.exit(1)
else :
result = scribus.messageBox(CreaCouvStr5,CreaCouvStr7)
Copyright © 2023-2025 : Franck Girapelli, All right reserved - Les contenus de ce site son protégés par les droits d'auteur