Извлечение размеров страницы из PDF с помощью программы C++
Как извлечь размеры страницы из файла PDF с помощью программы на C++?
Есть ли какая-нибудь легкая, кроссплатформенная, простая в сборке / установке библиотека, которая может помочь?
Спасибо:)
[РЕДАКТИРОВАТЬ]
Я пытался построить подофо под Windows, но это не сработало. LibHaru и PDFHummus предназначены для рендеринга PDF-файлов, а не для анализа их данных.
[РЕДАКТИРОВАТЬ И РЕШЕНИЕ]
Я наконец-то построил подофо под окнами!
(кстати, под Ubuntu, это был просто вопрос sudo apt-get install libpodofo0.9.0 libpodofo-dev libpodofo-utils
)
На самом деле это была ошибка CMake 2.8.10, переключение обратно на 2.8.3 решило проблему ( спасибо)
Если кому-то интересно, вот как начать работу с podofo под windows (я покажу, как создать отладочную / расшаренную версию):
- загрузите необходимые библиотеки (freetype, jpeg, openssl, tiff, zlib) и установите их (я предлагаю скопировать все файлы в
LIB_NAME\lib
вC:\libraries\lib
то же самое для\include
) - установить CMake 2.8.3
- добавьте MinGW\bin и CMake\bin к
PATH
- Скачайте podofo и распакуйте его куда-нибудь, скажем, в
C:\downloads\podofo-0.9.2
- создать новый каталог
C:\downloads\podofo-0.9.2\podofo-shared-debug
- откройте командную строку и введите
cd C:\downloads\podofo-0.9.2\podofo-shared-debug
выполните эту команду, чтобы подготовить файл сборки MinGW для отладочной / общей версии podofo
cmake -G "MinGW Makefiles" .. -DCMAKE_INCLUDE_PATH=C:\libraries\include -DCMAKE_LIBRARY_PATH=C:\libraries\lib -DPODOFO_BUILD_SHARED:BOOL=TRUE -DCMAKE_BUILD_TYPE=DEBUG
тогда просто позвони
mingw-make.exe
если вы используете кодовые блоки, вот как установить / использовать podofo:
9.1. скопируйте следующее
podofo-0.9.2\podofo --> C:\libraries\podofo-0.9.2\include\podofo
podofo-0.9.2\src --> C:\libraries\podofo-0.9.2\include\src
podofo-0.9.2\podofo-shared-debug\podofo_config.h --> C:\libraries\podofo-0.9.2\include\podofo_config.h
podofo-0.9.2\podofo-shared-debug\src\libpodofo.dll.a --> C:\libraries\podofo-0.9.2\lib-shared-debug\libpodofo.dll.a
podofo-0.9.2\podofo-shared-debug\src\libpodofo.dll --> C:\libraries\podofo-0.9.2\bin-shared-debug\libpodofo.dll
9.2. использование -lpodofo
в настройках компоновщика затем добавьте C:\libraries\podofo-0.9.2\include
в каталоги поиска компилятора и C:\libraries\podofo-0.9.2\lib-shared-debug
в каталоги поиска компоновщика
Возвращаясь к моему первоначальному вопросу, самый близкий ответ на вопрос "как извлечь размеры страницы из файла PDF с помощью программы на C++ (используя podofo)?" это:
#include <iostream>
#include <podofo/podofo.h>
int main (int argc, char* argv[])
{
PoDoFo::PdfMemDocument document;
try
{
document.Load("path/to/the/file.pdf");
}
catch (PdfError& e )
{
// a password is required to read this pdf
return -1;
}
try
{
PoDoFo::PdfRect pageSize = document.GetPage(0)->GetPageSize(); // yes, it's "0-based"
std::cout << "width: " << pageSize.GetWidth() << "\t\theight: " << pageSize.GetHeight() << std::endl;
}
catch (PdfError& e )
{
// page number error
return -2;
}
return 0;
}