pympress


Namepympress JSON
Version 1.8.5 PyPI version JSON
download
home_pagehttps://github.com/Cimbali/pympress/
SummaryA simple and powerful dual-screen PDF reader designed for presentations
upload_time2023-12-15 12:27:15
maintainer
docs_urlNone
authorCimbali, Thomas Jost, Christof Rath, Epithumia
requires_python>=3.4
licenseGPL-2.0-or-later
keywords pdf-viewer beamer presenter slide projector pdf-reader presentation python poppler gtk pygi vlc
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # ![Pympress logo](https://raw.githubusercontent.com/Cimbali/pympress/master/pympress/share/pixmaps/pympress-32.png) What is Pympress?

Pympress is a PDF presentation tool designed for dual-screen setups such as presentations and public talks.
Highly configurable, fully-featured, and portable

It comes with many great features ([more below](#functionalities)):
- supports embedded gifs (out of the box), videos, and audios (with VLC or Gstreamer integration)
- text annotations displayed in the presenter window
- natively supports beamer's *notes on second screen*, as well as Libreoffice notes pages!

Pympress is a free software, distributed under the terms of the GPL license (version 2 or, at your option, any later version).

Pympress was originally created and maintained by [Schnouki](https://github.com/Schnouki), on [his repo](https://github.com/Schnouki/pympress).

Here is what the 2 screen setup looks like, with a big notes slide next to 2 small slides (current and next) on the presenter side:
![A screenshot with Pympress’ 2 screens](https://pympress.github.io/resources/pympress-screenshot.png)

# Usage

## Opening a file
Simply start Pympress and it will ask you what file you want to open.
You can also start pympress from the command line with a file to open like so:
`pympress slides.pdf`
or
`python3 -m pympress slides.pdf`

## Functionalities

All functionalities are available from the menus of the window with slide previews. Don't be afraid to experiment with them!

Keyboard shortcuts are also listed in these menus. Some more usual shortcuts are often available, for example `Ctrl`+`L`, and `F11` also toggle fullscreen, though the main shortcut is just `F`.

A few of the fancier functionalities are listed here:
- **Two-screen display**: See on your laptop or tablet display the current slide, the next slide, the talk time and wall-clock time, and annotations (either PDF annotations, beamer notes on second slide, or Libreoffice notes pages).
  The position of the beamer or Libreoffice notes in the slide is detected automatically and can be overridden via a menu option.

  If you do not want to use second-slide beamer notes but prefer to have notes on their own pages, you can enable auto-detection of these notes.
  Use the following snippet that prefixes the page labels with `notes:` on notes pages:
  ```latex
  \addtobeamertemplate{note page}{}{\thispdfpagelabel{notes:\insertframenumber}}
  ```
- **Media support**: supports playing video, audio, and gif files embedded in (or linked from) the PDF file, with optional start/end times and looping.
- **Highlight mode**: Allows one to draw freehand on the slide currently on screen.
- **Go To Slide**: To jump to a selected slide without flashing through the whole presentation on the projector, press `G` or click the "current  slide" box.
  Using `J` or clicking the slide label will allow you to navigate slide labels instead of page numbers, useful e.g. for multi-page slides from beamer `\pause`.

  A spin box will appear, and you will be able to navigate through your slides in the presenter window only by scrolling your mouse, with the `Home`/`Up`/`Down`/`End` keys,
  with the + and - buttons of the spin box, or simply by typing in the number of the slide. Press `Enter` to validate going to the new slide or `Esc` to cancel.

- **Deck Overview**: Pressing `D` will open an overview of your whole slide deck, and any slide can be opened from can simply clicking it.
- **Software pointer**: Clicking on the slide (in either window) while holding `ctrl` down will display a software laser pointer on the slide. Or press `L` to permanently switch on the laser pointer.
- **Talk time breakdown**: The `Presentation > Timing Breakdown` menu item displays a breakdown of how much time was spent on each slide, with a hierarchical breakdown per chapters/sections/etc. if available in the PDF.
- **Automatic file reloading**: If the file is modified, pympress will reload it (and preserve the current slide, current time, etc.)
- **Big button mode**: Add big buttons (duh) for touch displays.
- **Swap screens**: If Pympress mixed up which screen is the projector and which is not, press `S`
- **Automatic full screen**: pympress will automatically put the content window fullscreen on your non-primay screen when:
  - connecting a second screen,
  - extending your desktop to a second screen that was mirroring your main screen,
  - when starting pympress on a two-screen display.
  To disable this behaviour, untick “Content fullscreen” under the “Starting configuration” menu.
- **Estimated talk time**: Click the `Time estimation` box and set your planned talk duration. The color will allow you to see at a glance how much time you have left.
- **Adjust screen centering**: If your slides' form factor doesn't fit the projectors' and you don't want the slide centered in the window, use the "Screen Center" option in the "Presentation" menu.
- **Resize Current/Next slide**: You can drag the bar between both slides on the Presenter window to adjust their relative sizes to your liking.
- **Caching**: For efficiency, Pympress caches rendered pages (up to 200 by default). If this is too memory consuming for you, you can change this number in the configuration file.
- **Configurability**: Your preferences are saved in a configuration file, and many options are accessible there directly. These include:
    - Customisable key bindings (or shortcuts),
    - Configurable layout of the presenter window, with 1 to 16 next slides preview
    - and many more.

  See the [configuration file documentation](docs/options.md) for more details,
- **Editable PDF annotations**: Annotations can be added, removed, or changed, and the modified PDF files can be saved
- **Automatic next slide and looping**

## Command line arguments

-  `-h, --help`: Shows a list of all command line arguments.
- `-t mm[:ss], --talk-time=mm[:ss]`: The estimated (intended) talk time in minutes and optionally seconds.
- `-n position, --notes=position`: Set the position of notes on the pdf page (none, left, right, top, or bottom). Overrides the detection from the file.
- `--log=level`: Set level of verbosity in log file (DEBUG, INFO, WARNING, ERROR).

## Media and autoplay

To enable media playback, you need to have either:
- Gstreamer installed (enabled by default), with its gtk plugin (`libgstgtk`) which is sometimes packaged separately (e.g. as `gst-plugin-gtk` or `gstreamer1.0-gtk3`), and plugins gstreamer-good/-bad/-ugly based on which codecs you need, or
- VLC installed (and the python-vlc module), with `enabled = on` under the `[vlc]` section of your config file.

On macOS, issues with the gstreamer brew formula may require users to set `GST_PLUGIN_SYSTEM_PATH` manually. For default homebrew configurations the value should be `/opt/homebrew/lib/gstreamer-1.0/`. Make sure to set this environmental variable globally, or pympress might not pick it up.

To produce PDFs with media inclusion, the ideal method is to use beamer’s multimedia package, always with `\movie`:

```latex
\documentclass{beamer}
\usepackage{multimedia}

\begin{frame}{Just a mp4 here}
    \centering
    \movie[width=0.3\textwidth]{\includegraphics[width=0.9\textwidth]{frame1.png}}{movie.mp4}

    \movie[width=0.3\textwidth]{}{animation.gif}

    \movie[width=0.3\textwidth]{}{ding.ogg}
\end{frame}
```

If you desire autoplay, ensure you have pympress ≥ 1.7.0 and poppler ≥ 21.04, and use the `movie15` package as follows:

```latex
\documentclass{beamer}
\usepackage{movie15}
\begin{document}

\begin{frame}
  \begin{center}
    \includemovie[attach=false,autoplay,text={%
        \includegraphics{files/mailto.png}%
      }]{0.4\linewidth}{0.3\linewidth}{files/random.mpg}
  \end{center}
\end{frame}

\end{document}
```

# Dependencies

Pympress relies on:
* Python (version ≥ 3.4, python 2.7 is supported only until pympress 1.5.1, and 3.x < 3.4 until v1.6.4).
* [Poppler](http://poppler.freedesktop.org/), the PDF rendering library.
* [Gtk+ 3](http://www.gtk.org/), a toolkit for creating graphical user interfaces, and [its dependencies](https://www.gtk.org/overview.php), specifically:
  * [Cairo](https://www.cairographics.org/) (and python bindings for cairo), the graphics library which is used to pre-render and draw over PDF pages.
  * Gdk, a lower-level graphics library to handle icons.
* [PyGi, the python bindings for Gtk+3](https://wiki.gnome.org/Projects/PyGObject). PyGi is also known as *pygobject3*, just *pygobject* or *python3-gi*.
  * Introspection bindings for poppler may be shipped separately, ensure you have those as well (`typelib-1_0-Poppler-0_18` on OpenSUSE, `gir1.2-poppler-0.18` on Ubuntu)
* optionally [VLC](https://www.videolan.org/vlc/), to play videos (with the same bitness as Python)
  and the [python-vlc](https://pypi.org/project/python-vlc/) bindings.
* optionally Gstreamer to play videos (which is a Gtk library)

### On linux platforms
The dependencies are often installed by default, or easily available through your package or software manager.
For example, on ubuntu, you can run the following as root to make sure you have all the prerequisites *assuming you use python3*:

```sh
apt-get install python3 python3-pip libgtk-3-0 libpoppler-glib8 libcairo2 python3-gi python3-cairo python3-gi-cairo gobject-introspection libgirepository-1.0-1 libgirepository1.0-dev gir1.2-gtk-3.0 gir1.2-poppler-0.18
```

Different distributions might have different package naming conventions, for example the equivalent on OpenSUSE would be:

```sh
zypper install python3 python3-pip libgtk-3-0 libpoppler-glib8 libcairo2 python3-gobject python3-gobject-Gdk python3-cairo python3-gobject-cairo typelib-1_0-GdkPixbuf-2_0 typelib-1_0-Gtk-3_0 typelib-1_0-Poppler-0_18
```

On CentOS/RHEL/Fedora the dependencies would be:

```sh
yum install python36 python3-pip gtk3 poppler-glib cairo gdk-pixbuf2 python3-gobject python3-cairo
```

And on Arch Linux:

```sh
pacman -S --needed python python-pip gtk3 poppler cairo gobject-introspection poppler-glib python-gobject gst-plugin-gtk
```


### On macOS

Dependencies can be installed using [Homebrew](https://brew.sh/):

```sh
brew install --only-dependencies pympress
```

### On windows
The [binary installer for windows](#installing-) comes with pympress and all its dependencies packaged.

Alternately, in order to install from pypi or from source on windows, there are two ways to get the dependencies:

1. using MSYS2 (replace x86_64 with i686 if you're using a 32 bit machine).

   **Warning:** this can take a substantial amount of disk size as it requires a full software distribution and building platform.

    ```sh
    pacman -S --needed mingw-w64-x86_64-gtk3 mingw-w64-x86_64-cairo mingw-w64-x86_64-poppler mingw-w64-x86_64-python3 mingw-w64-x86_64-vlc python3-pip mingw-w64-x86_64-python3-pip mingw-w64-x86_64-python3-gobject mingw-w64-x86_64-python3-cairo
    ```

    This is also the strategy used to automate [builds on appveyor](https://github.com/Cimbali/pympress/tree/master/scripts/build_msi_mingw.sh).

2. Using PyGobjectWin32. *Be sure to check the supported Python versions (up to 3.4 at the time of writing)*, they appear in the FEATURES list in the linked page.
  - Install native [python for windows](https://www.python.org/downloads/windows/)
  - Get GTK+3, Poppler and their python bindings by executing [the PyGi installer](https://sourceforge.net/projects/pygobjectwin32/).  Be sure to tick all the necessary dependencies in the installer (Poppler, Cairo, Gdk-Pixbuf).

Alternately, you can build your Gtk+3 stack from source using MSVC, see [the Gnome wiki](https://wiki.gnome.org/Projects/GTK+/Win32/MSVCCompilationOfGTKStack) and [this python script that compiles the whole Gtk+3 stack](https://github.com/wingtk/gvsbuild/).
This strategy has not been used successfully yet, due to problems building Poppler with its introspection bidings (i.e. typelib) − see [#109](https://github.com/Cimbali/pympress/issues/109).

# Contributing

Feel free to clone this repo and use it, modify it, redistribute it, etc, under the GPLv2+.
A [number of contributors](https://github.com/Cimbali/pympress/graphs/contributors) have taken part in the development of pympress and submitted pull requests to improve it.

**Be respectful of everyone and keep this community friendly, welcoming, and harrasment-free.
Abusive behaviour will not be tolerated, and can be reported by email at me@cimba.li − wrongdoers may be permanently banned.**

Pympress has inline sphinx documentation ([Google style](http://www.sphinx-doc.org/en/latest/ext/example_google.html), contains rst syntax), and the [docs generated from it are hosted on the github pages of this repo](https://pympress.github.io/).

## Translations

![Chinese (simplified)](https://img.shields.io/poeditor/progress/301055/zh-Hans?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%A8%F0%9F%87%B3%20Chinese%20%28simplified%29)
![Chinese (traditional)](https://img.shields.io/poeditor/progress/301055/zh-Hant?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%A8%F0%9F%87%B3%20Chinese%20%28traditional%29)
![Czech](https://img.shields.io/poeditor/progress/301055/cs?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%A8%F0%9F%87%BF%20Czech)
![Hindi](https://img.shields.io/poeditor/progress/301055/hi?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%AE%F0%9F%87%B3%20Hindi)
![Italian](https://img.shields.io/poeditor/progress/301055/it?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%AE%F0%9F%87%B9%20Italian)
![Japanese](https://img.shields.io/poeditor/progress/301055/ja?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%AF%F0%9F%87%B5%20Japanese)
![Polish](https://img.shields.io/poeditor/progress/301055/pl?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%B5%F0%9F%87%B1%20Polish)
![French](https://img.shields.io/poeditor/progress/301055/fr?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%AB%F0%9F%87%B7%20French)
![German](https://img.shields.io/poeditor/progress/301055/de?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%A9%F0%9F%87%AA%20German)
![Spanish](https://img.shields.io/poeditor/progress/301055/es?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%AA%F0%9F%87%B8%20Spanish)
<!-- https://poeditor.com/docs/languages -->

We thank the many contributors of translations: <!-- translator list -->
Agnieszka,
atsuyaw,
Cherrywoods,
Dongwang,
Estel-f,
Fabio Pagnotta,
Ferdinand Fichtner,
Frederik. blome,
FriedrichFröbel,
GM,
He. yifan. xs,
Jaroslav Svoboda,
Jeertmans,
Kristýna,
lazycat,
Leonvincenterd,
LogCreative,
Lorenzo. pacchiardi,
Luis Sibaja,
Marcin Dohnalik,
marquitul,
Morfit,
Mzn,
Nico,
Ogawa,
Paul,
Pierre BERTHOU,
polaksta,
Saulpierotti,
Shebangmed,
Stanisław Polak,
susobaco,
Tapia,
Tejas,
Timo Zhang,
Tkoyama010,
Toton95,
Vojta Netrh,
Vulpeculus,
and <!-- last translator --> Cimbali.

If you also want to add or contribute to a translation, check [pympress’ page on POEditor](https://poeditor.com/join/project/nKfRxeN8pS).
Note that old strings are kept and tagged `removed`, to give context and keep continuity between translations of succcessive versions.
This means `removed` strings are unused and do not need translating.

## Packages

Official releases are made to [PyPI](https://pypi.org/) and with [github releases](https://github.com/Cimbali/pympress/releases).
The community maintains a number of other packages or recipes to install pympress (see [Install section](#installing-)). Any additions welcome.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Cimbali/pympress/",
    "name": "pympress",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.4",
    "maintainer_email": "",
    "keywords": "pdf-viewer,beamer,presenter,slide,projector,pdf-reader,presentation,python,poppler,gtk,pygi,vlc",
    "author": "Cimbali, Thomas Jost, Christof Rath, Epithumia",
    "author_email": "me@cimba.li",
    "download_url": "https://files.pythonhosted.org/packages/fb/e2/91827c485aae28d69f0b40c6d366b9f6eb96d8208a98af0345e0ade3fbbd/pympress-1.8.5.tar.gz",
    "platform": null,
    "description": "# ![Pympress logo](https://raw.githubusercontent.com/Cimbali/pympress/master/pympress/share/pixmaps/pympress-32.png) What is Pympress?\n\nPympress is a PDF presentation tool designed for dual-screen setups such as presentations and public talks.\nHighly configurable, fully-featured, and portable\n\nIt comes with many great features ([more below](#functionalities)):\n- supports embedded gifs (out of the box), videos, and audios (with VLC or Gstreamer integration)\n- text annotations displayed in the presenter window\n- natively supports beamer's *notes on second screen*, as well as Libreoffice notes pages!\n\nPympress is a free software, distributed under the terms of the GPL license (version 2 or, at your option, any later version).\n\nPympress was originally created and maintained by [Schnouki](https://github.com/Schnouki), on [his repo](https://github.com/Schnouki/pympress).\n\nHere is what the 2 screen setup looks like, with a big notes slide next to 2 small slides (current and next) on the presenter side:\n![A screenshot with Pympress\u2019 2 screens](https://pympress.github.io/resources/pympress-screenshot.png)\n\n# Usage\n\n## Opening a file\nSimply start Pympress and it will ask you what file you want to open.\nYou can also start pympress from the command line with a file to open like so:\n`pympress slides.pdf`\nor\n`python3 -m pympress slides.pdf`\n\n## Functionalities\n\nAll functionalities are available from the menus of the window with slide previews. Don't be afraid to experiment with them!\n\nKeyboard shortcuts are also listed in these menus. Some more usual shortcuts are often available, for example `Ctrl`+`L`, and `F11` also toggle fullscreen, though the main shortcut is just `F`.\n\nA few of the fancier functionalities are listed here:\n- **Two-screen display**: See on your laptop or tablet display the current slide, the next slide, the talk time and wall-clock time, and annotations (either PDF annotations, beamer notes on second slide, or Libreoffice notes pages).\n  The position of the beamer or Libreoffice notes in the slide is detected automatically and can be overridden via a menu option.\n\n  If you do not want to use second-slide beamer notes but prefer to have notes on their own pages, you can enable auto-detection of these notes.\n  Use the following snippet that prefixes the page labels with `notes:` on notes pages:\n  ```latex\n  \\addtobeamertemplate{note page}{}{\\thispdfpagelabel{notes:\\insertframenumber}}\n  ```\n- **Media support**: supports playing video, audio, and gif files embedded in (or linked from) the PDF file, with optional start/end times and looping.\n- **Highlight mode**: Allows one to draw freehand on the slide currently on screen.\n- **Go To Slide**: To jump to a selected slide without flashing through the whole presentation on the projector, press `G` or click the \"current  slide\" box.\n  Using `J` or clicking the slide label will allow you to navigate slide labels instead of page numbers, useful e.g. for multi-page slides from beamer `\\pause`.\n\n  A spin box will appear, and you will be able to navigate through your slides in the presenter window only by scrolling your mouse, with the `Home`/`Up`/`Down`/`End` keys,\n  with the + and - buttons of the spin box, or simply by typing in the number of the slide. Press `Enter` to validate going to the new slide or `Esc` to cancel.\n\n- **Deck Overview**: Pressing `D` will open an overview of your whole slide deck, and any slide can be opened from can simply clicking it.\n- **Software pointer**: Clicking on the slide (in either window) while holding `ctrl` down will display a software laser pointer on the slide. Or press `L` to permanently switch on the laser pointer.\n- **Talk time breakdown**: The `Presentation > Timing Breakdown` menu item displays a breakdown of how much time was spent on each slide, with a hierarchical breakdown per chapters/sections/etc. if available in the PDF.\n- **Automatic file reloading**: If the file is modified, pympress will reload it (and preserve the current slide, current time, etc.)\n- **Big button mode**: Add big buttons (duh) for touch displays.\n- **Swap screens**: If Pympress mixed up which screen is the projector and which is not, press `S`\n- **Automatic full screen**: pympress will automatically put the content window fullscreen on your non-primay screen when:\n  - connecting a second screen,\n  - extending your desktop to a second screen that was mirroring your main screen,\n  - when starting pympress on a two-screen display.\n  To disable this behaviour, untick \u201cContent fullscreen\u201d under the \u201cStarting configuration\u201d menu.\n- **Estimated talk time**: Click the `Time estimation` box and set your planned talk duration. The color will allow you to see at a glance how much time you have left.\n- **Adjust screen centering**: If your slides' form factor doesn't fit the projectors' and you don't want the slide centered in the window, use the \"Screen Center\" option in the \"Presentation\" menu.\n- **Resize Current/Next slide**: You can drag the bar between both slides on the Presenter window to adjust their relative sizes to your liking.\n- **Caching**: For efficiency, Pympress caches rendered pages (up to 200 by default). If this is too memory consuming for you, you can change this number in the configuration file.\n- **Configurability**: Your preferences are saved in a configuration file, and many options are accessible there directly. These include:\n    - Customisable key bindings (or shortcuts),\n    - Configurable layout of the presenter window, with 1 to 16 next slides preview\n    - and many more.\n\n  See the [configuration file documentation](docs/options.md) for more details,\n- **Editable PDF annotations**: Annotations can be added, removed, or changed, and the modified PDF files can be saved\n- **Automatic next slide and looping**\n\n## Command line arguments\n\n-  `-h, --help`: Shows a list of all command line arguments.\n- `-t mm[:ss], --talk-time=mm[:ss]`: The estimated (intended) talk time in minutes and optionally seconds.\n- `-n position, --notes=position`: Set the position of notes on the pdf page (none, left, right, top, or bottom). Overrides the detection from the file.\n- `--log=level`: Set level of verbosity in log file (DEBUG, INFO, WARNING, ERROR).\n\n## Media and autoplay\n\nTo enable media playback, you need to have either:\n- Gstreamer installed (enabled by default), with its gtk plugin (`libgstgtk`) which is sometimes packaged separately (e.g. as `gst-plugin-gtk` or `gstreamer1.0-gtk3`), and plugins gstreamer-good/-bad/-ugly based on which codecs you need, or\n- VLC installed (and the python-vlc module), with `enabled = on` under the `[vlc]` section of your config file.\n\nOn macOS, issues with the gstreamer brew formula may require users to set `GST_PLUGIN_SYSTEM_PATH` manually. For default homebrew configurations the value should be `/opt/homebrew/lib/gstreamer-1.0/`. Make sure to set this environmental variable globally, or pympress might not pick it up.\n\nTo produce PDFs with media inclusion, the ideal method is to use beamer\u2019s multimedia package, always with `\\movie`:\n\n```latex\n\\documentclass{beamer}\n\\usepackage{multimedia}\n\n\\begin{frame}{Just a mp4 here}\n    \\centering\n    \\movie[width=0.3\\textwidth]{\\includegraphics[width=0.9\\textwidth]{frame1.png}}{movie.mp4}\n\n    \\movie[width=0.3\\textwidth]{}{animation.gif}\n\n    \\movie[width=0.3\\textwidth]{}{ding.ogg}\n\\end{frame}\n```\n\nIf you desire autoplay, ensure you have pympress \u2265 1.7.0 and poppler \u2265 21.04, and use the `movie15` package as follows:\n\n```latex\n\\documentclass{beamer}\n\\usepackage{movie15}\n\\begin{document}\n\n\\begin{frame}\n  \\begin{center}\n    \\includemovie[attach=false,autoplay,text={%\n        \\includegraphics{files/mailto.png}%\n      }]{0.4\\linewidth}{0.3\\linewidth}{files/random.mpg}\n  \\end{center}\n\\end{frame}\n\n\\end{document}\n```\n\n# Dependencies\n\nPympress relies on:\n* Python (version \u2265 3.4, python 2.7 is supported only until pympress 1.5.1, and 3.x < 3.4 until v1.6.4).\n* [Poppler](http://poppler.freedesktop.org/), the PDF rendering library.\n* [Gtk+ 3](http://www.gtk.org/), a toolkit for creating graphical user interfaces, and [its dependencies](https://www.gtk.org/overview.php), specifically:\n  * [Cairo](https://www.cairographics.org/) (and python bindings for cairo), the graphics library which is used to pre-render and draw over PDF pages.\n  * Gdk, a lower-level graphics library to handle icons.\n* [PyGi, the python bindings for Gtk+3](https://wiki.gnome.org/Projects/PyGObject). PyGi is also known as *pygobject3*, just *pygobject* or *python3-gi*.\n  * Introspection bindings for poppler may be shipped separately, ensure you have those as well (`typelib-1_0-Poppler-0_18` on OpenSUSE, `gir1.2-poppler-0.18` on Ubuntu)\n* optionally [VLC](https://www.videolan.org/vlc/), to play videos (with the same bitness as Python)\n  and the [python-vlc](https://pypi.org/project/python-vlc/) bindings.\n* optionally Gstreamer to play videos (which is a Gtk library)\n\n### On linux platforms\nThe dependencies are often installed by default, or easily available through your package or software manager.\nFor example, on ubuntu, you can run the following as root to make sure you have all the prerequisites *assuming you use python3*:\n\n```sh\napt-get install python3 python3-pip libgtk-3-0 libpoppler-glib8 libcairo2 python3-gi python3-cairo python3-gi-cairo gobject-introspection libgirepository-1.0-1 libgirepository1.0-dev gir1.2-gtk-3.0 gir1.2-poppler-0.18\n```\n\nDifferent distributions might have different package naming conventions, for example the equivalent on OpenSUSE would be:\n\n```sh\nzypper install python3 python3-pip libgtk-3-0 libpoppler-glib8 libcairo2 python3-gobject python3-gobject-Gdk python3-cairo python3-gobject-cairo typelib-1_0-GdkPixbuf-2_0 typelib-1_0-Gtk-3_0 typelib-1_0-Poppler-0_18\n```\n\nOn CentOS/RHEL/Fedora the dependencies would be:\n\n```sh\nyum install python36 python3-pip gtk3 poppler-glib cairo gdk-pixbuf2 python3-gobject python3-cairo\n```\n\nAnd on Arch Linux:\n\n```sh\npacman -S --needed python python-pip gtk3 poppler cairo gobject-introspection poppler-glib python-gobject gst-plugin-gtk\n```\n\n\n### On macOS\n\nDependencies can be installed using [Homebrew](https://brew.sh/):\n\n```sh\nbrew install --only-dependencies pympress\n```\n\n### On windows\nThe [binary installer for windows](#installing-) comes with pympress and all its dependencies packaged.\n\nAlternately, in order to install from pypi or from source on windows, there are two ways to get the dependencies:\n\n1. using MSYS2 (replace x86_64 with i686 if you're using a 32 bit machine).\n\n   **Warning:** this can take a substantial amount of disk size as it requires a full software distribution and building platform.\n\n    ```sh\n    pacman -S --needed mingw-w64-x86_64-gtk3 mingw-w64-x86_64-cairo mingw-w64-x86_64-poppler mingw-w64-x86_64-python3 mingw-w64-x86_64-vlc python3-pip mingw-w64-x86_64-python3-pip mingw-w64-x86_64-python3-gobject mingw-w64-x86_64-python3-cairo\n    ```\n\n    This is also the strategy used to automate [builds on appveyor](https://github.com/Cimbali/pympress/tree/master/scripts/build_msi_mingw.sh).\n\n2. Using PyGobjectWin32. *Be sure to check the supported Python versions (up to 3.4 at the time of writing)*, they appear in the FEATURES list in the linked page.\n  - Install native [python for windows](https://www.python.org/downloads/windows/)\n  - Get GTK+3, Poppler and their python bindings by executing [the PyGi installer](https://sourceforge.net/projects/pygobjectwin32/).  Be sure to tick all the necessary dependencies in the installer (Poppler, Cairo, Gdk-Pixbuf).\n\nAlternately, you can build your Gtk+3 stack from source using MSVC, see [the Gnome wiki](https://wiki.gnome.org/Projects/GTK+/Win32/MSVCCompilationOfGTKStack) and [this python script that compiles the whole Gtk+3 stack](https://github.com/wingtk/gvsbuild/).\nThis strategy has not been used successfully yet, due to problems building Poppler with its introspection bidings (i.e. typelib) \u2212 see [#109](https://github.com/Cimbali/pympress/issues/109).\n\n# Contributing\n\nFeel free to clone this repo and use it, modify it, redistribute it, etc, under the GPLv2+.\nA [number of contributors](https://github.com/Cimbali/pympress/graphs/contributors) have taken part in the development of pympress and submitted pull requests to improve it.\n\n**Be respectful of everyone and keep this community friendly, welcoming, and harrasment-free.\nAbusive behaviour will not be tolerated, and can be reported by email at me@cimba.li \u2212 wrongdoers may be permanently banned.**\n\nPympress has inline sphinx documentation ([Google style](http://www.sphinx-doc.org/en/latest/ext/example_google.html), contains rst syntax), and the [docs generated from it are hosted on the github pages of this repo](https://pympress.github.io/).\n\n## Translations\n\n![Chinese (simplified)](https://img.shields.io/poeditor/progress/301055/zh-Hans?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%A8%F0%9F%87%B3%20Chinese%20%28simplified%29)\n![Chinese (traditional)](https://img.shields.io/poeditor/progress/301055/zh-Hant?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%A8%F0%9F%87%B3%20Chinese%20%28traditional%29)\n![Czech](https://img.shields.io/poeditor/progress/301055/cs?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%A8%F0%9F%87%BF%20Czech)\n![Hindi](https://img.shields.io/poeditor/progress/301055/hi?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%AE%F0%9F%87%B3%20Hindi)\n![Italian](https://img.shields.io/poeditor/progress/301055/it?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%AE%F0%9F%87%B9%20Italian)\n![Japanese](https://img.shields.io/poeditor/progress/301055/ja?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%AF%F0%9F%87%B5%20Japanese)\n![Polish](https://img.shields.io/poeditor/progress/301055/pl?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%B5%F0%9F%87%B1%20Polish)\n![French](https://img.shields.io/poeditor/progress/301055/fr?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%AB%F0%9F%87%B7%20French)\n![German](https://img.shields.io/poeditor/progress/301055/de?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%A9%F0%9F%87%AA%20German)\n![Spanish](https://img.shields.io/poeditor/progress/301055/es?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%AA%F0%9F%87%B8%20Spanish)\n<!--\u3000https://poeditor.com/docs/languages -->\n\nWe thank the many contributors of translations: <!-- translator list -->\nAgnieszka,\natsuyaw,\nCherrywoods,\nDongwang,\nEstel-f,\nFabio Pagnotta,\nFerdinand Fichtner,\nFrederik. blome,\nFriedrichFr\u00f6bel,\nGM,\nHe. yifan. xs,\nJaroslav Svoboda,\nJeertmans,\nKrist\u00fdna,\nlazycat,\nLeonvincenterd,\nLogCreative,\nLorenzo. pacchiardi,\nLuis Sibaja,\nMarcin Dohnalik,\nmarquitul,\nMorfit,\nMzn,\nNico,\nOgawa,\nPaul,\nPierre BERTHOU,\npolaksta,\nSaulpierotti,\nShebangmed,\nStanis\u0142aw Polak,\nsusobaco,\nTapia,\nTejas,\nTimo Zhang,\nTkoyama010,\nToton95,\nVojta Netrh,\nVulpeculus,\nand <!-- last translator --> Cimbali.\n\nIf you also want to add or contribute to a translation, check [pympress\u2019 page on POEditor](https://poeditor.com/join/project/nKfRxeN8pS).\nNote that old strings are kept and tagged `removed`, to give context and keep continuity between translations of succcessive versions.\nThis means `removed` strings are unused and do not need translating.\n\n## Packages\n\nOfficial releases are made to [PyPI](https://pypi.org/) and with [github releases](https://github.com/Cimbali/pympress/releases).\nThe community maintains a number of other packages or recipes to install pympress (see [Install section](#installing-)). Any additions welcome.\n",
    "bugtrack_url": null,
    "license": "GPL-2.0-or-later",
    "summary": "A simple and powerful dual-screen PDF reader designed for presentations",
    "version": "1.8.5",
    "project_urls": {
        "Documentation": "https://pympress.github.io/",
        "Download": "https://github.com/Cimbali/pympress/releases/latest",
        "Homepage": "https://github.com/Cimbali/pympress/",
        "Issues": "https://github.com/Cimbali/pympress/issues/",
        "Source Code": "https://github.com/Cimbali/pympress/"
    },
    "split_keywords": [
        "pdf-viewer",
        "beamer",
        "presenter",
        "slide",
        "projector",
        "pdf-reader",
        "presentation",
        "python",
        "poppler",
        "gtk",
        "pygi",
        "vlc"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d45fe381aa1d40c78b4c8e860dd61d7fae202156c57f8fe64253a5529db2ad6b",
                "md5": "2859541048ce7e62a564ee6e59f81b3c",
                "sha256": "d148bdde715795f18f4ab2bf63a2c65935b60120ee19a81ff6832c6f480e0e1a"
            },
            "downloads": -1,
            "filename": "pympress-1.8.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "2859541048ce7e62a564ee6e59f81b3c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.4",
            "size": 281876,
            "upload_time": "2023-12-15T12:27:13",
            "upload_time_iso_8601": "2023-12-15T12:27:13.643704Z",
            "url": "https://files.pythonhosted.org/packages/d4/5f/e381aa1d40c78b4c8e860dd61d7fae202156c57f8fe64253a5529db2ad6b/pympress-1.8.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fbe291827c485aae28d69f0b40c6d366b9f6eb96d8208a98af0345e0ade3fbbd",
                "md5": "656e741ddda3d953cc0308b886eeee37",
                "sha256": "29bd39115d05f254da993abba42d54a0e9187f4e2ce7c363324b15136c530bf6"
            },
            "downloads": -1,
            "filename": "pympress-1.8.5.tar.gz",
            "has_sig": false,
            "md5_digest": "656e741ddda3d953cc0308b886eeee37",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.4",
            "size": 233617,
            "upload_time": "2023-12-15T12:27:15",
            "upload_time_iso_8601": "2023-12-15T12:27:15.794652Z",
            "url": "https://files.pythonhosted.org/packages/fb/e2/91827c485aae28d69f0b40c6d366b9f6eb96d8208a98af0345e0ade3fbbd/pympress-1.8.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-12-15 12:27:15",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Cimbali",
    "github_project": "pympress",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "pympress"
}
        
Elapsed time: 0.15619s