Как отобразить 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-файлов.