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
andpkfix-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 containDocumentMedia
DSC comments let's use them to save some work.Open the
.ps
file in almost any major vector-based drawing program. For example inCorelDraw
either selectImport text as curves
when opening.ps
file or selectExport text as curves
when exporting as.eps
. In others it may be calledCreate 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 theDocumentMedia
line above take the dimensions and put them to command below into the corresponding DEVICE*POINTS options.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.