# -*- coding: utf-8 -*-
# This file is part of the qpageview package.
# Copyright (c) 2016 - 2019 by Wilbert Berendsen
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
# See http://www.gnu.org/licenses/ for more information.
This is a generic paged view widget.
Its main design goal is to display the pages of a PDF document, but it can
display any set of images or pages, originating from different documents.
Every page is represented by a Page instance, which encompasses all logic
for the document type, i.e. drawing etc.
Pages are managed by a PageLayout.
A PageLayout can be set to a View so the pages are displayed.
The images from a PDF, SVG of possibly other document are cached, and rendering
is tile-based, to support zooming in at great detail. Also a magnifier is
available, which by default pops up at Ctrl+click.
Because the qpageview is built on Qt, we use the Qt convention
to have camelCase method names and CamelCase class names.
from .constants import (
from . import link
from . import highlight
from . import shadow
from . import view
from . import util
from .pkginfo import version, version_string
"""Paged view component based on view.View, with all enhancements."""
[docs]def loadPdf(filename, renderer=None):
"""Convenience function to create a Document with the specified PDF file.
The filename can also be a QByteArray or an already loaded
from . import poppler
return poppler.PopplerDocument(filename, renderer)
[docs]def loadSvgs(filenames, renderer=None):
"""Convenience function to create a Document with the specified SVG files.
Each SVG file is loaded in one Page. A filename can also be a
from . import svg
return svg.SvgDocument(filenames, renderer)
[docs]def loadImages(filenames, renderer=None):
"""Convenience function to create a Document with images from files.
Each image is loaded in one Page. A filename can also be a
from . import image
return image.ImageDocument(filenames, renderer)
[docs]def diffDocument(documents, renderer=None):
"""Convenience function to create a diff.DiffDocument from other documents.
The difference works best with documents that are similar and mostly black
from . import diff
return diff.DiffDocument(documents, renderer)