Как отобразить PDF-файл нажатием кнопки в коде gtk3 c?

Я хочу, чтобы отобразить PDF-файл при нажатии кнопки в коде gtk3 c. На самом деле, я хочу вставить кнопку "Руководство пользователя" в справку, а при нажатии кнопки отобразится файл PDF:

Я вставляю кнопку (показать на рисунке вверх), но не могу написать код для функции руководства пользователя, чтобы показать файл PDF.

Я использую "попплер" и включаю

#include <C:\Users\Alireza\Desktop\poppler-0.18.4\poppler-0.18.4\glib/poppler.h>

на мой код в вверх.

моя функция

void UserManual(GtkWidget *widget, gpointer data)
{
    GtkWidget* win;
GError* err = NULL;


doc = poppler_document_new_from_file("C:/Program Files (x86)/Sepand64bit/logo/UserManual.pdf", NULL, &err);
if (!doc) {
    printf("%s\n", err->message);
    g_object_unref(err);
    //return 2;
}

page = poppler_document_get_page(doc, 0);
if (!page) {
    printf("Could not open first page of document\n");
    g_object_unref(doc);
    //return 3;
}

int pages = poppler_document_get_n_pages(doc);
printf("There are %d pages in this pdf.\n", pages);
}

Но у меня есть ошибки:

* ошибка LNK2001: неразрешенный внешний символ poppler_document_get_page

* ошибка LNK2001: неразрешенный внешний символ poppler_document_new_from_file

* ошибка LNK2001: неразрешенный внешний символ poppler_document_get_n_pages

Я думаю, что Poppler inistall в моем коде неправильно. Какие идеи о том, как решить эту задачу, вы бы предложили? Или на каком ресурсе в интернете я могу найти помощь?

1 ответ

Если в противном случае вам не нужно отображать PDF-файлы внутри приложения с помощью Poppler, то я бы предложил использовать более простой подход (хотя он дает вам меньший контроль над результатом) и использовать

gtk_show_uri(gdk_screen_get_default(), "file:///path/to/UserManual.pdf",
    GDK_CURRENT_TIME, &error);

Он откроет PDF-файл в любом средстве просмотра по умолчанию для PDF-файлов.

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