[Tex/LaTex] Can’t get the pdf and .ps files to use type 1 fonts

acmdvipsfontspstruetype

I am preparing a paper for submission to ACM proceedings and Digital Library. However, I keep getting the "Your pdf and .ps files both use type 3 fonts, you need use type 1 fonts" error from the publishing house.

I have generated plots in PS and PDF formats and both utilize type 3 fonts. I would love to avoid any solution that would require me to reproduce the plots (using matplotlib and python) as much as possible (The computation time to recalculate would mean that I miss the deadline).

I tried the command:

dvips -P pdf -t letter -o <file>.ps <file>.dvi

as well as

\usepackage[T1]{fontenc}
\usepackage{lmodern}

and still get type 3 fonts in my PS files and PDFS

pdffonts <file>.pdf 
name                                 type              emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------
LBEWKO+NimbusSanL-Regu               Type 1C           yes yes no      10  0
PUBBEM+NimbusSanL-Bold               Type 1C           yes yes no       8  0
YFYECG+CMSY10                        Type 1C           yes yes yes     18  0
AHPFBS+NimbusRomNo9L-ReguItal        Type 1C           yes yes no      16  0
AXUBMJ+NimbusRomNo9L-Regu            Type 1C           yes yes no      14  0
YSSGKF+NimbusRomNo9L-Medi            Type 1C           yes yes no      12  0
[none]                               Type 3            yes no  no      67  0
JCUPWZ+CMR10                         Type 1C           yes yes no      69  0
[none]                               Type 3            yes no  no      35  0
[none]                               Type 3            yes no  no      51  0
[none]                               Type 3            yes no  no      71  0
[none]                               Type 3            yes no  no      65  0
[none]                               Type 3            yes no  no      93  0
[none]                               Type 3            yes no  no      66  0
[none]                               Type 3            yes no  no      59  0
[none]                               Type 3            yes no  no      68  0
[none]                               Type 3            yes no  no      63  0
ITCMPN+Helvetica-Bold                Type 1C           yes yes no     117  0
WZLTXN+Helvetica                     TrueType          yes yes yes    121  0
FKSFIN+CMMI10                        Type 1C           yes yes no     125  0
JVZHNQ+Helvetica-Bold                TrueType          yes yes yes    123  0
MTASZJ+Helvetica                     Type 1C           yes yes no     115  0
KXKKTR+Symbol                        Type 1C           yes yes no     119  0
GQCMLS+StandardSymL                  Type 1C           yes yes no     132  0
EDAHZQ+Helvetica                     TrueType          yes yes no     138  0
JWFHTI+Helvetica-BoldOblique         TrueType          yes yes yes    142  0
XUKNTB+HelveticaNeue                 TrueType          yes yes yes    134  0
KRAGHG+Helvetica-Bold                TrueType          yes yes yes    144  0
MAUGEX+Helvetica_00                  TrueType          yes yes no     140  0
[none]                               Type 3            yes no  no     152  0
[none]                               Type 3            yes no  no     160  0
[none]                               Type 3            yes no  no     174  0
[none]                               Type 3            yes no  no     154  0
[none]                               Type 3            yes no  no     168  0
[none]                               Type 3            yes no  no     176  0
[none]                               Type 3            yes no  no     162  0
[none]                               Type 3            yes no  no     167  0
[none]                               Type 3            yes no  no     175  0
[none]                               Type 3            yes no  no     169  0
SITHQP+NimbusMonL-Regu               Type 1C           yes yes no     190  0

I wonder how can I rectify the font type issue. Is there a way to change the font of a PDF or PS plot after-the-fact to produce a compliant PDF and PS version of my paper without any type 3 fonts?

PS: I'd appreciate detailed explanation, as I am new and just getting started with these tools. And I don't mind less than ideal workarounds.

UPDATE :
1. The problematic figures can be downloaded from this dropbox link

Best Answer

If pkfix and pkfix-helper are not able to help, the easiest way is to use a tool that can take the document with text in embedded fonts and convert them to curves/outlines. That way there is no embedded fonts of any kind that can be of trouble. It also saves the effort of trying to find suitable replacement fonts etc.

Since your .ps files contain DocumentMedia DSC comments let's use them to save some work.

$ grep DocumentMedia class_1_best_describer_mention.ps
%%DocumentMedia: 555x608 555 608 0 () ()

Open the .ps file in almost any major vector-based drawing program. For example in CorelDraw either select Import text as curves when opening .ps file or select Export text as curves when exporting as .eps. In others it may be called Create Outlines or something similar.

Edit the exported .eps file and add the line above starting %%DocumentMedia: somewhere near the line starting %%BoundingBox:.

If you want, you can change the .eps ending to .ps.

To create the .pdf file. From the DocumentMedia line above take the dimensions and put them to command below into the corresponding DEVICE*POINTS options.

$ ps2pdf -dDEVICEWIDTHPOINTS=555 -dDEVICEHEIGHTPOINTS=608 class_1_best_describer_mention-2.ps class_1_best_describer_mention-2.pdf

Now you have files that will pass.

However, the best way is to follow the directions in Avoiding Type 3 fonts in matplotlib plots.

I have converted the example files you provided and have them available if there is still need for them.