Pour un livre, la structure des fichiers est :

  • dossier A : contient des fichiers png de petite résolution
  • dossier C : contient des fichiers png de moyenne résolution
  • dossier D : contient des fichiers png de haute résolution
  • dossier X : contient des XML Alto (compressés en GZ), c'est-à-dire la mise en page de la page avec, entres autres, le texte océrisé
  • fichier X*******.XML : métadonnées associées au livre (auteur, titre, date, nombre de page, et détail de chanque page)
  • fichier D*******.tif : image de la première page
  • fichier I*******.idx : index des pages
  • fichier O*******.off : ?

Téléchargement FTP

modifier

Pour le téléchargement FTP, il est possible d'utiliser le programme "ftp" en ligne de commande de Linux, ou une interface graphique, mais cela donne un résultat de qualité assez exécrable du fait qu'environ un fichier sur deux est corrompu (ou alors j'ai pas eu de chance avec la connexion 512k que j'avais alors).

Il est de loin préférable d'utiliser w:fr:lftp qui d'une part contrôle la qualité des téléchargements (sur 500 fichiers images, c'est intéressant) et d'autre part, tout aussi important, permet de télécharger toute une arborescence.

Session lftp qui télécharge "directory/subdirectory/" en entier :
$ lftp user@example.com
Mot de passe :
lftp user@example.com:~> cd directory/
lftp user@example.com:/directory> mirror --parallel=5 subdirectory/
lftp user@example.com:/directory> exit

Makefile utilisé pour créer des DjVu à partir des fichiers BnF

modifier

Voici le Makefile que j'ai utilisé (expérimentalement) pour créer les DjVu à partir (préférablement) des fichiers images du répertoire D (meilleure résolution). La marche à suivre est indiquée dans le Makefile lui-même.

Fichier nommé "Makefile", à placer dans le répertoire D du livre :

#
# Mode d'emploi :
# 
# 0) logiciels à installer:
#    * sous Ubuntu, installer les paquets (et dépendances) : djvulibre-bin, imagemagick, make
# 
# 1) placer ce fichier (Makefile) dans le répertoire contenant la meilleure résolution d'images (très souvent le répertoire "D")
#    et si le répertoire de meilleure résolution n'est pas "D", l'indiquer (remplacer) ci-dessous
DIRECTORY = D
# 
# 2) Indiquer un nom court du livre, ça servira en interne à identifier chaque page (et sera utile en particulier si on doit traiter les pages indépendamment) 
#    par exemple : "creationfaclibre_vinetboutmy", "nouveaudicoecopolitique_say_chailley", "raouldecambray_anon"
SHORTNAME = titrecourt_auteurcourt
# 
# 3) Indiquer le titre final du livre (d'après [[:s:fr:Aide:Créer un fichier DjVu]] : Auteur - Titre[, date][, tome].djvu)
FILENAME = "Auteur - Titre[, date][, tome].djvu"
# 
# 4) Pour indiquer la résolution, modifier ci-dessous (la résolution peut être indiquée dans le fichier X00*****.XML à la racine du livre : chercher resolution="0300,0300")
RESOLUTION = 300
# 
# 5) Dans le répertoire où se trouve le fichier Makefile, taper dans un terminal "make"
# 
# C'est tout !
# 

#############################################################################################################
#                                                                                                           #
#                     Ne pas toucher au reste du fichier                                                    #
#                                                                                                           #
#############################################################################################################

.PHONY: all clean djvufile minidjvu_tif minidjvu_djvu djvm djvupages djvupages_ppmpbm djvupages_iw44 iw44 mask tif ppm pbm bitonalpage

SHORTNAME := $(SHORTNAME)_
FILES     = $(basename $(shell ls *.png))
NUMBERS   = $(subst $(DIRECTORY),,$(FILES))
IMAGES    = $(addprefix $(DIRECTORY),$(NUMBERS))
DJVUPAGES = $(addsuffix .djvu,$(addprefix $(SHORTNAME),$(NUMBERS)))

all: djvufile

clean: 
	rm -f Makefile~
	rm -f $(DJVUPAGES)
	rm -f $(addsuffix .mask.djvu,$(IMAGES))
	rm -f $(addsuffix .pbm,$(IMAGES))
	rm -f $(addsuffix .ppm,$(IMAGES))


#######################
# Final DjVu creation #
#######################

# ===================
# - Multi-page DjVu -
# ===================

djvufile: djvm


# 1.1) minidjvu with input tif: very simple, somewhat bad quality of the result but small files
minidjvu_tif: tif
	minidjvu $(addsuffix .tif,$(IMAGES)) $(FILENAME)

# 1.2) minidjvu with input one-page DjVu: more difficult, same resulting quality as 1), but permit to tune intermediary step, small files also
minidjvu_djvu: djvupages
	minidjvu $(DJVUPAGES) $(FILENAME)

# 1.3) djvm: the correct way to create multi-page DjVu, the quality and size depend entirely of the intermediary step
djvm: djvupages
	djvm -c $(FILENAME) $(DJVUPAGES)


# =================
# - One-page DjVu -
# =================

djvupages: djvupages_iw44


# 2.1) use PPM and PBM files: bad quality but very small files (~200 Kio for a 28-page book)
djvupages_ppmpbm: ppm pbm mask bitonalpage

bitonalpage: $(DJVUPAGES)

# Uncomment this line to use bitonal images (and comment the corresponding line (no 91) below)
#$(DJVUPAGES): $(addsuffix .mask.djvu,$(subst $(SHORTNAME),,$(basename $@))) $(addsuffix .ppm,$(subst $(SHORTNAME),,$(basename $@)))
#	djvumake $@ Sjbz=$(addsuffix .mask.djvu,$(subst $(SHORTNAME),,$(basename $@))) PPM=$(addsuffix .ppm,$(subst $(SHORTNAME),,$(basename $@)))


# 2.2) use IW44 files: better quality but bigger files (~2 Mio for a 28-page book)
djvupages_iw44: ppm iw44

iw44: $(DJVUPAGES)

# Comment this line to use bitonal images (and uncomment the corresponding line (no 81) above)
$(DJVUPAGES): $(addsuffix .ppm,$(subst $(SHORTNAME),D,$(basename $@)))
	c44 -dpi $(RESOLUTION) $(addsuffix .ppm,$(subst $(SHORTNAME),D,$(basename $@))) $@


############################
# Intermediary image files #
############################

tif: $(addsuffix .tif,$(IMAGES))

ppm: $(addsuffix .ppm,$(IMAGES))

pbm: $(addsuffix .pbm,$(IMAGES))

mask: $(addsuffix .mask.djvu,$(IMAGES))


#########################
# Low-level conversions #
#########################

%.tif: %.png
	convert -trim $< $@

%.ppm: %.png
	convert -trim $< $@

%.pbm: %.png
	convert -trim $< $@

%.mask.djvu: %.pbm
	cjb2 $< $@

TODO liste

modifier

Voici les points à effectuer : (première version discutée entre Seb35 et Plyd 4 avril 2010 à 20:58 (UTC))

  • xsl première page ? titre ? liste des chapitres ?
  • xsl de chaque page, un premier exemplaire, pour djvu --> format ?
  • xsl de chaque page pour wikisource --> format ?
  • xsl extraire une description commons dans leur template
  • cas des livres sans ocr ? upload qd même, sauf si la bnf nous fait une faveur. Demander à la BNF via Rémi. (seb35)
  • voir upload djvu vers wikisource, demander scriptorium, comment faire ? quel format ? (plyd)
  • voir comment automatiser l'upload, qu'est-ce qu'ils exigent ? (voir sur http://commons.wikimedia.org/wiki/Commons:Batch_uploading ) (jean-fred)
  • scripter l'ensemble des makefile avec l'upload, avec le clean (+ trouver une méthode efficace de vérification qu'ils sont corrects?)

Questions de Plyd

modifier
  • Est-ce que tous les textes sont bien en Français ?
  • Est-ce que l'on souhaite mettre tous les livres sur Wikisource ? (je notamment pense à de potentiels doublons, de livres déjà disponibles sur Wikisource)