Pour les cahiers simples , vous pouvez le faire vous-même.
.notebook
Les fichiers sont simplement des fichiers .ZIP avec un manifeste (utilisé comme une épine dans les livres électroniques) qui vous permettent de naviguer dans les fichiers de page du cahier.
Et les fichiers de page sont au format SVG, vous pouvez donc les convertir facilement sous Linux, mais il existe aussi des outils pour Windows (et même des outils en ligne - je ne sais pas comment les utiliser pour des milliers de fichiers, le ToS l'interdit probablement) .
Pour tester, sous Linux ( cela devrait fonctionner aussi sous Windows, mais cela nécessite l'installation de Cygwin avec Perl ), j'ai essayé:
$ unzip -l Untitled.notebook
Archive: Untitled.notebook
Length Date Time Name
--------- ---------- ----- ----
11715 2013-08-21 14:28 page1377095283484.svg
1251 2013-08-21 14:28 imsmanifest.xml
7137 2013-08-21 14:28 page0.svg
--------- -------
20103 3 files
Dans le fichier manifeste, je trouve:
<resource adlcp:scormType="asset" href="page0.svg" identifier="pages" type="webcontent">
<file href="page0.svg"/>
<file href="page1377095283484.svg"/>
</resource>
En exécutant svg2pdf , les deux pages peuvent être converties correctement au format PDF.
À ce stade, une simple exécution de pdftk m'a permis d'obtenir un seul fichier PDF avec les deux pages.
Pour envelopper tout cela dans un convertisseur, il faut un peu peaufiner les pages SVG du manifeste (dans CPAN, je devais le faire à force install App::Xml_grep2
cause d'une erreur de test qui paraissait fallacieuse).
# Temporary files named from 1 to N. It is unlikely that
# any legitimate files exist with such names, but this has
# better be done in a temporary directory, just in case.
unzip $1
if [ ! -r imsmanifest.xml ]; then
echo Sorry, this notebook seems to have no manifest.
exit 2
fi
# Get page numbers
XPATH="//*[@identifier='pages']/*[local-name()='file']/@href"
PAGES=`xml_grep2 -t "$XPATH" imsmanifest.xml`
# Remove manifest, we need it no more.
rm imsmanifest.xml
N=0
for page in $PAGES; do
# Create
N=$[ $N + 1 ]
svg2pdf $page $N
# Remove SVG page, we need it no more.
rm $page
done
pdftk $( seq 1 $N ) output $1.pdf
# Now remove temporary files
rm $( seq 1 $N )
Je l'ai essayé avec quelques ordinateurs portables créés avec SmartTech Express , et cela fonctionne. Je ne peux donner aucune autre garantie.
Une fois enregistrés en tant que script, les éléments ci-dessus peuvent convertir de manière récursive un répertoire volumineux contenant des fichiers .notebook:
find . -name "*.notebook" -exec /path/to/converter \{\}\;
... à la fin, à côté de chaque fichier .notebook, il y aura (enfin, il devrait ...) un .notebook.pdf
fichier du même nom et du contenu converti (le script peut être modifié pour supprimer la partie .notebook du nom, c’est-à-dire convertir Sample.notebook
en Sample.pdf
utilisant l’ basename
utilitaire).