Calibre est un logiciel complet pour gérer les livres format epub, pdf, etc.
Installation et mise à jour
Calibre est disponible dans Debian
apt policy calibre
calibre:
Installé : (aucun)
Candidat : 5.33.2+dfsg-1
Table de version :
5.33.2+dfsg-1 990
990 https://cdn-aws.deb.debian.org/debian bookworm/main amd64 Packages
990 https://cdn-aws.deb.debian.org/debian bookworm/main i386 Packages
500 https://cdn-aws.deb.debian.org/debian sid/main amd64 Packages
500 https://cdn-aws.deb.debian.org/debian sid/main i386 Packages
5.12.0+dfsg-1 500
500 https://cdn-aws.deb.debian.org/debian bullseye/main amd64 Packages
500 https://cdn-aws.deb.debian.org/debian bullseye/main i386 Packages
Mais j’utilise la version des developpeurs
sudo -v && wget -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sudo sh /dev/stdin
~/Documents/Livres$ calibre --version
calibre (calibre 5.33.2)
Edition d’un livre
avec ebook-edit en ligne de commande
~/Documents/Livres$ ebook-edit new.epub
ou par le menu graphique dans Calibre
Quelques astuces
Il s’agit d’utilise des tags du langage html
Changement de la taille du texte
<p style="font-size:14px;"> Texte de la phrase </p>
Retour à la ligne
<br>
Saut de page imposé pour la conversion pdf
<div style="page-break-before:always"></div>
Lien interne avec tag « id »
La page ajoutée doit suivre le nommage des fichiers du livre.
Structure : les fichiers html sont souvent dans un dossier OEBPS
Exemple OEBPS/Text/section1.xhtml
lien dans le texte de départ, on choisit un id selon les règles de nommage
Le fichier de départ s’appelle PL4.xhtml
<span id="retpetite"><a href="section1.xhtml#petite">On peut admirer sa silhouette à Washington, Paris, Londres, New York, Dresde ou Copenhague</a></span>
lien de retour dans le texte d’arrivée
Le fichier d’arrivée s’appelle section.xhtml
Avec un texte Retour pour le lien de retour vers le texte de départ initial.
<h2 id="petite">La Petite Danseuse.</h2>
<span><a href="PL4.xhtml#retpetite">Retour</a> </span>
NB la balise span n’a aucun rôle particulier si ce n’est de définir les paramètres pour le texte qu’elle encadre.
Conversion d’un epub en pdf
En mode commande
/usr/bin/ebook-convert livre.epub livre.pdf
Plus personnalisé
ebook-convert nom.epub nom.pdf --pdf-serif-family "Georgia" --pdf-default-font-size 13 --paper-size letter --pdf-footer-template "<footer style='justify-content: flex-end'> <div>_TITLE_</div> <div>-</div><div>_AUTHOR_</div> <div>-</div> <div> 2022-</div> <div>_PAGENUM_</div>/<div>_TOTAL_PAGES_</div> </footer>"
Dans l’interface graphique calibre
Cliquer sur le bouton convertir, selectionner sortie pdf
Definition d’une image pour pagination optimale.
Pour qu’une image, orientation portrait, occupe une page entière de la sortie en pdf A4 (210×297 mm) la bonne définition est 596×842 px en 100 dpi dans le fichier epub.
Dans les deux unités le ratio est 0,707.

C’est ce que je considère convenable, pour en savoir plus…
Sortie pdf
Création d’un entête de page en texte
<header style="justify-content: space-between; font-size: smaller"> <div> Les Éditions du Confinement. 25 Décembre 2020.</div> </header>
Création d’un entête de page avec paramètre
<header><div>_TITLE_</div></header>
Création d’un pied de page
<footer style="justify-content: space-between; font-size: smaller">
<div>_SECTION_</div>
<div>_AUTHOR_</div>
<div>_PAGENUM_</div>/<div>_TOTAL_PAGES_</div>
<div> 25-12-2021</div>
</footer>
Sortie pdf → Affectation des numéros de pages
Décalage de deux pages
if (n<2) 0; else n – 2;
Aide sur la sortie pdf
Mode commande
On peut utiliser les commandes ebook-…..
/usr/bin$ ls ebook*
ebook-convert ebook-device ebook-edit ebook-meta ebook-polish ebook-viewer
Manuel de l’utilisateur
https://manual.calibre-ebook.com/fr/index.html
Feuille de style que j’aime bien.
Je l’appelle perso.css dans le fichier .epub
@namespace h "http://www.w3.org/1999/xhtml";
@page {
margin: 5pt;
}
body
{
font-family: "Georgia";
font-size: large;
}
h1, h2, h3, h4, h5, h6,
.title, .subtitle, .noindent, .marginalia,
.alinea, .retrait, .signature, .salutation,
.caption, .illustration, .quotations, .center, .right {
text-indent: 0;
}
h1, h2, h3, h4, h5, h6 {
font-weight: normal;
text-align: center;
page-break-after: avoid;
}
h2, h3 {
margin-top: 2em;
margin-bottom: 2em;
}
h1 {
font-size: 1.8em;
margin-top: 30%;
margin-bottom: 5%;
}
h2 {
font-size: 1.4em;
page-break-before: always;
}
h3 {
font-size: 1.2em;
}
h4 {
font-size: 1.1em;
margin-top: 1.5em;
margin-bottom: 1.5em;
}
h1 > b, h2 > b {
font-weight: normal;
}
p {
text-align: justify;
text-indent: 1.3em;
margin: 0;
}
/******************************
Styles W2E
*******************************/
/* Titre principal */
.title {
text-align: center;
font-size: 1.2em;
}
/* Sous-titres */
.subtitle {
text-align: center;
margin-bottom: 10%;
}
/* Formule finale */
.formule {
margin-top:10%;
text-align: center;
}
/* Signature */
.signature {
margin-top:10%;
text-align: center;
}
/* Alinea neg */
.alinea {
margin-top:10%;
text-align: center;
}
/*Retrait de liste */
.retrait {
margin-top:10%;
text-align: center;
}
/* Retrait corps de texte */
.noindent {
margin-left: 2em;
text-align: justify;
font-size: 0.9em;
}
/* Notes en marge */
.marginalia {
margin-left: 35%;
text-align: justify;
}
/* Citation */
.quotations {
margin-left: 2em;
margin-bottom: 0;
text-align: left;
font-size: 0.9em;
font-style: italic;
}
/* Legende */
.caption {
text-align: center;
font-size: .80em;
margin-top: 50%;
}
/* Illustration */
.illustration {
text-align: center;
}
/* Alignements
-----------------------------*/
.center {
text-align: center;
}
.right {
text-align: right;
margin-right: 0.5em;
}
/* Divers
---------------------------*/
sup {
font-size: 80%;
vertical-align: 30%;
}
/* Petites majuscules */
.fakesmallcaps {
font-size: .75em;
}
.normal {
font-style: normal;
}
.linethrough {
text-decoration: line-through;
}
.underline {
text-decoration: underline;
}
/* Notes de fin */
.footnote {
font-size: .90em;
margin-left: 1em;
text-indent: -1.5em;
text-align: justify;
}
/******************************
Styles additionnels
*******************************/
.exergue {
text-align: right;
font-style: italic;
margin-right: 1em;
margin-bottom: 1em;
margin-top: 10%;
font-size: 0.9em;
}
.mentions {
text-align: center;
margin-top: 10%;
font-size: 0.9em;
}
/* Image couverture */
.imgcover {
max-width: 100%;
height: 100%;
}
Exemple de fichier xhtml dans le fichier epub.
<?xml version='1.0' encoding='utf-8'?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Musidora</title>
<link href="perso.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<h1>A propos de Musidora.</h1>
<p>Vedette du cinéma français des années 1910, Musidora fut de son vivant un mythe pour une société bouleversée par la Première Guerre mondiale.</p>
<p>
<figure><img alt="Image" src="jeune.jpg"/></figure>
<figure><img alt="Image" src="Musidora.png"/><figcaption>Musidora , Jeanne Roques.</figcaption></figure></p>
</body>
</html>
Exemple
Normaliser un fichier epub
Si des fichier xhtml sont trop volumineux, exemple ce code d’erreur à la vérification « Ce fichier HTML est plus grand que 260 KB. Des fichiers HTML trop grands peuvent entraîner des problèmes de performance sur certains lecteurs de livre numérique. Considérez la possibilité de fractionner ce fichier en plus petites sections. »
ebook-convert 'livre.epub' 'livre-normalisé.epub' --flow-size 256
Pour en savoir plus sur le html
https://fr.w3docs.com/apprendre-html/tableau-des-tags-html.html