Редактирование: Poppler: Displaying PDF Files with Qt

Материал из Wiki.crossplatform.ru

Перейти к: навигация, поиск
Внимание: Вы не представились системе. Ваш IP-адрес будет записан в историю изменений этой страницы.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 8: Строка 8:
</div>
</div>
-
К счастью, существуют сторонние библиотеки для некоторых вещей, которые Qt не предоставляет. Одна из них - Poppler, библиотека рендеринга Portable Document Format (PDF), которая лежит в основе ряда широко используемых приложений для просмотра PDF. Poppler - это форк программы просмотра PDF Xpdf, которая лицензирована под GNU General Public License. Xpdf также можно получить на других условиях лицензирования.
+
Fortunately, there are third party libraries available for some of the things that Qt doesn't provide. One of these is Poppler, a Portable Document Format (PDF) rendering library that forms the basis of a number of widely-used PDF viewing applications. Poppler is a fork of the Xpdf PDF viewer that is licensed under the GNU General Public License. Xpdf can also be obtained under other licensing terms.
-
Poppler разработан таким образом, что его можно использовать с любым инструментарием или фреймворком, если только имеется подходящий бэкенд рендеринга. Разработчикам Qt-приложений повезло в том, что также доступен Qt-фронтенд&mdash; набор классов Qt-стиля, которые используют Qt-классы для описания частей PDF-документов.
+
Poppler is designed in a way that allows it to be used with any toolkit or framework as long as a suitable rendering backend is available. Qt application developers are fortunate in that there is also a Qt frontend available&mdash;a set of Qt-style classes that use Qt classes to describe parts of PDF documents.
[[Image:qq27-poppler.png|center]]
[[Image:qq27-poppler.png|center]]
-
В этой статье мы кратко рассмотрим некоторые возможности, предоставляемые Poppler, в контексте создания простого приложения для просмотра PDF.
+
In this article, we'll take a brief look at some of the features provided by Poppler in the context of creating a simple PDF viewing application.
===Setting Things Up===
===Setting Things Up===
-
Разработчики, использующие Linux, должны обнаружить, что Poppler и фронтенд Qt 4 доступны в виде пакета для большинства последних дистрибутивов. Разработчики под Windows, Mac OS X и другие Unix платформы могут загрузить исходный код с сайта [http://poppler.freedesktop.org poppler.freedesktop.org].
+
Developers using Linux should find that Poppler and the Qt 4 frontend are available as a package for most recent distributions. Developers on Windows, Mac OS X, and other Unix platforms can download source code from the [http://poppler.freedesktop.org poppler.freedesktop.org] Web site.
-
По умолчанию Poppler собирается со всеми видами фронтендов и бэкендов. Если вы компилируете Poppler из исходников, вы можете исключить некоторые из них для экономии времени компиляции. При настройке сборки может быть проще установить префикс установки, используемый для установки Qt&mdash; этот префикс является каталогом, под которым хранятся подкаталоги, содержащие исполняемые файлы, библиотеки и файлы данных.
+
By default, Poppler is built with all kinds of frontends and backends. If you compile Poppler from source, you can exclude some of these to save compile time. When configuring the build, it may be easier to set the installation prefix to that used for the Qt installation&mdash;this prefix is the directory under which subdirectories containing executables, libraries and data files are stored.
-
Важно знать, где будут установлены библиотека Poppler и заголовочные файлы, поскольку они понадобятся нашему примеру.
+
It is important to know where the Poppler library and header files will be installed because our example will need them.
===Отрисовка документов===
===Отрисовка документов===
-
В нашем примере мы предоставляем простой пользовательский интерфейс для отображения файлов PDF, показывая по одной странице за раз и предоставляя элементы управления для перемещения пользователя между страницами. Каждая страница отображается в пользовательском виджете <tt>DocumentWidget</tt>, расположенном в центральном виджете главного окна - области прокрутки.
+
In our example, we provide a simple user interface to display PDF files, displaying a single page at a time and providing controls to let the user move between pages. Each page is displayed in a custom widget, <tt>DocumentWidget</tt>, held in the main window's central widget, a scroll area.
The user opens a new file via a file dialog, which we open in response to an action being triggered. The path to the file is passed to the <tt>DocumentWidget</tt> so that the document it contains can be fed to the Poppler library.
The user opens a new file via a file dialog, which we open in response to an action being triggered. The path to the file is passed to the <tt>DocumentWidget</tt> so that the document it contains can be fed to the Poppler library.
Строка 55: Строка 55:
===Поиск текста===
===Поиск текста===
-
Одной из многих полезных функций, которые предоставляет Poppler, является возможность находить определенные текстовые строки в PDF-документах. Поскольку формат PDF предназначен для хранения печатаемых, а не редактируемых документов, не всегда легко получить доступ и восстановить оригинальный текст автора. Однако Poppler отлично справляется с поиском текста во многих документах, и мы можем использовать эту возможность в нашем примере.
+
One of the many useful features that Poppler provides is the ability to locate specific text strings in PDF documents. Since PDF is designed to store printable rather than editable documents, it is not always easy to easily access and reconstruct the author's original text. However, Poppler does a good job of locating text in many documents, and we can expose this feature in our example.
-
API для поиска текста предоставляет обычные функции, такие как поиск без учета регистра и направленный поиск, а также возвращает информацию о положении любого расположенного текста на странице&mdash; поскольку PDF является форматом отображения, это действительно единственная полезная информация о тексте, которую мы можем получить. Эта информация может быть использована для указания места начала последующего поиска.
+
The API for locating text provides conventional features such as case-insensitive and directional searching, but also returns information about the position of any located text on the page&mdash;since PDF is a display format, this is really the only useful information about the text we can obtain. This information can be used to indicate where any subsequent searches should begin.
-
В основном, код для выполнения прямого поиска на заданной странице выглядит следующим образом:
+
Basically, the code to perform a forward search in a given page looks like this:
<source lang="cpp-qt">
<source lang="cpp-qt">
     bool found = page->search(text, searchLocation,
     bool found = page->search(text, searchLocation,

Пожалуйста, обратите внимание, что все ваши добавления могут быть отредактированы или удалены другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Wiki.crossplatform.ru:Авторское право). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!


Шаблоны, использованные на текущей версии страницы: