Si j'ai bien compris, tu cherche à faire de l'"imposition" (en anglais "booklet").
Voici une solution qui necessite les logiciels suivants :
- Un logiciel de création de PDF
(ex: PDFCreator
https://sourceforge.net/project/showfil ... p_id=57796)
- Multivalent :
http://multivalent.sourceforge.net/
(nécessite l'installation de Java)
Marche à suivre :
- Ecrire le livre sans se soucier de colonnes, ou des numéros de pages
- Générer un fichier PDF depuis le traitement de texte
- Utiliser l'utilitaire Impose de Multivalent
(
http://multivalent.sourceforge.net/Tool ... mpose.html)
Par exemple pour un document de 31 pages :
java -classpath "H:/Apps/Multivalent/Multivalent20060102.jar" tool.pdf.Impose -verbose -dimensions 2x1 -paper 297x210mm -layout "x,1,2,31,30,3,4,29,28,5,6,27,26,7,8,25,24,9,10,23,22,11,12,21,20,13,14,19,18,15,16,17" "H:/Apps/Multivalent/test.pdf"
Générer le layout peut être fastidieux, donc voici ci-joint une petite appli en html, à lancer dans Firefox pour générer la ligne de commande...
(créer un fichier texte contenant le code ci-dessous, et l'enrgistrer au format ".html"... Dommage qu'il n'y ai pas d'upload possible...)
- Code: Tout sélectionner
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Imposition 2x1</title>
<style type="text/css">
<!--
body {
font-family: Georgia, "Times New Roman", Times, serif;
}
label {
display: block;
float: left;
width: 25%;
padding-right: 0.5em;
text-align: right;
}
textarea {
width: 95%;
}
-->
</style>
<script type="text/javascript">
<!--
function run(f) {
var nbpages = parseInt(f.elements['nbpages'].value);
if (! nbpages) return;
var multivalent_path = f.elements['multivalent_path'].value;
var pdf_path = f.elements['pdf_path'].value;
var result = '';
var layout = getMap2x1(nbpages);
result = 'java -classpath "' + multivalent_path + '" tool.pdf.Impose';
result+= ' -verbose';
result+= ' -dimensions 2x1';
result+= ' -paper 297x210mm';
result+= ' -layout "' + layout + '"';
result+= ' "' + pdf_path + '"';
f.elements['result'].value = result;
}
function getMap2x1(n) {
if (! n) return '';
var map = '';
var i, i2, L, p;
L = n + 4 - ((n % 4) ? (n % 4) : 4);
//alert(L);
for (i=0;i<L;i+=4) {
i2 = i/2;
p = L - i2; if (p > n) p = 'x'; if (p != L/2+1) p+= ','; map+= p;
p = i2 + 1; if (p > n) p = 'x'; if (p != L/2+1) p+= ','; map+= p;
p = i2 + 2; if (p > n) p = 'x'; if (p != L/2+1) p+= ','; map+= p;
p = L - i2 -1; if (p > n) p = 'x'; if (p != L/2+1) p+= ','; map+= p;
}
return map;
}
//-->
</script>
</head>
<body>
<h1>Imposition 2x1 avec Multivalent</h1>
<form method="post" action="javascript:void();" onsubmit="run(this);return false;">
<label>Chemin vers Multivalent.jar :</label>
<input type="text" id="multivalent_path" name="multivalent_path" value="H:/Apps/Multivalent/Multivalent20060102.jar" size="100" maxlength="255" />
<br />
<label>Chemin vers Le fichier PDF :</label>
<input type="text" id="pdf_path" name="pdf_path" value="H:/Apps/Multivalent/test.pdf" size="100" maxlength="255" />
<br />
<br />
<label>Nombre de pages :</label>
<input type="text" id="nbpages" name="nbpages" value="31" size="10" maxlength="255" />
<input type="submit" value="GO" />
<hr />
<br />
Ligne de commande Multivalent : <br />
<textarea id="result" name="result" rows="4" cols="80"></textarea>
<br />
</form>
</body>
</html>