Navigation überspringen direkt zum Inhalt...

So entsteht das Büchlein zum Ausdrucken

Wie ich [letzte Woche berichtet habe](/2015/07/das-wort-2016-spruch-nester/), läuft aktuell die Vorbereitung für Das Wort 2016. Heute abend allerdings erinnerte mich mein Kalender an das Büchlein zum Ausdrucken.

Das Büchlein enthält Das Wort für einen Monat in jeweils zwei Sprachen. Einige Mal im Jahr erstelle ich die Büchlein für ein paar Monate im Voraus. Nun schaute ich in der Downloadseite nach - tatsächlich, es gab keine Büchlein für August, und wir haben schon den 13. Juli!

Downloadseite für das Büchlein zum Ausdrucken

Also beschloss ich, Das Wort 2016 heute Abend warten zu lassen und stattdessen die fehlenden Büchlein für den Rest des Jahres zu erstellen.

Wie geht das?

Als Grundlage dienen die .twd-Dateien, die auf unserer Webseite frei verfügbar sind. Für ein Büchlein mit Englisch und Deutsch verwende ich ein leeres Dokument im Open Document-Format (.odt). Das Dokument enthält 4 Seiten: vorn, links, rechts, hinten. Ein Perl-Skript auf meinem Rechner holt sich die englische und deutsche .twd-Datei für den betreffenden Monat und fügt die Sprüche in das leere Dokument ein.

Genau genommen holt es die Datei content.xml aus der .odt-zip-Datei und füllt die Sprüche mit Suchen/Ersetzen in die im Dokument markierten Abschnitte. Dabei erzeugt das Skript so viele Seiten, wie für den Monat benötigt werden.

Das Umsortieren der Seiten ist eine eigene Herausforderung - damit Sie die ausgedrückten DIN A4-Seiten als A5-Büchlein verwenden können. Im Perl-Skript sieht das so aus:

Sequence of content page numbers for booklet of 4 sheets, front + rear, 4 content pages per sheet page.

Title page has page number 1.

my @PAGESEQUENCE = $sequence ?

front 1,2,3,4, rear 1,2,3,4

(
  32,  1,  30,  3,
  28,  5,  26,  7,
  24,  9,  22, 11,
  20, 13,  18, 15,
   2, 31,   4, 29,
   6, 27,   8, 25,
  10, 23,  12, 21,
  14, 19,  16, 17,
) :
# front 1, rear 1, ... front 4, rear 4
(
  32,  1,  30,  3,    2, 31,   4, 29,
  28,  5,  26,  7,    6, 27,   8, 25,
  24,  9,  22, 11,   10, 23,  12, 21,
  20, 13,  18, 15,   14, 19,  16, 17,
);

my $nPaperPages = scalar(@PAGESEQUENCE); for (my $i = 0; $i < $nPaperPages; ++$i) {

$c== 0: $PAPERPAGES[ 0] = $CELLS[ 1]

 # $c== 1: $PAPERPAGES[ 1] = $CELLS[30]
 # $c== 5: $PAPERPAGES[ 5] = $CELLS[ 0]
 # $c==31: $PAPERPAGES[31] = $CELLS[14]
 # may leave some @PAPERPAGES undefined (at end of month)
 $PAPERPAGES[$i] = $ContentPages-&gt;[$PAGESEQUENCE[$i]-1];

}


Das Perl-Skript erzeugt Dateien mit Namen wie en_de_TheWordMonthly_2015-08.odt. In einer Schleife führe ich das Skript für die Monate August bis Dezember 2015 für die Erst-Sprachen en,fr,he,pt,tr,zh-Hans,sw und die Zweit-Sprachen en oder de aus. Insgesamt erzeugt das Skript dabei 45 Dokumente.

Dann gibt es noch eine Schwierigkeit: die veröffentlichten Sprüche sind so auf verschiedene Zeilen verteilt, dass sie gut gelesen werden können. Dabei gilt die Regel, dass keine Zeile länger als 65 Zeichen sein soll. Das Büchlein soll aber im A5-Format ausgedruckt werden, deshalb sind einige Zeilen im Büchlein immer noch zu lang. Einige einzelne Worte werden auf eine neue Zeile verschoben, was gar nicht gut aussieht! Deshalb schaue ich jedes Dokument am Bildschirm durch und korrigiere überlange Zeilen so, dass die Zeilenumbrüche an sinnvollen Stellen vorkommen.

Eine langwierige Aufgabe - 45 Dokument jeweils mit 30 oder 31 Sprüchen in zwei Sprachen durchsehen... Allerdings kommen die englischen und deutschen Sprüche in mehreren Dokumenten vor, jeweils mit einer anderen Sprache zusammen. Daher kann das Perl-Skript - gesteuert durch eine XML-Datei - auch automatisch Zeilenumbrüche einfügen. Außerdem kann es ganze Zeilen etwas kleiner wiedergeben: mit 10pt statt 10.5pt Schriftgröße passen überlange Zeilen manchmal doch in eine Zeile.

Nun gehe ich also zunächst die englischen und deutschen Sprüche durch und notiere alle nötigen Korrekturen in einer XML-Datei:

<bible id="EnglishStandardVersion"> <small id="Gn4v26">At that time</small> <wrap id="Gn18v19">children</wrap> <wrap id="Gn18v19">Lord</wrap>


Dann führe ich das Perl-Skript nochmal aus, so dass es an allen in der XMl-Datei notierten Stellen entweder einen Zeilenumbruch einfügt (wrap) oder die Schriftart verkleinert (small). Dann schaue ich die Dokumente nach verbliebenen überlangen Zeilen vor allem in den anderen Sprachen durch, und exportiere das Dokument in LibreOffice als PDF-Dokument.

Schließlich lade ich die PDF-Dokumente auf den Server:

scp print/TheWordMonthly/TheWordMonthly.pdf ftp...@bible2.net:www/download/TheWordMonthly/


Und siehe da, der Abend ist gelungen, die fehlenden Büchlein für August sind da:

Downloadseite für das Büchlein zum Ausdrucken - mit August

Vielleicht drucken Sie eines aus und lesen es selber oder geben es weiter...

admin | 2015-07-13