Извлечение размеров страницы из 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 (я покажу, как создать отладочную / расшаренную версию):

  1. загрузите необходимые библиотеки (freetype, jpeg, openssl, tiff, zlib) и установите их (я предлагаю скопировать все файлы в LIB_NAME\lib в C:\libraries\lib то же самое для \include)
  2. установить CMake 2.8.3
  3. добавьте MinGW\bin и CMake\bin к PATH
  4. Скачайте podofo и распакуйте его куда-нибудь, скажем, в C:\downloads\podofo-0.9.2
  5. создать новый каталог C:\downloads\podofo-0.9.2\podofo-shared-debug
  6. откройте командную строку и введите cd C:\downloads\podofo-0.9.2\podofo-shared-debug
  7. выполните эту команду, чтобы подготовить файл сборки 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
    
  8. тогда просто позвони

    mingw-make.exe
    
  9. если вы используете кодовые блоки, вот как установить / использовать 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;
}

0 ответов

Другие вопросы по тегам