4
3
I have a pdf file, and I want to know if I can embed/subset all its fonts into PDF file itself? Is there any tool supporting this operation?
4
3
I have a pdf file, and I want to know if I can embed/subset all its fonts into PDF file itself? Is there any tool supporting this operation?
1
You can export PDFs from InDesign with the fonts embedded, but that's assuming you have the fonts on your computer and can direct the program to those font files. I'd imagine Acrobat Pro supports this too. I'm not sure about editing the fonts in a PDF file that's already been generated, but if there's any tool that will let you do it, it's probably Acrobat Pro (not to be confused with Acrobat Reader).
4
Ghostscript can do that. One condition though: the font(s) referenced by the original PDF need to be present on the system where you run Ghostscript.
Here is an example command to run on Windows:
gswin32c.exe ^
-sFONTPATH=c:/windows/fonts;d:/some/dir/with/more/fonts ^
-dCompatibilityLevel=1.4 ^
-dPDFSETTINGS=/prepress ^
-dCompressFonts=true ^
-dSubsetFonts=true ^
-dNOPAUSE ^
-dBATCH ^
-sDEVICE=pdfwrite ^
-sOutputFile=output.pdf ^
-c ".setpdfwrite <</NeverEmbed [ ]>> setdistillerparams" ^
-f input.pdf
The resulting output.pdf
should have all fonts embedded which input.pdf
didn't have. Just make sure that -sFONTPATH=...
contains (at least) one directory where the missing fonts are found by the gswin32c
command.
0
The documentation for your PDF generation tool will explain how to enable embedding of fonts where possible. Be sure to follow the license of all fonts embedded in this manner.
PDF is not made by me. I just want to modify it. – user55450 – 2010-12-09T09:21:06.750
Isn't there a missing quote in the second to last line? – slhck – 2015-04-13T11:34:26.583
@slhck: Thanks for spotting the missing quotes. I now added them at the correct location. – Kurt Pfeifle – 2015-04-13T14:45:02.193
Thanks! Weirdly enough the command worked with the wrongly placed quotes too. – slhck – 2015-04-13T14:47:57.270
@slhck: On what OS platform did you test this? The
-c "...."
is to hold a snippet of PostScript code. The quotes are there to work around spaces inside the snippet. That snippet could be divided into two snippets, but then each one should have its own-c
and its own quotes, like-c "<< ... >>" -c "setdistillerparams"
. (So, yes, for the last-c
the quotes could go, because the argumentsetdistillerparams
does not include a space...) – Kurt Pfeifle – 2015-04-13T14:59:39.297Cygwin with Bash, using the Cygwin GhostScript. Perhaps the last command was just ignored then. – slhck – 2015-04-13T15:07:28.583
If
setdistillerparams
is ignored, the whole first-c "<<...>>"
is also void. Ghostscript may then still complete the command successfully, albeit not producing the intended, but a different output (i.e., fonts not embedded). – Kurt Pfeifle – 2015-04-13T15:44:03.640