Para cadernos simples , você pode fazer isso sozinho.
.notebook
arquivos são simplesmente arquivos .ZIP com um manifesto (usado como uma lombada em ebooks) que permitem navegar pelos arquivos de páginas dentro do bloco de anotações.
E os arquivos de paginação são arquivos no formato SVG, assim você pode converta-os facilmente no Linux, mas também existem ferramentas para o Windows (e até mesmo ferramentas online - eu não sei usá-las para milhares de arquivos, o ToS provavelmente proíbem isso).
Para testar, no Linux ( deve funcionar no Windows também, mas requer a instalação do Cygwin com Perl ), eu tentei:
$ 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
No arquivo de manifesto, eu acho:
<resource adlcp:scormType="asset" href="page0.svg" identifier="pages" type="webcontent">
<file href="page0.svg"/>
<file href="page1377095283484.svg"/>
</resource>
Ao executar o svg2pdf , posso faça com que as duas páginas sejam convertidas em PDF corretamente.
Nesse ponto, uma simples execução do pdftk me permitiu obter um único PDF com as duas páginas.
Resolver tudo isso em um conversor requer alguns ajustes para facilitar as páginas SVG do manifesto (no CPAN, eu tive que force install App::Xml_grep2
devido a uma falha de teste que parecia espúria).
# 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 )
Eu tentei com alguns notebooks criados com o SmartTech Express , e funciona. Eu não posso dar outra garantia.
Uma vez salvo como um script, o acima pode converter recursivamente um grande diretório cheio de arquivos .notebook:
find . -name "*.notebook" -exec /path/to/converter \{\}\;
... no final, ao lado de todos os arquivos .notebook, haverá (bem, deve ...) ser um arquivo .notebook.pdf
com o mesmo nome e conteúdo convertido ( o script pode ser modificado para se livrar da parte .notebook do nome, ou seja, converter Sample.notebook
para Sample.pdf
, usando o utilitário basename
.