How to embed Arial in PDF when PDF has Helvetica?

26,969

Solution 1

In order to embed a font in a PDF document you must have that font available on your system and the font needs to allow embedding. Almost all fonts allow embedding, so that shouldn't be a problem.

A manual way to embed a font in Acrobat (I'm using Acrobat 8 Professional, so hopefully it is available in 7 - I don't have access to 7 anymore) is to use the "TouchUp Text Tool"

Tools > Advanced Editing > TouchUp Text Tool
  1. With the tool selected, click on some text that uses the font you want to embed to select it.
  2. Right click and choose Properties...
  3. Choose the Text tab
  4. Look for the Permissions Field - It will tell you if the font can be embedded
  5. Directly to the Right of that information is a checkbox for "Embed"
  6. Check Embed
  7. Hit Close
  8. Save the Document
  9. That font should now be embedded - check the Fonts setting to make sure

    File > Properties... > Fonts
    

You'll have to repeat this process for each font you want to embed.

Solution 2

You can use Ghostscript (even on Windows) to create PDFs that have all Fonts (even TrueType fonts) embedded.

If you are lucky, you might be able to create a PostScript file (which will serve as the input for the PDF-creation process run by Ghostscript) that has the fonts embedded, by following these steps:

  • Install the latest Ghostscript for Windows (v8.71) on your PC.
  • Install Adobe PostScript driver on your Windows box.
  • Choose all default settings (esp. page size and orientation) you want to use for your PDF.
  • Set up font embedding (on 'Advanced' tab in driver properties) like this:
    • TrueType-Font: 'download as softfont to printer'
    • TrueType download option: 'TrueType' (not 'Outline' or 'Bitmap' or 'Auto')
  • Enable 'Print to File' checkbox.

(Above UI strings have been translated by me back to English -- so the exact wordings you see on your PC may be different.)

When you print, you'll be prompted for a filename+path, with a default extension of *.prn. Save the file as "somename.ps" (it will be PostScript).

Now run a Ghostscript commandline in a cmd/DOS window to create the PDF:

gswin32c ^
 -dNOPAUSE ^
 -dBATCH ^
 -sDEVICE=pdfwrite ^
 -dPDFSETTINGS=/prepress ^
 -dCompatibilityLevel=1.4 ^
 -dHaveTrueTypes=true ^
 -dSubsetFonts=true ^
 -sOutputFile="c:\path\to\somename.pdf" ^
 -c ".setpdfwrite <</NeverEmbed [ ]>> setdistillerparams" ^
 "c:\path\to\somename.ps"

Ghostscript will use it's own (very good) clone fonts (donated by the URW Foundry under a FOSS license) in place of the original Adobe 'base 14' ones. Specifically, it will use:

  • instead of "Times": "Nimbus Roman No9 L"
  • instead of "Helvetica": "Nimbus Sans L"
  • instead of "Courier": "Nimbus Mono L"
  • instead of "Symbol": "Standard Symbols L"
  • instead of "ZapfDingbats": "Dingbats"
Share:
26,969

Related videos on Youtube

Brooks Moses
Author by

Brooks Moses

Updated on September 17, 2022

Comments

  • Brooks Moses
    Brooks Moses over 1 year

    So, I've got a PDF file that's generated by a program that uses the Base 14 fonts, so that it contains "Helvetica" and "Times Roman". When I look at that in my copy of Acrobat 7.0 on Windows (for example), it shows these with Arial and Times New Roman. I'm fine with that.

    The issue is that I'd like to publish this PDF file on lulu.com, and they want all fonts embedded. Including the Base 14. I don't have a copy of Helvetica, so what seems the natural thing to do is substitute Arial for Helvetica and embed Arial. How can I do that?

    I tried using the Print feature in Acrobat (note: this is the full version, not Reader) to print to a PDF file using Adobe's "Print to PDF" printer driver, and selected the "Embed All Fonts" option in the print settings. This worked for the fonts that I had actual copies of, but instead of "printing" Arial for Helvetica -- which it would do if printing to a real printer -- it leaves all the Helvetica as Helvetica and doesn't embed it.

    Any suggestions for alternate ways to do this? What I really want is just a copy of my PDF file with ALL fonts embedded, and I'm quite happy if doing that means making one of the usual substitutions for the "Helvetica" that's in it. I'd be happiest if I can do that within Acrobat or other software that I have (pdftex, maybe?), but I'm willing to install another free utility if I need to.

    • doctorate
      doctorate about 9 years
      I have the same problem, I don't have Adobe Professional, and I have windows 7, any directions? I would be very glad if you could share your best approach now to get this done.
  • Brooks Moses
    Brooks Moses over 14 years
    Thanks for the detailed explanation! It didn't quite address my real issue -- which is that the font for this text is listed as "Helvetica Bold" (which I don't have), and I'd like to substitute it for "Arial Bold" (which it's already doing to display the text!) and embed that. It turns out, though, that if I use the font pull-down in that dialog box, I can tell it to substitute Arial Bold for Helvetica Bold, and it will do that throughout the whole document -- and then I can embed it, and things are good.
  • Brooks Moses
    Brooks Moses over 14 years
    Actually, no, that doesn't quite work -- when I do the substitution for "Times Roman" to "TimesNewRoman", it immediately loses my "fi" and "fl" ligatures. It was displaying them before! I suspect that's going to be a lot harder to solve, though....
  • Brooks Moses
    Brooks Moses over 14 years
    So I guess my real question is: How can I get it to do the same font-substitution in the document that it's doing to display it? With the ligatures and all?
  • jmohr
    jmohr over 14 years
    So, you're able to embed Arial Bold for Helvetica Bold and it works fine. The only remaining issue is retaining the ligatures when embedding TimesNewRoman for Times Roman?
  • Brooks Moses
    Brooks Moses over 14 years
    Yes, that seems to be the only remaining problem. After thinking about this a bit, I realized that it's really a text-changing problem rather than a font-embedding one, so I don't entirely expect a good answer, but I wouldn't mind having one. (I do have the rest of Adobe CS2, so if InDesign would help, I can use that.) Thanks again!
  • Kurt Pfeifle
    Kurt Pfeifle almost 14 years
    @Brooks Moses: You said, 'when I do the substitution for "Times Roman" to "TimesNewRoman", it immediately loses my "fi" and "fl" ligatures. It was displaying them before!' -- Did you verify that your Acrobat did use TimesNewRoman for displaying the PDF on screen (it will state the font differences [original/currently-displayed] in the document properies --> fonts window)? Or did Acroabat rather use something called 'Adobe Serif MM' for the displaying?
  • doctorate
    doctorate about 9 years
    can you pls recommend a link to download Adobe PostScript driver on Windows 7? I have the same problem,, even same font types -- brilliant solution for me -- I don't know whether you could recommend an easier one? or may be more details about how to convert to .ps file. Very much apprecated as this will save my pdfs plagued with Helvetica, Helvetica-oblique and ZapfDingbats. Time is short to meet the printing house requirement.
  • doctorate
    doctorate about 9 years
    can you please care to answer this post: stackoverflow.com/q/28568847/1288722 ?
  • doctorate
    doctorate about 9 years
    I installed postscript universal one and was fine. Now my problem I cannot see the option TrueType among others in ...download option: 'TrueType' (not 'Outline' or 'Bitmap' or 'Auto')
  • doctorate
    doctorate about 9 years
    it worked now! but I want to get a pdf cropped to the same size of the original pdf? I have various sizes of PDFs. Any idea how to make the size of the printed .ps file exactly the same size of original PDF?