Portable Document Format: Difference between revisions
Line 18: | Line 18: | ||
==PDF manipulating/editing tools== | ==PDF manipulating/editing tools== | ||
[https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/ pdftk] (the PDF toolkit) | |||
[https://manpages.debian.org/stretch/poppler-utils/pdfimages.1.en.html pdfimages] (part of poppler-utils) | |||
[https://manpages.debian.org/stretch/poppler-utils/pdfunite.1.en.html pdfunite] (part of poppler-utils) | |||
[https://manpages.debian.org/stretch/poppler-utils/pdftotext.1.en.html pdftotext] (part of poppler-utils) | |||
[https://manpages.debian.org/stretch/poppler-utils/pdfinfo.1.en.html pdfinfo] (part of poppler-utils) | |||
$ pdfinfo filename.pdf | |||
$ pdfinfo -meta filename.pdf (print metadata) | |||
$ pdfinfo -url filename.pdf (print all urls) | |||
$ pdfinfo -dests filename.pdf (print all internal links) | |||
[https://manpages.debian.org/stretch/poppler-utils/pdffonts.1.en.html pdffonts] (part of poppler-utils) | |||
[http://osp.kitchen/tools/pdfutils/tree/master/rgb2cmyk.sh#project-detail-files rgb2cmyk.sh] (using Ghostscript), part of [http://osp.kitchen/tools/pdfutils/ OSP's pdfutils] | |||
[http://osp.kitchen/tools/pdfutils/tree/master/colorSeparation.sh#project-detail-files coloseperation.sh] (using Ghostscript), part of [http://osp.kitchen/tools/pdfutils/ OSP's pdfutils] | |||
[[resize.sh]] (using Ghostscript), via [http://osp.kitchen OSP] | |||
[[Imposition|imposition tools]] (multiple) | |||
== F/LOSS tools to make PDFs == | == F/LOSS tools to make PDFs == |
Revision as of 10:54, 4 December 2023
A proprietary format owned by Adobe until 2008, when it was released and relicensed as an ISO standard.
http://en.wikipedia.org/wiki/Portable_Document_Format
Readings
- https://www.vice.com/en/article/pam43n/why-the-pdf-is-secretly-the-worlds-most-important-file-format
- https://planetpdf.com/planetpdf/pdfs/warnock_camelot.pdf
PDF, Ghostscript, Postscript
...
PDF manipulating/editing tools
pdftk (the PDF toolkit)
pdfimages (part of poppler-utils)
pdfunite (part of poppler-utils)
pdftotext (part of poppler-utils)
pdfinfo (part of poppler-utils)
$ pdfinfo filename.pdf $ pdfinfo -meta filename.pdf (print metadata) $ pdfinfo -url filename.pdf (print all urls) $ pdfinfo -dests filename.pdf (print all internal links)
pdffonts (part of poppler-utils)
rgb2cmyk.sh (using Ghostscript), part of OSP's pdfutils
coloseperation.sh (using Ghostscript), part of OSP's pdfutils
resize.sh (using Ghostscript), via OSP
imposition tools (multiple)
F/LOSS tools to make PDFs
Thanks to the Ghostscript project, there are many free software tools that work with postscript and PDF.
Canvas based (GUI)
- Scribus https://www.scribus.net/
- Laidout https://laidout.org/
- Inkscape https://inkscape.org/
Web based (web-to-print)
- your browser (based on CSS Paged Media): use CTRL+P/CMD+P
- Weasyprint https://weasyprint.readthedocs.io/
- Paged.js https://www.pagedjs.org/
- wkhtmltopdf https://wkhtmltopdf.org/
- OSPKit (CSS Regions legacy support!) http://osp.kitchen/tools/ospkit/
Python
- ReportLab https://www.reportlab.com/
- Flat http://xxyxyz.org/flat/
- pyPDF2 https://github.com/mstamy2/PyPDF2
LaTeX based
Misc
Examples
Pandoc
$ pandoc -f markdown --pdf-engine weasyprint -c stylesheet.css filename.md -o filename.pdf
Weasyprint
$ weasyprint -s stylesheet.css filename.html filename.pdf
ReportLab
from reportlab.pdfgen import canvas
from reportlab.lib.units import inch, cm
c = canvas.Canvas('ex.pdf')
c.drawImage('ar.jpg', 0, 0, 10*cm, 10*cm)
c.showPage()
c.save()