如何在gtk3 c代码中按下按钮来显示PDF文件?

时间:2016-11-18 17:05:08

标签: pdf gtk3 poppler

我想在gtk3 c代码中按下按钮时显示PDF文件。事实上,我想在帮助中插入用户手册按钮,当按下按钮时,PDF文件显示:

enter image description here

我插入按钮(图中显示)但我无法编写用户手册功能的代码来显示PDF文件。

我使用“poppler”并包含

#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错误地对我的代码进行了调查。你会建议如何解决这个任务的想法?或者我可以在互联网上的哪些资源上找到帮助?

1 个答案:

答案 0 :(得分:0)

如果您不需要使用Poppler在您的应用程序中显示PDF,那么我建议采用更简单的方法(尽管可以减少对结果的控制)并使用

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

无论PDF文件的默认查看器是什么,它都会打开PDF。