Я пытаюсь сделать просмотрщик PDF в Qt5.8
.Я знаю это poppler
это выбор для Qt
но я хочу сделать это с помощью pdf.js
.Я не знаю, как вставлять pdf.js
с Qt5.8
, Я видел hello world
документация pdf.js
но это не помогло. Пожалуйста, помогите мне.
Заранее спасибо .
Основная идея состоит в том, чтобы иметь некоторый виджет для отображения HTML, если вы хотите использовать pdf.js — кажется, что QWebEngineView
(использует Chromium) может выполнить эту работу, так как для выполнения первой реализации требуется минимум кода.
Установив pdf.js на свой компьютер и минималистичный графический интерфейс (проект QT Widgets), подготовленный вместе с QT Creator, вы можете использовать следующий код для ознакомления с основами:
#include "mainwindow.h"#include <QApplication>
#include <QWebEngineView>
static QString pathToPDFjs = QString("file:///path-to/pdfjs-1.8.170-dist/web/viewer.html");
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MainWindow win;
QWebEngineView *view;
QString pdfFileURL;
//you could parse a widget to get the file name
pdfFileURL = QString("file:///path-to-your/file.pdf");
//init the view and attach it to the ui
view = new QWebEngineView();
win.setCentralWidget(view);
win.show();
//auto-load feature in pdf.js, pass file=filename as parameter
view->load(QUrl::fromUserInput(pathToPDFjs + QString("?file=") + pdfFileURL));
view->show();
return app.exec();
}
С этого момента вы можете добавить дополнительные функции в свой пользовательский интерфейс.
Вы даже можете добавить изменения в вашу установку pdf.js (при необходимости).
Если вам нужно вызвать JavaScript на вашем pdf.js, вы можете использовать страницу представления ( QWebEnginePage
) который в свою очередь может runJavaScript
,
Не знаю, почему вы хотите использовать pdf.js, но вы можете посмотреть на Модуль QtLabs PDF. Это выглядит довольно недавно и хорошо интегрировано с текущим Qt. (и я думаю, что это более эффективно, чем код JavaScript)
Если вы хотите попробовать это, вот как начать:
git clone git://code.qt.io/qt-labs/qtpdf
cd qtpdf
git submodule update --init --recursive
qmake
make
cd examples/pdf/pdfviewer
qmake
make
./pdfviewer /path/to/my/file.pdf