Pages : 1
#1 Le 19/05/2016, à 17:27
- loke
[RESOLU] PDF en CBR
Bonjour,
j’ai un tout petit script pour nautilus
qui me permet de transformer un pdf en cbr
#!/bin/sh
# Transforme les pdf en cbr
pdfimages -j *.pdf Images
rar a votre_archive.cbr *.jpg
rm *.jpg
mes problèmes :
- l’impossibilité de l’appliqué dans un dossier où il y a plusieurs pdf
- ne récupère pas le nom du pdf pour le mettre dans le cbr
- impossibilité de le rendre récursif au sous-dossier
si l’un d’entre vous a une solution à me proposer, je suis preneur
Merci de vos réponses éventuelles
Dernière modification par loke (Le 20/05/2016, à 10:06)
Hors ligne
#2 Le 19/05/2016, à 21:48
- ares
Re : [RESOLU] PDF en CBR
Bonsoir loke,
Juste une question :
Quel est l’intérêt de transformer un "pdf" en "cbr" ?
Il y'a perte de toutes les infos (mot cles, index, sommaire, vignette, etc) qui font la particularité de ce format ISO.
@+
Le droit d'emmerder Dieu BNF
Hors ligne
#3 Le 19/05/2016, à 23:21
- melixgaro
Re : [RESOLU] PDF en CBR
salut,
même remarque que ares sur le pourquoi de la conversion. (juste par curiosité, tu fais évidemment comme tu veux et selon tes besoins ;-))
proposition de script
#!/bin/bash
# Transforme les pdf en cbr
filename="${1}"
pdfimages -j "${filename}" "${filename/.pdf}"
rar a "${filename/.pdf/.cbr}" "${filename/.pdf}"*.jpg
echo rm "${filename/.pdf}"*.jpg
à enregistrer comme pdf2cbr.sh et à rendre exécutables ainsi
chmod u+x pdf2cbr.sh
à lancer ainsi
./pdf2cbr.sh /chemin/vers/le/fichier.pdf
Explication :
Ça va utiliser le nom du fichier pdf, pris en argument, à chaque étape pour essayer de ne pas mélanger les pommes et les poires ou effacer trop de jpg. En particulier, le fichier cbr produit aura le même nom que le fichier pdf, à l'extension près.
/!\ J'ai mis un "echo rm" pour que tu puisses tester et contrôler ce qui sera effacé. Si ça te semble bon, efface le echo ultérieurement.
/!\ Normalement, avec les ", il te sera possible de travailler avec des noms de fichier contenant des espaces. À vérifier si le cas se présente.
/!\ Adapte le chemin vers ton fichier pdf.
Pour la récurrence une solution simple serait :
for filename in /chemin/vers/tous/les/pdf/*.pdf; do echo ./pdf2cbr.sh "${filename}"; done
Là encore, note que j'ai mis un écho devant la commande pour que tu contrôles que la boucle va lancer le script sur les bons fichiers. Après test, efface le echo et relance la boucle for.
Dernière modification par melixgaro (Le 19/05/2016, à 23:56)
Linux depuis ~2007. Xubuntu seulement.
Hors ligne
#4 Le 19/05/2016, à 23:49
- loke
Re : [RESOLU] PDF en CBR
Merci pour vos réponses,
Le but est de transformer des PDF en cbr pour pouvoir les lire sur komik sur android, je préfère ce mode de visionnage.
melixgaro j’ai testé ton scripte est il me retourne
./pdf2cbr.sh: 4: ./pdf2cbr.sh: Bad substitution
Dernière modification par loke (Le 19/05/2016, à 23:49)
Hors ligne
#5 Le 19/05/2016, à 23:56
- melixgaro
Re : [RESOLU] PDF en CBR
ah oui désolé, c'est parce que j'ai utilisé des astuces bash qui ne sont pas connues par sh
il faut remplacer #!/binsh par #!/bin/bash
je modifie le post ci-dessus
Linux depuis ~2007. Xubuntu seulement.
Hors ligne
#6 Le 20/05/2016, à 08:02
- ares
Re : [RESOLU] PDF en CBR
Bonjour,
Le but est de transformer des PDF en cbr pour pouvoir les lire sur komik sur android,(...)
Ok ! Mais ne pas ignorer les faiblesses de ce type de visionnage :
* perte de qualité à l'affichage
* plus lent
* fichier beaucoup plus volumineux
Le format "cbr" je l'utilise pour lire des "BDs"
Pour info des lecteurs pdf sous Android ---> ICI
@+
Le droit d'emmerder Dieu BNF
Hors ligne
#7 Le 20/05/2016, à 09:15
- gigiair
Re : [RESOLU] PDF en CBR
proposition de script
#!/bin/bash # Transforme les pdf en cbr filename="${1}" pdfimages -j "${filename}" "${filename/.pdf}" rar a "${filename/.pdf/.cbr}" "${filename/.pdf}"*.jpg echo rm "${filename/.pdf}"*.jpg
Pourquoi ne pas enregistrer les images dans un fichier temporaire que l'on peut supprimer après traitement ? Ça éviterait tout risque de collision avec des fichiers existants.
Je propose d'ajouter les lignes suivantes
#!/bin/bash
# Transforme les pdf en cbr
filename="${1}"
+REPTEMP=/tmp/$(mktemp pdf2cbrXXXX)
+REPACT=$(pwd)
+cd $REPTEMP
pdfimages -j "${filename}" "${filename/.pdf}"
rar a "${filename/.pdf/.cbr}" "${filename/.pdf}"*.jpg
+cp "${filename/.pdf/.cbr}" $REPACT
- echo rm "${filename/.pdf}"*.jpg
Aux erreurs de syntaxe près...
edit : J'ai commis un script que j'ai testé un peu plus loin. Comme ce n'est pas franchement un problème compliqué, il a des chances de fonctionner sans trop d'erreurs. Je ne suis pas un pro du scripting.
Dernière modification par gigiair (Le 20/05/2016, à 15:57)
--
JJR.
Hors ligne
#8 Le 20/05/2016, à 09:27
- melixgaro
Re : [RESOLU] PDF en CBR
oui, ma proposition de script est clairement améliorable et peut être rendue plus robuste. je l'ai signalé dans mon premier message… merci d'avoir améloré cet aspect-là :-)
Linux depuis ~2007. Xubuntu seulement.
Hors ligne
#9 Le 20/05/2016, à 10:06
- loke
Re : [RESOLU] PDF en CBR
Merci pour votre aide ça fait le travail parfaitement.
Merci ares pour ton lien, pour mes doc j’utiliser PDF Reader.
Les CBR je l’utilise plus pour les magasines.
Hors ligne
#10 Le 20/05/2016, à 15:53
- gigiair
Re : [RESOLU] PDF en CBR
J'ai un peu revu le script, et surtout je l'ai testé.
Il y a peut-être quelques erreurs, mais je l'ai testé sur un fichier pdf avec des espaces dans le nom. Il marche.
Je l'ai testé aussi sur un fichier non-pdf ça renvoie un message d'erreur.
l'archive crée, je l'ai visualisée avec evince-previewer avec succès.
#!/bin/bash
# ------------------------------------------------------------------
# Author: gigiair
# Version: $Id: pdf2chr.sh,v 0.0 2016/05/20 11:00:27 debjjr Exp
# Title pdf2chr.sh
# Description : Extrait les images jpg d'un fichier pdf et les archive dans un fichier chr
# ------------------------------------------------------------------
VERSION=001
SUBJECT=conversion
USAGE="pdf2chr.sh [options] <fichier-PDF>"
# --- Options processing -------------------------------------------
if [ $# == 0 ] ; then
echo $USAGE
exit 1;
fi
while getopts ":i:vh" optname
do
case "$optname" in
"v")
echo "Version $VERSION"
exit 0;
;;
"i")
echo "-i argument: $OPTARG"
;;
"h")
echo $USAGE
exit 0;
;;
"?")
echo " option inconnue $OPTARG"
exit 0;
;;
":")
echo "No argument value for option $OPTARG"
exit 0;
;;
*)
echo " erreur inconnue dans le traitement des options"
exit 0;
;;
esac
done
shift $(($OPTIND - 1))
# --- Locks -------------------------------------------------------
LOCK_FILE=/tmp/$SUBJECT.lock
if [ -f "$LOCK_FILE" ]; then
echo "Script is already running"
exit
fi
trap "rm -f $LOCK_FILE" EXIT
touch $LOCK_FILE
# --- Body --------------------------------------------------------
# SCRIPT LOGIC GOES HERE
RARCOMMAND="$(which rar) a"
PDFIMAGES=$(which pdfimages)
# Vérifions que le fichier fourni en argument est bien un pdf
MIMETYPE=$(file -ib "$1"|cut -d\; -f1)
PDFTYPE="application/pdf"
if [[ "$MIMETYPE" != $PDFTYPE ]]; then
echo "Le fichier \" $1 \" n'est probablement pas un fichier pdf"
exit 0
fi
# Nom du fichier :
FILENAME=$(realpath "$1")
# Nom de base sans extension :
FILENAMEBASE=$(basename "${FILENAME%.*}")
# Répertoire temporaire dans /temp
REPTEMP=$(mktemp -d /tmp/pdf2cbrXXXX)
# images extraite dans $REPTEMP
$PDFIMAGES -j "$FILENAME" "$REPTEMP/$FILENAMEBASE"
# Création de l'archive
$RARCOMMAND "$FILENAMEBASE.cbr" "$REPTEMP/$FILENAMEBASE*.jpg"
# Un coup de balai dans /tmp
rm -rf $REPTEMP
# -----------------------------------------------------------------
Je me suis servi d'un modèle de script fourni par Emacs, la gestion des options et la gestion des appels multiples n'est pas de moi, mais du package templates.el
--
JJR.
Hors ligne
#11 Le 12/11/2017, à 13:13
- UbLo697
Re : [RESOLU] PDF en CBR
Bonjour
Après l'avoir découverte, je déterre cette discussion car je rencontre une difficulté et souhaiterais une évolution. Le seul soucis, c'est que je ne m'y connais en rien en scripting
1. Le script à la fin de la discussion fonctionne parfaitement même en mettant *.pdf en variable La difficulté est que la solution est basée sur rar qui est un produit payant qui se bloque au bout de 30 (?) Utilisations. Serait-il possible d'utiliser un logiciel libre ?
2. Le script fonctionne mais doit être relancé pour chaque fichier. Serait il possible qu'il prenne en compte tous les pdf du répertoire dans lequel les scripts est installé ?
Merci de vos réponses
@+
Hors ligne
#12 Le 12/11/2017, à 14:29
- gigiair
Re : [RESOLU] PDF en CBR
Bonjour
Après l'avoir découverte, je déterre cette discussion car je rencontre une difficulté et souhaiterais une évolution. Le seul soucis, c'est que je ne m'y connais en rien en scripting
Celui ci n'est pas vraiment difficile à comprendre.
Pour l'adapter à une autre version de rar, il suffit de changer la ligne 63
RARCOMMAND=="$(which rar) a"
$(which rar) est une commande qui rennvoie l'URI de la commande rar, en général c'est /usr/bin/rar mais which permet au script de s'adapter à toutes les configurations disposant de la commande rar.
En définitive, $RARCOMMAND est équivalent à /usr/bin/rar a
Je ne connais pas d'équivalent libre à rar. D'après google il en existe, mais je suis étonné que Debian ou Ubuntu n'en propose pas.
Dernière modification par gigiair (Le 12/11/2017, à 15:48)
--
JJR.
Hors ligne
#13 Le 12/11/2017, à 21:31
- UbLo697
Re : [RESOLU] PDF en CBR
Merci de la réponse.
Je viens de remplacer which rar par which zip sans succès.:(
@+
Hors ligne
#14 Le 15/11/2017, à 22:02
- UbLo697
Re : [RESOLU] PDF en CBR
ET pourtant dans le gestionnaire de fichiers Gnome, si on fait un clic droit, nous avons bien une commande Compresser qui permet de créer un cbr. Quel est le programme utilisé ?
@+
Hors ligne
Pages : 1