Libmobi
C Biblioteca para manejar documentos de formato de libro electrónico Mobipocket/Kindle (Mobi).
La biblioteca viene con varias herramientas de línea de comandos para trabajar con Mobi Ebooks. La fuente de herramientas también se puede usar como ejemplo sobre cómo usar la biblioteca.
Características:
- lectura y análisis:
- Algunos formatos de texto de texto más antiguos (PDB),
- Archivos mobipocket (PRC, MOBI),
- Archivos MOBI más nuevos que incluyen formato KF8 (AZW, AZW3),
- Réplica de archivos de impresión (AZW4)
- Recreando archivos de origen utilizando índices
- Reconstrucción de referencias (enlaces e incrustados) en archivos HTML
- Reconstruir la estructura fuente que se puede volver a encender a Kindlegen
- Reconstrucción del marcado del diccionario (orth, etiquetas infl)
- Escribir documentos cargados
- edición de metadatos
- manejo de documentos cifrados
- Cifrar documentos para su uso en Eink Kindles
Hacer:
- Mejorar la escritura
- Serializar RAWML en RAW Records
- Registros de rescate de procesos
Documentación de Doxygen:
- funciones,
- Estructuras para los metadatos y datos de registros sin parar e incomparables,
- Estructuras para los metadatos y datos de registros analizados,
- enumeros
Fuente:
Paquetes:
Instalación:
[for git] $ ./autogen.sh
$ ./configure
$ make
[optionally] $ make test
$ sudo make install
En MacOS, puede instalar a través de Homebrew con brew install libmobi .
Sistemas de construcción alternativos
- La forma compatible de construir el proyecto es mediante el uso de Autotools.
- Opcionalmente, el proyecto proporciona soporte básico para los sistemas CMake, XCode y MSVC ++. Sin embargo, estas configuraciones alternativas no cubren todas las opciones del proyecto AutoTools. Tampoco se prueban y no se actualizan regularmente.
Uso
- Single incluye archivo:
#include <mobi.h> - Bandera de enlazador:
-lmobi - Uso básico:
#include <mobi.h>
/* Initialize main MOBIData structure */
/* Must be deallocated with mobi_free() when not needed */
MOBIData * m = mobi_init ();
if ( m == NULL ) {
return ERROR ;
}
/* Open file for reading */
FILE * file = fopen ( fullpath , "rb" );
if ( file == NULL ) {
mobi_free ( m );
return ERROR ;
}
/* Load file into MOBIData structure */
/* This structure will hold raw data/metadata from mobi document */
MOBI_RET mobi_ret = mobi_load_file ( m , file );
fclose ( file );
if ( mobi_ret != MOBI_SUCCESS ) {
mobi_free ( m );
return ERROR ;
}
/* Initialize MOBIRawml structure */
/* Must be deallocated with mobi_free_rawml() when not needed */
/* In the next step this structure will be filled with parsed data */
MOBIRawml * rawml = mobi_init_rawml ( m );
if ( rawml == NULL ) {
mobi_free ( m );
return ERROR ;
}
/* Raw data from MOBIData will be converted to html, css, fonts, media resources */
/* Parsed data will be available in MOBIRawml structure */
mobi_ret = mobi_parse_rawml ( rawml , m );
if ( mobi_ret != MOBI_SUCCESS ) {
mobi_free ( m );
mobi_free_rawml ( rawml );
return ERROR ;
}
/* Do something useful here */
/* ... */
/* For examples how to access data in MOBIRawml structure see mobitool.c */
/* Free MOBIRawml structure */
mobi_free_rawml ( rawml );
/* Free MOBIData structure */
mobi_free ( m );
return SUCCESS ;- Para ver ejemplos de uso, ver herramientas
Requisitos
- compilador de apoyo C99
- ZLIB (opcional, configurar-with-zlib = no para usar Miniz.c incluido en su lugar)
- libxml2 (opcional, configurar-with-libxml2 = no para usar xmlwriter interno)
- Probado con GCC (> = 4.2.4), Clang (LLVM> = 3.4), Sun C (> = 5.13), MSVC ++ (2015)
- se basa en Linux, MacOS, Windows (MSVC ++, Mingw), Android, Solaris
- Arquitecturas probadas: x86, x86-64, brazo, PPC
- funciona compilado en Kindle :)
Pruebas
Proyectos utilizando libmobi
- Kybook 2 Reader
- @Voice en voz alta lector
- Qlmobi Quicklook Plugin
- Lector de librera
- ... (Déjame saber para incluir tu proyecto)
Licencia:
- LGPL, ya sea la versión 3 o cualquier otra persona posterior
Créditos:
- Los algoritmos de análisis de Huffman y KF8 se aprendieron estudiando el código fuente de Python de Kindleunpack.
- Gracias a todos los contribuyentes de Mobilread Mobi Wiki