Contenu | Rechercher | Menus

Annonce

DVD, clés USB et t-shirts Ubuntu-fr disponibles sur la boutique En Vente Libre

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 24/07/2021, à 11:41

geneyop

[RESOLU] Ajouter des marges de reliure droite/gauche à un PDF

Bonjour,

A partir d'un PDF dont les marges sont identiques à droite et à gauche, y a-t-il un moyen pour élargir la marge de gauche des pages impaires et la marge de droite des pages paires (ou inversement) ?
La marge opposée pourrait à l'inverse être réduite.

Merci de votre aide

Dernière modification par geneyop (Le 07/08/2021, à 01:51)

Hors ligne

#2 Le 25/07/2021, à 00:14

Vobul

Re : [RESOLU] Ajouter des marges de reliure droite/gauche à un PDF

C'est quelque chose qui se fait avant l'export en pdf je pense. Tu peux aussi tenter d'utiliser Scribus si tu veux faire des trucs un peu plus poussés.


Vobul

Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.

Hors ligne

#3 Le 25/07/2021, à 09:58

eric63

Re : [RESOLU] Ajouter des marges de reliure droite/gauche à un PDF

Salut
En cherchant livret pdf je suis tombé sur ces posts et sur celui ci en particulier il me semble que ça répondra à tes attentes

Dernière modification par eric63 (Le 25/07/2021, à 09:58)


Kubuntu 21.04 - 64 bits + backports beta = plasma 5.22.4 KDE 5.85.0 Qt 5.15.2 et noyau 5.11.0-34  4x intel i5-4570 3.2 Ghz 12 Go nvidia gtx 750
Comment installer une brother avec le script de demonipuch

J’utilise le clavier french AFNOR de chez LDLC c‘est fort

Hors ligne

#4 Le 01/08/2021, à 23:41

geneyop

Re : [RESOLU] Ajouter des marges de reliure droite/gauche à un PDF

Bonjour,

Merci Vobul et Eric pour vos réponses.
Je viens de passer une semaine à essayer de me dépatouiller avec les infos contenues dans les liens que vous m'avez donnés ... mais je n'y arrive toujours pas.

J'ai essayé avec Scribus (qui a l'air d’être un bon logiciel, même s'il est surdimensionné par rapport à mon petit besoin). J'arrive à créer un cadre dans une page et à y insérer une page PDF, mais je n'arrive pas à intégré un PDF de plusieurs pages.

J'ai aussi essayé pdfjam (proposé dans le lien fourni par eric63). Pdfjam est une surcouche au-dessus de pdfpages et permet d'accéder à la plupart des commandes de pdfpages ... mais malheureusement pas celle dont j'ai besoin (commande "offset"). J'ai donc cherché à utiliser directement pdfpages C'est un ensemble de fichiers à installer dans l'arborescence TeX. Je n'ai jamais utilisé LaTeX et il y a des tonnes d'utilitaires LaTeX dans la logithèque Kubuntu (Gummi, Texmaker, Kile, Lyx, TexStudio, etc...). Lequel faut-il installer pour utiliser pdfpages ?

Merci d'avance.

Hors ligne

#5 Le 02/08/2021, à 11:51

kamaris

Re : [RESOLU] Ajouter des marges de reliure droite/gauche à un PDF

pdfcrop peut faire ça :

pdfcrop --margins "<left> <top> <right> <bottom>" in.pdf out.pdf

Voir pdfcrop --help (pas de man apparemment).

Par contre, pour distinguer pair et impair, il semble qu'il faille :
- passer par pdfseparate pour séparer le pdf en pages (voir man pdfseparate) ;
- faire un petit script* pour appliquer pdfcrop aux pages paires et impaires avec les marges qui vont bien ;
- réassembler le tout avec pdfunite (voir man pdfunite).

--
* Il s'agit simplement d'une boucle for avec un test sur la parité du numéro de page.

Hors ligne

#6 Le 04/08/2021, à 22:32

geneyop

Re : [RESOLU] Ajouter des marges de reliure droite/gauche à un PDF

Merci Kamaris.

J'ai maintenant toutes les billes pour me construire une solution.
En fait pdfcrop ne convient pas car il supprime les marges avant d'en mettre de nouvelles, ce qui n'est pas ce que je cherche car les pages n'ont pas toutes les même marges à l'origine.
Mais j'ai regardé de nouveau pdfjam et il supporte bien la commande "offset" contrairement à ce que je pensais.
En revanche, je n'arrive pas à indiquer à pdfjam qu'il y a des pages gauche et droite. Donc avec pdfseparate et pdfunite, j'ai tout ce qu'il me faut.

Merci à tous pour votre aide.

Hors ligne

#7 Le 05/08/2021, à 11:31

kamaris

Re : [RESOLU] Ajouter des marges de reliure droite/gauche à un PDF

Il faut bien reconnaitre que tout ça n'est pas très intuitif ni pratique.
Quand on a la chance de vouloir faire exactement ce que propose un de ces outils, ça va vite et bien, mais dès qu'on veut bricoler un peu, on est vite coincé.

Ça fait un moment que je ne l'ai pas utilisé, mais avant il y avait master pdf editor : https://code-industry.net/free-pdf-editor/
Il est propriétaire et bridé dans sa version gratuite (au moins à partir d'une certaine version), mais c'est un éditeur de pdfs digne de ce nom, capable de faire ce que tu demandes ici (au moins dans sa version payante…).

Hors ligne

#8 Le 07/08/2021, à 01:50

geneyop

Re : [RESOLU] Ajouter des marges de reliure droite/gauche à un PDF

Pour ceux qui auraient le même besoin que moi, voici le script que j'ai écrit.
Il est améliorable, notamment dans l'analyse des paramètres, ou pour demander confirmation d'écraser le fichier de sortie s'il existe déjà.

#! /bin/bash

#==================================================================================================
#                       CREATION DE MARGES DE RELIURE DANS UN DOCUMENT PDF
#                          (nécessite le package texlive-extra-utils)
#==================================================================================================

function usage
{
    echo
    echo Ajoute une marge de reliure droite/gauche à un document PDF.
    echo Le contenu des pages impaires est décalé vers la droite et le contenu des pages paires est décalé vers la gauche.
    echo
    echo "Syntaxe : $0 [-l <longueur>] <pdf_entrée> [<pdf_sortie>]"
    echo "          <longueur> : longueur du décalage en millimètres (défaut = 10)"
    echo
}

#---------- Analyse des paramètres

if [ $# = 0 ]
then
    usage
    exit
fi

if [ "$1" = "-l" ]
then
    longueur=$2
    pdf_in=$3
    pdf_out=$4
else
    longueur=10
    pdf_in=$1
    pdf_out=$2
fi

if [ -z "$pdf_out" ]
then
    pdf_out="${pdf_in}-reliure"
fi

#---------- Traitement du PDF

pdfseparate "$pdf_in" tmp-pdfreliure-%d.pdf

page=1
pages_out=""
while [ -e tmp-pdfreliure-$page.pdf ]
do
    pdfjam -q tmp-pdfreliure-$page.pdf --offset "${longueur}mm 0"
    rm tmp-pdfreliure-$page.pdf
    pages_out="$pages_out tmp-pdfreliure-$page-pdfjam.pdf"
    ((page++))
    ((longueur = -longueur))
done

pdfunite $pages_out "$pdf_out"

rm tmp-pdfreliure-*.pdf

Dernière modification par geneyop (Le 07/08/2021, à 01:58)

Hors ligne

#9 Le 07/08/2021, à 11:17

kamaris

Re : [RESOLU] Ajouter des marges de reliure droite/gauche à un PDF

Ah oui effectivement, je n'avais pas bien compris le fonctionnement de l'option --offset de pdfjam à la lecture de l'aide.
Ça marche pas mal dans ce cas, mais encore faut-il que la marge que l'on souhaite rajouter d'un côté soit disponible de l'autre.

Pour le cas général, je pense avoir trouvé une solution en utilisant l'option --bbox de pdfcrop (dont je n'avais pas bien compris non plus le fonctionnement en première lecture).
On récupère d'abord les dimensions du pdf par pdfinfo :

dims=( $(pdfinfo in.pdf | sed -En 's/^Page size: *([0-9]+) *x *([0-9]+)/\1 \2/p') )

Puis on passe ces dimensions comme boite englobante en rajoutant les marges qu'on veut dans pdfcrop :

pdfcrop --bbox "0 0 ${dims[0]} ${dims[1]}" --margins "<left> <top> <right> <bottom>" in.pdf out.pdf

 
EDIT: On peut aussi diminuer les marges via la boite englobante si on veut.
Par exemple pour retrancher 10 pts à gauche et les ajouter à droite :

pdfcrop --bbox "10 0 ${dims[0]} ${dims[1]}" --margins "0 0 10 0" in.pdf out.pdf

Et pour retrancher 10 pts à droite et les ajouter à gauche :

pdfcrop --bbox "0 0 $((dims[0] - 10)) ${dims[1]}" --margins "10 0 0 0" in.pdf out.pdf

Dernière modification par kamaris (Le 07/08/2021, à 11:39)

Hors ligne