I am looking for a PDF Metadata Editor Freeware that can change the Magnification of a PDF document so that, by default, it is set to "Fit to one full page". This can be achieved with Adobe Acrobat via the "Initial View" tab in the "Document Properties" window, and while I have found plenty of free alternatives for editing the PDF metadata, somehow this option is not available on them.
-
1Most options set by Adobe PDF software are recognised only by other Adobe PDF software - every other app does what the heck it likes.– TetsujinMay 13, 2022 at 18:07
-
The OpenAction is an optional part of the specification. And, like others have pointed out, changing the setting Initial View → Magnification setting in Acrobat has ZERO effect when opening the PDF with macOS Preview and Google Chrome.– Zach YoungMay 25, 2022 at 16:22
1 Answer
One option could be to use a Python programming language, specifically PyPDF2 library, that can be used also for writing PDF file's metadata.
Inspired by this topic on Stack Overflow, I was googling for correct metadata option. Later I found from here, that these may be the right ones:
- Navigation: Page Only
- Page layout: Default
- Magnification: Default
- Open to page: 1
So I constructed a basic script, that can persist 'Magnification' set to specific value in a copy of original PDF file (PyPDF2 can not write directly the file as you can read in above SO topic):
# after installed module with for example: python -m pip install PyPDF2
from PyPDF2 import PdfFileReader, PdfFileMerger
file_in = open('temp.pdf', 'rb')
pdf = PdfFileReader(file_in)
pdf.documentInfo
Prints out these values for my testing PDF file:
{'/CreationDate': 'D:19960725144744', '/Producer': 'Acrobat Distiller 2.1 for Power Macintosh', '/Creator': 'FrameMaker 5.1', '/Title': 'Acrobat Reader 3.0 Online Guide', '/Subject': 'HELP', '/Author': 'Adobe User Education', '/Keywords': 'Reader, Acrobat, help, online guide', '/ModDate': 'D:19960725150342'}
metadata = pdf.getDocumentInfo()
pdf_final = PdfFileMerger()
pdf_final.append(file_in)
pdf_final.addMetadata(metadata)
pdf_final.addMetadata({'/Magnification': '100%'})
file_out = open('new.pdf', 'wb')
pdf_final.write(file_out)
file_in.close()
file_out.close()
# now check out metadata of the pdf copy
result = PdfFileReader(str('new.pdf'))
result.documentInfo
which results to:
{'/Producer': 'Acrobat Distiller 2.1 for Power Macintosh', '/NeedAppearances': <PyPDF2.generic.BooleanObject object at 0x0000017C704034C0>, '/CreationDate': 'D:19960725144744', '/Creator': 'FrameMaker 5.1', '/Title': 'Acrobat Reader 3.0 Online Guide', '/Subject': 'HELP', '/Author': 'Adobe User Education', '/Keywords': 'Reader, Acrobat, help, online guide', '/ModDate': 'D:19960725150342', '/Magnification': '100%'}
That means that the parameter for magnification is preserved in the copy of that PDF file, but I cannot test it since the free version of Adobe Reader does not provide the 'Initial View' tab in the document properties. Furthermore if you run through this topic about opening PDF at specific zoom level, you may not be sure, that your PDF browser is respecting this setting (if you are using other than Adobe Acrobat PRO).
Can you try this on your own and let me know if worked?