Skip to main content

This is a quick-and-dirty MagicPoint to PDF converter.

It supports only a subset of MagicPoint, specifically, the subset I’ve used in my slides so far. If you send me your slide decks, I’ll make mgp2pdf handle them too.

SUPPORT.rst has a list of supported and unsupported features.

BUGS.rst has a list of known bugs.

Installation

pip install mgp2pdf

Usage

mgp2pdf [-v] [--unsafe] slides.mgp [-o output.pdf]
mgp2pdf [-v] [--unsafe] slides.mgp ... [-o directory]
mgp2pdf [-h|--help]

Why another converter?

I used mgp to produce slides for a Python course I taught at Vilnius University. However, since most of the students are not (yet) Linux users, they couldn’t use MagicPoint to view my slides at home. There are some converters from MagicPoint to PostScript/HTML, but the result either looks ugly, or doesn’t support Unicode characters. MagicPoint itself can produce a number of bitmaps (by taking screenshots), but those are big, and the conversion process is inconvenient (you cannot use your machine while mgp is busy rendering slides and taking screenshots).

I wrote a Python program to interpret MagicPoint commands and produce a PDF file using ReportLab. It can handle my slides (Lithuanian), but otherwise it is probably incomplete. Feel free to give it a try. File bugs for missing features, and I’ll see what I can do.

Resources

There’s a web page, of sorts, at https://mg.pov.lt/mgp2pdf

The source code can be found at https://github.com/mgedmin/mgp2pdf.

Report bugs at https://github.com/mgedmin/mgp2pdf/issues.

Licence: GPL v2 or v3 (https://www.gnu.org/copyleft/gpl.html)

https://github.com/mgedmin/mgp2pdf/workflows/build/badge.svg?branch=master https://ci.appveyor.com/api/projects/status/github/mgedmin/mgp2pdf?branch=master&svg=true https://coveralls.io/repos/mgedmin/mgp2pdf/badge.svg?branch=master

Changelog

0.11.0 (2024-10-09)

  • Add support for Python 3.8, 3.9, 3.10, 3.11, 3.12, and 3.13.

  • Drop support for Python 2.7, 3.5 and 3.6.

0.10.2 (2019-04-23)

  • Add Python 3.6 and 3.7 support (no actual code changes required).

  • Drop Python 3.3 and 3.4 support.

  • Stop using :weight=bold and such when passing font patterns to fc-match; specify :weight=200 etc. Fixes “Unable to parse the pattern” from fc-match and “Could not find the font file for Sans:weight=bold” from mgp2pdf.

0.10.1 (2016-09-17)

  • Correctly recognize ...-...-r fonts as roman (GH #6).

  • Add support for cyan color (GH #5).

  • Fix typo in error message (GH #4).

  • Add Python 3.5 support.

  • Drop Python 2.6 support.

0.10 (2015-01-06)

  • %filter is disabled by default for being a security risk. Use --unsafe to enable.

  • -o DIRECTORY is now supported.

  • Interpret image paths relative to the location of the mgp file.

  • Support Python 3.3 and up in addition to 2.6 and 2.7.

  • More accurate text positioning (mgp2pdf no longer truncates the corrdinates to integral point values).

  • More color names are now recognized: white, red, green, blue, yellow.

  • Better font name recognition (requires fc-match from fontconfig).

  • Improved error handling and reporting.

  • Support %% comment syntax.

  • Corrected handling of %default, %tab, %deffont.

  • Implemented %include.

  • Implemented %newimage -raise (also discovered that mgp itself ignores -raise).

  • 100% test coverage.

0.9 (2014-05-09)

  • First packaged release.

Release files for mgp2pdf 0.11.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mgp2pdf 0.11.0
File Size Uploaded
mgp2pdf-0.11.0.tar.gz 35.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mgp2pdf 0.11.0
File Interpreter ABI Platform
mgp2pdf-0.11.0-py3-none-any.whl Python 3 none any Details

Total release size: 56.1 kB

Release files / mgp2pdf-0.11.0.tar.gz

Download URL mgp2pdf-0.11.0.tar.gz
Size 35.5 kB
Tags Source
SHA-256 checksum
How to use checksums
13e0fb3185db30f037c634cd87a606680e6a1a95c8aea90bea60fad8c241a677
BLAKE2b-256 checksum
How to use checksums
c95fa65bd39aaa6af0c7b6b1b2ae20eab78aa9dafa51bf7277e8ac42caeed127
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.3

Release files / mgp2pdf-0.11.0-py3-none-any.whl

Download URL mgp2pdf-0.11.0-py3-none-any.whl
Size 20.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6229bd32708c2b3b82c2d93cc7308e4d53bfea19827bfc96eff93b468032a033
BLAKE2b-256 checksum
How to use checksums
b9fe39e454a64f8e79b6096c7524a6c2bfe0fcc19e5d6c6a0363bb680f03442a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.11.0 This release

2 release files

0.10.2

2 release files

0.10.1

2 release files

0.10

1 release file

0.9

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page