Как получить метаданные pdf-документа (например, название, автора, дату создания и т. Д.) С помощью библиотеки mupdf? Недостаточно документации, чтобы узнать эту функциональность. Недостаточно комментариев. Скорее всего, для этой цели есть функциональность, но в этих обстоятельствах ее трудно найти. Следующий код - это то, что у меня есть до сих пор.Как получить автор pdf-документа с mupdf
char info[64];
globals *glo = get_globals(env, thiz);
fz_meta(glo->doc, FZ_META_INFO, info, sizeof(info));
Я использовал FZ_META_INFO
тег, но он не работает. Я не получил никакой информации, просто пустой. Я проверил, что у него есть метаданные. Любая помощь приветствуется.
EDIT:
Target Android SDK: 20
Min Android SDK: 15
версия Mupdf: 1,6
NDK: R10C
OS Разработка: Ubuntu 12,04
Из вашего ответа, я понимаю, 'sprintf (info,« Title »);' устанавливает ключ в буфере. , но ничего не изменилось.Несколько пустая строка возвращается.Я посмотрел на win_main.c, но я не нашел никаких связанных строк для моего случая.Я поеду за затмение для более глубокой отладки цели, даже если я использую студию Android, но далее – Shnkc
Буфер, который вы отправляете в fz_meta при использовании перечисления FZ_META_INFO, должен быть инициализирован ключом, связанным с данными, которые вы хотите получить из словаря Info во входном PDF-файле. Я полагаю, вы знаете ли вы, что словарь Info может содержать определенные ключи, которые используются для извлечения определенных метаданных? Возможно, если вы поделились файлом PDF, который вы тестируете, я мог бы Более конкретно. Я не понимаю, почему вы не можете найти соответствующий код в win_main.c, есть макрос, называемый SETUTF8, который извлекает информацию с помощью fz_meta. – KenS
+1 за этот отличный ответ. Но здесь есть проблема. В файле 'pdf-xref.c', в функции' pdf_meta', в случае 'FZ_META_INFO',' info = pdf_dict_gets (info, * (char **) ptr); 'приводит к фатальной проблеме при передаче массива' info' , в функцию 'fz_meta'' (фатальный сигнал 11 (SIGSEGV), код 1, ошибка addr 0x6c746954 in tid 29833) '. Я изменил строку с 'info = pdf_dict_gets (info, (char *) ptr);' и он работает. Если это ошибка, необходимо заполнить отчет об ошибке. – Shnkc