Printing a booklet on a Mac

I had a 47-page PDF document that I wanted to turn into a compact A5 booklet – you know, one of those things where you get out the big stapler and make something like this:

Unfortunately, you need to print page 39 on the same page as page 10, and then pages 40 and 9 on the other side, etc, and when you get to anything more than about 4 pages it’s hard and tedious to do this by hand and get it right. My HP printer driver had a ‘booklet’ facility, and it worked OK for 8 pages, but let me down when given any more.

Now, there are utilities you can buy which can do exactly this, but why would I spend a tenner or two when I could instead use a few otherwise lucrative working hours and build one myself?

So here’s my solution, which could be a lot tidier, but does the only tricky bit of the job: getting the pages in the right order. It’s an Automator script which you can run as a service: once installed, you can right-click on a PDF and select Services, and you should find a ‘Make Booklet PDF’ option. It produces a new PDF on your Desktop with appropriately shuffled pages. You can then just print that using Preview as follows:

  • Go into the Layout section of the Print dialog.
  • Select Two-Sided Printing
  • Set Pages per Sheet to ‘2’
  • Set the ‘Two-Sided’ option to ‘Short-Edge Binding’

Now, please note: You should understand how this works before trying it! It’s not complex, and I could have made it much prettier and self-explanatory, but I was using Automator, which is so far from a real programming language as to be frustrating. It does, however, have a few useful ways of manipulating PDFs without having to install anything else, and my script will at least prompt you with some of the following information when you run it.

(Note too that if you’re reading this in 2022 or later, you definitely want to continue on to read the updates at the bottom of the post!)

OK,

  • First, the number of pages in your starting PDF must be a multiple of 4. Fortunately, you can easily append blank pages in Preview if needed. Select the last page and choose ‘Edit > Insert > Blank Page’ as often as needed and then save. The script will warn you if your page count isn’t right.

  • Then when you run the script, it will create a folder called ‘booklet-pages’ on your desktop. In here, it will create one PDF for each page of your document.

  • Finally, it will work out what order these pages should be in, and create a new ‘booklet.pdf’ on your desktop with the pages reassembled in that order.

  • You can then delete the ‘booklet-pages’ folder.

So, here’s a zip file containing the Automator script. You should be able to double-click it and open it in Automator if you want to see what’s inside, but I think if you put it into your ~/Library/Services folder within your home directory, it will probably just appear as a service if you right-click on a PDF file in the Finder.

Make Booklet PDF on desktop.zip (for pre-Monterey Macs)

Hope it’s useful to someone! Sorry I can’t provide any support if you try it, but recommendations and improvements are welcome from anybody with more Automator stamina than me! All I can say is that it works nicely on my Mac running High Sierra (10.13.6).

Some updates: please read these when you’ve read all of the above

Update:

If you’re doing this kind of thing, you may also like a video of MacOS PDF tips and tricks, which I made back in 2016 but which people still say they find useful.

Update April 2022:

MacOS version 12.3 and onwards doesn’t include Python 2, on which this script depended, and, while it does include Python 3, Apple haven’t updated Automator to make the switch quite as trivial as it should be! However, I’ve created an updated version which works on my Mac; I hope somebody can confirm that it works for them too! (See below.)

Update June 2022

The new version of the ZIP file below tries harder to find a copy of Python 3 on your computer.

For MacOS 12.3 and later:

  • Download this ZIP file: Make booklet PDF on desktop – 2022b.zip.
  • Your browser may uncompress this for you; if not, then double-click on the ZIP file to reveal the ‘Make booklet PDF on desktop’ workflow inside.
  • Double-click on this and you should be asked if you want to install it as a ‘Quick action’
  • This will then be copied into your ~/Library/Services folder as mentioned above, and you should find it in the ‘Quick actions’ submenu if you right-click on a PDF.

Update Sept 2023

Some people were seeing a final PDF that was blurry. I’ve changed the way the individual pages are combined back into a single PDF, which should fix this. It works on my Mac running Ventura 13.5.

For MacOS 13 and later:

Enjoyed this post? Why not sign up to receive Status-Q in your inbox?

171 Comments

Thank you for this. I discovered the two sheets per page thing, which is really handy, but it’s so bonkers that it won’t print as a booklet in Mac by default.

You’ve seriously been a HUGE help. Thank you.

We just migrated to a MacBook Air from 2 respective PC’s, it’s a bit of a challenge since I always used Publisher to create booklets. It automatically collated pages as you mentioned (i.e. Page 1 & 8 and 2 & 7 were actually the ‘same’ page, that is one 8 x 10 paper folded in half equals 4 sides/pages. Like you did, you had to create your pages in multiples of 4, whether worded or blank. Life was easy!!! That process of folding an 8 x 10 paper in half like a book and marking each ‘quarter’ with a number is an old trick printers used to do when creating a book. Okay, I’m obviously over 50 here :).
Anyway, wondering if this would work with the IOS 14?
thanks!

    Hi Debra –

    No, I’m afraid this is definitely Mac-only; it wouldn’t work on iOS. I haven’t done a search to see whether there’s anything out there that might: it’s not the sort of thing I get the urge to do on my phone, or even my iPad, I must admit!

    Best,
    Quentin

Thanks so much! Worked perfectly.

Awesome. Thanks. It was a perfect solution.

if anyone wants to do this in python


# booklet.py import sys import PyPDF3 as pdf # open our input and output files r = pdf.PdfFileReader(open(f"{sys.argv[1]}.pdf", 'rb')) w = pdf.PdfFileWriter() # create a list of page indices pages = list(range(r.getNumPages())) # pad page index list until its len is a multiple of four while len(pages) % 4: pages.append(None) # index of the last page n = len(pages) - 1 # get document dimensions w = r.getPage(0).mediaBox.getWidth() h = r.getPage(0).mediaBox.getHeight() # we loop in pairs for x in range(len(pages) // 2): # alternately count from the front and back for index in (x, n - x) if x % 2 else (n - x, x): if pages[index] is None: w.addBlankPage(w, h) # pad else: w.addPage(r.getPage(index)) # write the output file w.write((open(f"{sys.argv[1]}-book.pdf", 'wb')))

usage, if we have a file document.pdf: `python3 booklet.py document

    Wow, this is so very useful!
    Just one small remark: the variable “w” is used twice in the python code (once as a PdfFileWriter, once for the width of the document). This gave me an error when executing the script. I renamed “w” to “width” and “h” to “height” and it worked as a charm.
    Would you mind me putting this on github?

What if you want to print 8 1/2″ w x 9″ tall? So each page is 4 1/4″ wide?

Thank you ever so much! This is so helpful!

I’ve been struggling to print PDFs as booklets for a very long time and this is the perfect solution.

I can’t understand how this option doesn’t come as part of the OS, since printing large documents as booklets saves a lot of paper. Apple should buy your piece of code and include it in future versions if they are serious about sustainability!

Um, this has literally made my life 100% easier, thank you so so much! 🙌🏽💫

I stumbled on this while being frustrated with printing booklets and even considered splurging on a publishing program like Affinity just to be able to make booklets. Thanks for making this available. I use it almost every week and it always works like a charm and is easy to use.

Hi, I’ve gotten all the way to “run the script” and a pdf has been created. However, when I go to print in Preview, I am not seeing the “Set the ‘Two-Sided’ option to ‘Short-Edge Binding’” option. Please advise. I have upside down pages that are out of order! Thanks so much.

    Hi Christine –

    Ah, I’m afraid, at that point, it’s dependent on your printer and the printer driver, and how you set up two-sided printing. I put that description in because that’s how it looks for most double-sided printers. Your options may be different.

    If yours doesn’t actually print double-sided, you might have to do something like printing the odd-numbered pages and then feeding them back in to print the even-numbered ones… but that’s something you’d need to work out at your end!

    Sorry not to be more help!
    Quentin

thanks, Quentin. My printer does print double-sided…but doesn’t show this option in Preview. I’ve seen it in google docs, however. Odd.

thank you for making this! thank you! God bless you

Thank you so much!!! 😀

God in heaven bless you.

This is great, thank you so much. I have been doing a photography course and wanted to produce a Zine as an assignment. This solves a huge problem.

Hi Quentin! I needed something a little different–take a series of small pages and make a mini-booklet. Ben Corser’s code above gave me the path forward. Below is what I use to take a series of 3″ x 4″ pages in PDF and produce a PDF I can print, cut, staple, and trim to make my booklets.

# bookleter.py
# Given a pdf of a series of pages (width<4, height<11), creates
# a new pdf that can be printed double-sided, cut to height, stapled, and trimmed
# to make a mini booklet.  Pages are centered on the paper.
#
# create input.pdf
# python3 bookleter.py
# output is booklet.pdf (8.5 x 11 paper)
# 
# If the booklet is <= 5.5" in height, can run the paper thru the printer
# again in the opposite direction and get a 2nd book using the same paper.
# However, some printers may reverse pages, so you may need to shuffle some.

# dgrover@redcedar.com 11/14/2021

# Based on code by Ben Corser in a comment on Q's blog:  https://statusq.org/archives/2019/01/11/8893/

import sys

import PyPDF3 as pdf
from PyPDF3.pdf import PageObject

# open our input and output files
readFile = pdf.PdfFileReader(open("input.pdf", 'rb'))
writeFile = pdf.PdfFileWriter()

# create a list of page indices
pages = list(range(readFile.getNumPages()))
# we do this so we can flag padded pages (==None)

# pad page index list with empty pages until its length is a multiple of four
# (4 pages for each sheet of the booklet)
# Note that when using the index, you must test if a page is None.
# If so, then make it blank on output
while len(pages) % 4:
    pages.append(None)

# get input document dimensions
inputPageWidth = readFile.getPage(0).mediaBox.getWidth()
inputPageHeight = readFile.getPage(0).mediaBox.getHeight()

# blank input page
blackInputPage = PageObject.createBlankPage(None, inputPageWidth, inputPageHeight)

# output dimensions, std 8.5x11 
outputPageWidth = 72.0 * 8.5
outputPageHeight = 72.0 * 11.0

# translation
translateY=outputPageHeight - inputPageHeight
translateXLeft = (outputPageWidth/2) - inputPageWidth
translateXRight = outputPageWidth/2

# each sheet of paper carries 4 pages
# Side 0 contains D (left) and A (right)
# side 1 contains B (left) and C (right)
for sheet in range( int(len(pages)/4)):
    #print("Sheet {0:d}".format(sheet))
    # calculate what pages go where:
    pageA=sheet * 2
    pageB=pageA + 1
    pageD=(len(pages)-1) - (sheet*2)
    pageC=pageD - 1


    # side 0
    # create blank page (output size)
    new_page = PageObject.createBlankPage(None, outputPageWidth, outputPageHeight)
    # add page D (left)
    if pages[pageD]!=None:
        new_page.mergeTranslatedPage(readFile.getPage(pages[pageD]), translateXLeft, translateY)
    # add page A (right)
    if pages[pageA]!=None:
        new_page.mergeTranslatedPage(readFile.getPage(pages[pageA]), translateXRight, translateY)
    # output this page
    writeFile.addPage(new_page)

    # side 1
    # create blank page (output size)
    new_page = PageObject.createBlankPage(None, outputPageWidth, outputPageHeight)
    # add page B (left)
    if pages[pageB]!=None:
        new_page.mergeTranslatedPage(readFile.getPage(pages[pageB]), translateXLeft, translateY)
    # add page C (right)
    if pages[pageC]!=None:
        new_page.mergeTranslatedPage(readFile.getPage(pages[pageC]), translateXRight, translateY)
    # output this page
    writeFile.addPage(new_page)


writeFile.write((open("booklet.pdf", 'wb')))
print("Wrote {0:d} double-sided sheets with {1:d} pages total.".format(int(len(pages)/4), len(pages) ))

    Bothered me that I had to run the printed pages twice through the printer to get a second copy on the page when printing a tiny booklet. The code below will now put two copies on a page if possible, and accepts the input and output file names. Feature creep!

    # bookleter.py
    # Given a pdf of a series of pages (width<4, height<11), creates
    # a new pdf that can be printed double-sided, cut to height, stapled, and trimmed
    # to make a mini booklet. Pages are centered on the paper.
    #
    # If possible, will place a second copy of the pages on bottom half of page, so you
    # don't have to run the pages through the printer a second time (or waste the paper).
    #
    # python3 bookleter.py input.pdf output.pdf
    # output is 8.5 x 11 size
    # (can change outputPageWidth & outputPageHeight below)
    #
    # dgrover@redcedar.com 11/14/2021
    # dgrover 1/7/2022 added 2nd copy if two will fit on a page, use arguments for input/output file names

    # Based on code by Ben Corser in a comment on Q's blog: https://statusq.org/archives/2019/01/11/8893/

    import sys

    import PyPDF3 as pdf
    from PyPDF3.pdf import PageObject

    # get input/output file names
    if len(sys.argv) < 3:
    print("Usage: bookleter.py input.pdf output.pdf")
    exit()
    inputFileName=sys.argv[1]
    outputFileName=sys.argv[2]

    # open our input and output files
    readFile = pdf.PdfFileReader(open(inputFileName, 'rb'))
    writeFile = pdf.PdfFileWriter()

    # create a list of page indices
    pages = list(range(readFile.getNumPages()))
    # we do this so we can flag padded pages (==None)

    # pad page index list with empty pages until its length is a multiple of four
    # (4 pages for each sheet of the booklet)
    # Note that when using the index, you must test if a page is None.
    # If so, then make it blank on output
    while len(pages) % 4:
    pages.append(None)

    # get input document dimensions (in default user space units, 1/72 inch)
    # Note: coords in user space default to (0,0) in bottom left corner.
    inputPageWidth = readFile.getPage(0).mediaBox.getWidth()
    inputPageHeight = readFile.getPage(0).mediaBox.getHeight()

    # blank input page
    blackInputPage = PageObject.createBlankPage(None, inputPageWidth, inputPageHeight)

    # output dimensions, std 8.5x11
    outputPageWidth = 72.0 * 8.5
    outputPageHeight = 72.0 * 11.0

    # will two fit on a single page? (i.e., is orig page height < outputPageHeight/2)
    if inputPageHeight <= outputPageHeight/2:
    twoPerPage=True
    print("Will output two copies per page")
    else:
    twoPerPage=False

    # translation (for top or only)
    translateY=outputPageHeight - inputPageHeight
    translateXLeft = (outputPageWidth/2) - inputPageWidth
    translateXRight = outputPageWidth/2

    if twoPerPage:
    # translation for bottom version, if applicable
    translateY_bot = 0
    translateXLeft_bot = (outputPageWidth/2) - inputPageWidth
    translateXRight_bot = outputPageWidth/2

    # each physical sheet of paper carries 4 pages
    # Side 0 contains D (left) and A (right)
    # side 1 contains B (left) and C (right)
    # and, if two copies of the input can fit on a side of a sheet,
    # add a second copy at the bottom
    for sheet in range( int(len(pages)/4)):
    #print("Sheet {0:d}".format(sheet))
    # calculate what pages go where:
    pageA=sheet * 2
    pageB=pageA + 1
    pageD=(len(pages)-1) - (sheet*2)
    pageC=pageD - 1

    # side 0
    # create blank page (output size)
    new_page = PageObject.createBlankPage(None, outputPageWidth, outputPageHeight)
    # add page D (left)
    if pages[pageD]!=None:
    new_page.mergeTranslatedPage(readFile.getPage(pages[pageD]), translateXLeft, translateY)
    # add page A (right)
    if pages[pageA]!=None:
    new_page.mergeTranslatedPage(readFile.getPage(pages[pageA]), translateXRight, translateY)
    # repeat if needed for bottom
    if twoPerPage==True:
    if pages[pageD]!=None:
    new_page.mergeTranslatedPage(readFile.getPage(pages[pageD]), translateXLeft_bot, translateY_bot)
    # add page A (right)
    if pages[pageA]!=None:
    new_page.mergeTranslatedPage(readFile.getPage(pages[pageA]), translateXRight_bot, translateY_bot)
    # output this page
    writeFile.addPage(new_page)

    # side 1
    # create blank page (output size)
    new_page = PageObject.createBlankPage(None, outputPageWidth, outputPageHeight)
    # add page B (left)
    if pages[pageB]!=None:
    new_page.mergeTranslatedPage(readFile.getPage(pages[pageB]), translateXLeft, translateY)
    # add page C (right)
    if pages[pageC]!=None:
    new_page.mergeTranslatedPage(readFile.getPage(pages[pageC]), translateXRight, translateY)
    # repeat if needed for bottom
    if twoPerPage==True:
    # add page B (left)
    if pages[pageB]!=None:
    new_page.mergeTranslatedPage(readFile.getPage(pages[pageB]), translateXLeft_bot, translateY_bot)
    # add page C (right)
    if pages[pageC]!=None:
    new_page.mergeTranslatedPage(readFile.getPage(pages[pageC]), translateXRight_bot, translateY_bot)
    # output this page
    writeFile.addPage(new_page)

    writeFile.write((open(outputFileName, 'wb')))
    print("Wrote {0:d} double-sided sheets with {1:d} pages total.".format(int(len(pages)/4), len(pages) ))

Works brilliantly–thank you for your effort (Mac OS 10.14.6)

This is fantastic. Thank you so much!

Not able to make work yet…but am admittedly only on OS10.11 but thought would try it anyway. Am getting confused at the “you can right-click on a PDF and select Services, and you should find a ‘Make Booklet PDF’ option”. Does this mean in the Finder menu or on the PDF doc itself once opened. Help appreciated Apologies if am just being dumb…never used Automator before!

Phenomenal. Massive help, saved probably hours of work this time, and God knows how much time in the future. Bless!!

Thanks, Quentin! Very nice script! 😀

Very good, the python script. I don’t like installing stuff from the internet so the visible python code is completely what I needed. Thanks.

Thank you so much, super life saver.

Thank you so much! This was a brilliant find and saved the day for my son’s baptism tomorrow 🙂

Your wonderful script no longer works on Mac Monterey 12.3. Your script relies on Python which has been deprecated on the latest version of the Mac OS. I’m hoping you can create a new version that will run on this latest version.

Hey,

Wonderfull 😉

I downloaded your latest version , but surprisingly, after the script as runned, the result is a booklet with 1 blank page . Some file formating issues ? Or other ?

Cheers

Thanks, this fixed things right up for us!

Lifesaver for passover! Thank you!
I’m on a brand new Mac and it worked perfectly, needed to download a developer tool though.

I came back to download the updated version after mac update but still had issues running. in case you have same issue = I fixed with setting:

run shell script

shell: /usr/local/bin/python3
deleted the first + last line to leave this:

import sys

pages = sys.argv[1:]
if len(pages) % 4 != 0:
sys.stderr.write(“Page count of PDF needs to be a multiple of 4.”)
sys.stderr.write(“You can append blank pages using Preview if needed. Select the last page and choose ‘Edit > Insert > Blank Page’.”)
sys.exit(1)

final_page_num = 4 + 4 * ((len(pages)-1) // 4)
print(final_page_num)

for i in range(0, final_page_num // 2, 2):
# Here’s the sequence of 4 pages we need to combine
# for this double-sided sheet.
print(pages[-(i+1)])
print(pages[i])
print(pages[i+1])
print(pages[-(i+2)])

Thank you so much for your awesome jobs

I tried this and all it did is divide the document up into 1 page files…what am I supposed to do next?!

    Hi Sara –

    Are you running a recent version of MacOS? (ie. Monterey (12.3) or later?)

    If so, did you download the version in the updates at the bottom of the post?
    (It might still not work, but certainly won’t if you didn’t do that!)

    Best,
    Quentin

Thanks for this I used to use OS 10 (Mojave) and there was an app called booklet which did a similar thing for 99p. However I’ve just updated to Os12 (Monterey) and it isn’t compatible. 🙁
The booklet app I used to use turned it into a two per page pdf in the right order and every other page was upside down. This meant when I printed it it was a perfect booklet.
When I use this, (your script) open the pdf and print 2 per page short edge binding, I get a booklet printed where every other page is upside down. From other peoples comments this doesn’t;t seem to happen to them. Is it my printer, or am I doing something wrong?
Many thanks Dan 🙂

    Hi Dan –

    Mmm. I’ve never seen that; it must be something about the way your printer thinks about double sided pages. I don’t suppose the long-edge binding works?

    It wouldn’t be completely trivial to add a rotation option, so the best I can suggest if your PDF isn’t too long is to open it in Preview, Cmd-Click every second page, and then you can rotate all of them by clicking the rotate arrow in the toolbar twice.

    Not ideal, I know, but perhaps OK for short documents?

      Thanks for that, good idea. I just tried it and sadly the booklet was slightly slightly out of order.
      However I got round it on my 16 page booklet, by turning pages 3, 4, 7, 8, 11, 12, 15 & 16 around as you suggested and then swapping over pages 3 & 4, 7 & 8, 11 & 12, 15& 16.

      My printer is a Samsung Xpress M2835DW.

      Any suggestions for an easier solution would be much appreciated.
      Thanks

Thank you! It works perfectly on macOS Monterey 12.0.1

How can I thank you! You have saved me so much time!!!! I was dreading I’d have to cut and paste every page, and turn them around, and… well you know. You’re a genius and I can’t thank you enough. and @niko said “God bless you!!”

Hi. Thanks for the solution, it works really well. However there is no app in Applications. How I could uninstall the application and remove redundant files?

Thanks for quick response Quentin! Under ~/Library I don’t have Services folder. I found it under /System/Library/Services, but there is no files modified today, all seems not related to Make booklet PDF, but ‘Make booklet’ option is still in the menu when right-click on PDF. I would add a screenshots, but I cannot.
Thanks in advance for any tips, I’m not really into higher-level computing or programming.

Hi, I still cannot remove the application from computer. How the structures/files are named?

    Hi Blanka –

    OK, try this, which works on my machine running Monterey:

    • Go to System Preferences and select ‘Extensions’

    • Choose the ‘Finder’ section on the left.

    • On the right you should see ‘Make booklet PDF on desktop’. You can uncheck it to stop it appearing, but you can also right-click and you’ll see ‘Show in Finder’ and ‘Move to bin’.

    (On my machine, ‘Show in Finder’ does indeed show me the file in ~/Library/Services, but yours may be somewhere different.)

    Does that help?
    Quentin

Thank you VERY much for such a great solution in quickly printing booklets from my Mac!! It’s perfect and easy to use. It easily replaces the Booklet feature in the PDF drop down menu in the print dialog box which no longer works for later versions of the OS. Thank you again….. Paul

Thank you very much! I’ve been using this occassionally for a couple years and then discovered it wasn’t working with the latest update. I was so disappointed and then discovered you’d already tackled the problem. Thank you!

I love this script. I’ve installed the latest file after updating to Monterey and get this error:
“xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun”

Please help

What’s the point of doing all this when you can just select Booklet? enter image description here

This looks like just what I need. I chickened out when my new mac mini (M1) said it would take 126 hours to download the Python developer tools. Is that really necessary?
Thanks very much!

    Not at all – I think you should have Python installed already – I’m not sure how technical your background is, but if you run the Terminal and type in ‘python3 –version’ it should tell you whether you have it.

    In the unlikely event that you don’t, you can get it from python.org, and it’s only about 40MB, so unless you have the very slowest connection in the world…

Thanks for the speedy reply! I wasn’t expecting that. I got this:

Laurels-Mini:~ Laurel$ python3 -version
xcode-select: note: no developer tools were found at ‘/Applications/Xcode.app’, requesting install. Choose an option in the dialog to download the command line developer tools.

    Mmm. How very strange. I wonder why your machine needs that…

    Well, you could try installing just the command-line tools with xcode-select --install and see if that works, or you could download and install python directly from python.org ?

It gave me a popup window and asked to install something, so I gave permission. Then I asked the Terminal for the version again. It said:
“Laurels-Mini:~ Laurel$ python3 -version
Unknown option: -e
usage: /Library/Developer/CommandLineTools/usr/bin/python3 [option] … [-c cmd | -m mod | file | -] [arg] …
Try `python -h’ for more information.”

FYI,
It works now. Oddly enough, it also created a folder called booklet-pages earlier, maybe at the same time it was complaining about python. Thanks very much!

    Great –

    The ‘unknown option’ message was because the formatting on my suggestion had turned two dashes into one long one. It should have been python3 --version, but when you have it with a single dash, it treats it like python3 -v -e -r -s -i -o -n and there’s no -e option!

    Anyway, it looks as if you have a copy of python installed as part of the developer tools now as well as the normal system one which I think is in /usr/bin… but as long as it’s working, that doesn’t matter!

    Best,
    Q

Thanks – downloaded and installed yesterday – needed to download some sort of python 3 thing but it worked,. Thanks so much for sharing.

Thank you for sharing! Your workflow works right out of the download, and saved me so much time trying to figure things out. Google keeps sending me to useless sites, that doesn’t get me anywhere.

After upgrading to macOS Ventura, my paid “Create Booklet” app has once again stopped working.

I installed yours using the ‘For MacOS 12.3 and later’ instructions. Within 5 minutes, I had printed my first booklet. Everything worked flawlessly.

Thank you!

Leave a Reply to qsf Cancel reply

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax

*

© Copyright Quentin Stafford-Fraser