How to embed fonts into PDF

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?

user55450

Posted 2010-12-09T06:50:43.613

Reputation: 691

Answers

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).

strangeronyourtrain

Posted 2010-12-09T06:50:43.613

Reputation: 156

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.

Kurt Pfeifle

Posted 2010-12-09T06:50:43.613

Reputation: 10 024

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 argument setdistillerparams does not include a space...) – Kurt Pfeifle – 2015-04-13T14:59:39.297

Cygwin 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

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.

Ignacio Vazquez-Abrams

Posted 2010-12-09T06:50:43.613

Reputation: 100 516

PDF is not made by me. I just want to modify it. – user55450 – 2010-12-09T09:21:06.750