Portable Document Format: Difference between revisions

From XPUB & Lens-Based wiki
 
(30 intermediate revisions by the same user not shown)
Line 2: Line 2:




A proprietary format owned by Adobe until 2008, when it was released and relicensed as an ISO standard.
A proprietary format launched in 1992, owned by Adobe until 2008, after which it was released and relicensed as an ISO standard.


http://en.wikipedia.org/wiki/Portable_Document_Format
http://en.wikipedia.org/wiki/Portable_Document_Format
Line 9: Line 9:


* https://www.vice.com/en/article/pam43n/why-the-pdf-is-secretly-the-worlds-most-important-file-format
* 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
* [https://web.archive.org/web/20160527105336/http://www.planetpdf.com/planetpdf/pdfs/warnock_camelot.pdf https://planetpdf.com/planetpdf/pdfs/warnock_camelot.pdf]


== PDF, Ghostscript, Postscript ==
== PDF & Postscript ==


...
* [https://computerhistory.org/blog/postscript-a-digital-printing-press/ Computer History Museum documented the history of postscript]


== F/LOSS tools to make PDFs ==
==PDF manipulating/editing tools==
 
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/
[https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/ pdftk] (the PDF toolkit)
* Laidout https://laidout.org/
* Inkscape https://inkscape.org/


===Web based (web-to-print)===
[https://manpages.debian.org/stretch/poppler-utils/pdfimages.1.en.html pdfimages] (part of poppler-utils)  


* your browser (based on [[Paged_Media_CSS_examples|CSS Paged Media]]): use CTRL+P/CMD+P
[https://manpages.debian.org/stretch/poppler-utils/pdfunite.1.en.html pdfunite] (part of poppler-utils)  
* [[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===
[https://manpages.debian.org/stretch/poppler-utils/pdftotext.1.en.html pdftotext] (part of poppler-utils)


* Reportlab https://www.reportlab.com/
$ pdftotext filename.pdf
* Flat http://xxyxyz.org/flat/
$ pdftotext -layout filename.pdf (Maintain (as best as possible) the original physical layout of the text.)
* pyPDF2 https://github.com/mstamy2/PyPDF2


===LaTeX based===
[https://manpages.debian.org/stretch/poppler-utils/pdfinfo.1.en.html pdfinfo] (part of poppler-utils)


* LaTeX https://www.latex-project.org/
$ pdfinfo filename.pdf
* ConTeXt https://wiki.contextgarden.net/Main_Page
$ pdfinfo -meta filename.pdf (print metadata)
 
  $ pdfinfo -url filename.pdf (print all urls)
===Misc===
$ pdfinfo -dests filename.pdf (print all internal links)
 
* [[Imagemagick]] https://imagemagick.org/
 
==PDF manipulating/editing tools==


* pdftk (the PDF toolkit) https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/
[https://manpages.debian.org/stretch/poppler-utils/pdffonts.1.en.html pdffonts] (part of poppler-utils)  
* pdfimages (part of poppler-utils) https://manpages.debian.org/stretch/poppler-utils/pdfimages.1.en.html
* pdfunite (part of poppler-utils) https://manpages.debian.org/stretch/poppler-utils/pdfunite.1.en.html
* pdftotext (part of poppler-utils) https://manpages.debian.org/stretch/poppler-utils/pdftotext.1.en.html
* pdfinfo (part of poppler-utils) https://manpages.debian.org/stretch/poppler-utils/pdfinfo.1.en.html
* pdffonts (part of poppler-utils) https://manpages.debian.org/stretch/poppler-utils/pdffonts.1.en.html


==Examples==
[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]


===Pandoc===
[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]


$ pandoc -f markdown --pdf-engine weasyprint -c stylesheet.css filename.md -o filename.pdf
[[resize.sh]] (using Ghostscript), via [http://osp.kitchen OSP]


===Weasyprint===
[https://github.com/24eme/signaturepdf Signature PDF] (web GUI for pdf signing, editing, combining, compression)


$ weasyprint -s stylesheet.css filename.html filename.pdf
[[Imposition|imposition tools]] (multiple)


===Reportlab===
==See also==


<syntaxhighlight lang="python">
* [[How to PDF]]
from reportlab.pdfgen import canvas
* [[Imposition]] tools, to rearrange PDFs
from reportlab.lib.units import inch, cm
* [[Typesetting Tools]]
c = canvas.Canvas('ex.pdf')
* [[CSS Print]]
c.drawImage('ar.jpg', 0, 0, 10*cm, 10*cm)
* [[:Category:PagedMedia]]
c.showPage()
* [[:Category:FLOSS design]]
c.save()
</syntaxhighlight>


[[Category:PagedMedia]]
[[Category:PagedMedia]]
[[Category:Cookbook]]
[[Category:Cookbook]]

Latest revision as of 11:34, 8 July 2026


A proprietary format launched in 1992, owned by Adobe until 2008, after which it was released and relicensed as an ISO standard.

http://en.wikipedia.org/wiki/Portable_Document_Format

Readings

PDF & Postscript

PDF manipulating/editing tools

pdftk (the PDF toolkit)

pdfimages (part of poppler-utils)

pdfunite (part of poppler-utils)

pdftotext (part of poppler-utils)

$ pdftotext filename.pdf
$ pdftotext -layout filename.pdf (Maintain (as best as possible) the original physical layout of the text.)

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

Signature PDF (web GUI for pdf signing, editing, combining, compression)

imposition tools (multiple)

See also