You can install pdfmaker using Brew. In Terminal, just run:
brew tap smittytone/homebrew-smittytone
brew install --cask pdfmaker
Alternatively, click the file link below to download pdfmaker.
Please verify the integrity of the download with the SHA-256 checksum.
File Name | pdfmaker_2_3_7.dmg |
---|---|
File Size | 120KB |
pdfmaker is a macOS command line tool which allows you to combine JPEG and other image files into a single PDF file and to extract a series of images from an existing PDF file.
In Terminal, run:
$ pdfmaker --source <image source directory> \
--destination <pdf save directory/filename.pdf> \
--compress <amount>
If you omit any of these flags, their default values will be used:
~/desktop/PDF From Images.pdf
.You can use -s
, -d
and -c
as shorthand for the flags above — pdfmaker --help
has all the details.
You can also apply the --verbose / -v
switch to obtain extra information during conversion.
From version 2.3.0, the switch --createdirs
, if used, will create any directories required to write the destination file.
To convert a PDF to a set of images, in Terminal, run:
$ pdfmaker --break \
--source <path to pdf> \
--destination <path to folder> \
--resolution <output dpi value>
You can use -b
, and -r
as shorthand for the --break
and --resolution
flags. The -c
flag may also be used to compress the output images.
pdfmaker does not delete the source file.
The compression option will compress images before adding them to the PDF. This allows you to reduce the size of the final PDF, as required. Provide an amount in the range 0.0 to 1.0, where 0.0 is maximum compression (lowest quality) and 1.0 is no compression (highest quality).
Note Building a PDF from JPEG files means that you are already using compressed images. If those JPEGs are highly compressed, applying a low compression amount to pdfmaker will not increase image quality but will make your PDF file larger.
The default output resolution is 72dpi (dots per inch). PDFs store page dimensions as points, rather than pixels, enabling device-independent resolution. pdfmaker determines image pixel dimensions based on the output resolution and the PDF point dimensions. To get correctly sized images out of a PDF, you need to specify the resolution of the images used to source the PDF. You do this be specifying an appropriate output resolution.
For example, a PDF contains a page sourced from a 2600 x 1600 pixel, 300dpi image. Output at 72dpi, this will result in an image of 620 x 400 (2600 * 72 / 300). To get the correct pixel size back, add -r 300
to the command line. This will yield a 2600 x 1600, 300dpi output image.
If you don’t know the source image dpi resolution, experiment with -r
values until you get output of the size you require.
Occasionally, the macOS SDK’s PDFKit will complain about one or more of the images that are being combined into a PDF. In the past, such warnings were output to the terminal by the library itself. The current release of pdfmaker traps these warnings, removes duplicates and issues them in a more friendly way. If you’d like to learn how this is done — essentially by grabbing and parsing PDFKit’s writes to stderr
— please see this blog post.
You can get online help for pdfmaker with pdfmaker --help
or man pdfmaker
.
$ pdfmaker --source ~/Documents/'Project X'/Images \
--destination ~/Documents/PDFs/'Project X.pdf'
This will merge all of the images files in ~/Documents/Project X/Images
into a file called Project X.pdf
which will be located in ~/Documents/PDFs
.
$ pdfmaker --source ~/Documents/'Project X'/Images \
--destination ~/Documents/PDFs/'Project X.pdf' \
--compress 0.5
This will merge all of the images files in ~/Documents/Project X/Images
into a file called Project X.pdf
which will be located in ~/Documents/PDFs
. The compilation process will compress images to 50% JPEG quality.
$ pdfmaker --source ~/Documents/'Project X'/Images/cover.jpg \
--destination ~/Documents/PDFs/'Project X.pdf'
This will convert the image cover.jpg
into a file called Project X.pdf
which will be located in ~/Documents/PDFs
.
$ pdfmaker --break --source ~/Documents/PDFs/'Project X.pdf' \
--compress 0.4 --resolution 200
This converts Project X.pdf
to a series of images that will be written to the desktop (the default destination). This images will be highly compressed and output at a resolution of 200dpi.
You can view Pdfmaker’s source code at GitHub.
STDERR
warning messages and display as pdfmaker warnings.--name
switch.man
page.man
page.--createdirs
switch to create intermediate directories to the specified target.stderr
(click here to see why).SIGINT
.--version
switch.--name
switch.