Je ne sais pas comment faire sous Windows en utilisant cygwin, car j'utilise Ubuntu pour le développement. Mais je pense que la procédure devrait être la même.
- Téléchargez le fichier mupdf-0.9-source.tar.gz ici : http://code.google.com/p/mupdf/downloads/list?q=source
- Télécharger le fichier mupdf-thirdparty.zip
- Extraire les sources. Par défaut elles seront extraites dans le dossier : mupdf-0.9/
- Extraire le fichier mupdf-thirdparty.zip dans le dossier mupdf-0.9/.
- Construire le projet mupdf-0.9 (Pour Windows, vous devez utiliser VS comme il est déclaré dans les fichiers readme).
- Ensuite, allez dans le dossier mupdf-0.9/Android/
- Exécuter ndk-build
- Vous pouvez obtenir les erreurs suivantes :
Compile thumb : mupdfthirdparty <= jbig2.c In file included from /home/yury/programming/android/workspace/mupdf-0.9/android/jni/../../thirdparty/jbig2dec/os_types.h:53, from /home/yury/programming/android/workspace/mupdf-0.9/android/jni/../../thirdparty/jbig2dec/jbig2.c:22: /home/yury/software/android-ndk-r6b/platforms/android-8/arch-arm/usr/include/stdint.h:48: error: redefinition of typedef 'int8_t' /home/yury/programming/android/workspace/mupdf-0.9/android/jni/../../thirdparty/jbig2dec/os_types.h:47: note: previous declaration of 'int8_t' was here
La solution est expliquée ici : mupdf pour Android : problème de ndk-build (erreur : redéfinition de typedef....) Cependant, vous pouvez simplement commenter les lignes de la définition des types dans le fichier /thirdparty/jbig2dec/os_types.h
Après cela, vous recevrez deux bibliothèques : une statique et une partagée pour votre application Android.
StaticLibrary : libmupdfthirdparty.a
SharedLibrary : libmupdf.so
C'était la réponse à la première question. Il existe également un excellent guide étape par étape dans le fichier Android/Readme.txt.
Maintenant, la réponse à la deuxième question. Dans l'application pour Android vous pouvez trouver le projet de test. Il y a 3 fichiers :
- MuPDFActivity.java
- MuPDFCore.java
- PixmapView.java
Il suffit de copier les deux derniers fichiers dans votre projet. Et voyez un exemple dans MuPDFActivity.java comment vous pouvez intégrer la mise en page mupdf dans votre activité. Dans ce fichier, cela se passe comme suit :
PixmapView pixmapView;
//...
layout = new RelativeLayout(this);
//...
RelativeLayout.LayoutParams pixmapParams =
new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.FILL_PARENT,
RelativeLayout.LayoutParams.FILL_PARENT);
pixmapParams.addRule(RelativeLayout.ABOVE,100);
layout.addView(pixmapView, pixmapParams);
setContentView(layout);