It's take a little bit of know how to be able to view pdf's correclty on any *nix platform. This post explains how I configure xpdf on FreeBSD 4.10...it should work for other versions but I'm not making any promises. Also, while the specifics may not be the same, the concept is universal to all unices I know of; you need to install ghostscript Type-1 fonts and tell xpdf where those fonts are via xpdfrc for most pdfs to be completely readable.

  1. Install xpf (as root):

    pkg_add ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-4-stable/All/xpdf-3.00_2.tgz

  2. Install ghostscript fonts (as root):

    cd /usr/ports/print/gsfonts/
    make install clean


  3. Edit your /usr/X11R6/etc/xpdfrc file to point to your freshly installed ghostscript fonts. All you are doing is uncommenting a few lines. Mine looks like (NOTE: Lines below may wrap depending on your config. Make sure you fix 'em before blindly putting them into your xpdfrc!):



#========================================================================
#
# Sample xpdfrc file
#
# The Xpdf tools look for a config file in two places:
# 1. ~/.xpdfrc
# 2. in a system-wide directory, typically /usr/local/etc/xpdfrc
#
# This sample config file demonstrates some of the more common
# configuration options.  Everything here is commented out.  You
# should edit things (especially the file/directory paths, since
# they'll likely be different on your system), and uncomment whichever
# options you want to use.  For complete details on config file syntax
# and available options, please see the xpdfrc(5) man page.
#
# Also, the Xpdf language support packages each include a set of
# options to be added to the xpdfrc file.
#
# http://www.foolabs.com/xpdf/
#
#========================================================================

#----- display fonts

# These map the Base-14 fonts to standard X server fonts.
# These are default mappings, built into xpdf - they're shown here
# purely as examples.

#displayFontX   Courier                 "-*-courier-medium-r-normal-*-%s-*-*-*-*-*-iso8859-1"           Latin1
#displayFontX   Courier-Bold            "-*-courier-bold-r-normal-*-%s-*-*-*-*-*-iso8859-1"             Latin1
#displayFontX   Courier-BoldOblique     "-*-courier-bold-o-normal-*-%s-*-*-*-*-*-iso8859-1"             Latin1
#displayFontX   Courier-Oblique         "-*-courier-medium-o-normal-*-%s-*-*-*-*-*-iso8859-1"           Latin1
#displayFontX   Helvetica               "-*-helvetica-medium-r-normal-*-%s-*-*-*-*-*-iso8859-1"         Latin1
#displayFontX   Helvetica-Bold          "-*-helvetica-bold-r-normal-*-%s-*-*-*-*-*-iso8859-1"           Latin1
#displayFontX   Helvetica-BoldOblique   "-*-helvetica-bold-o-normal-*-%s-*-*-*-*-*-iso8859-1"           Latin1
#displayFontX   Helvetica-Oblique       "-*-helvetica-medium-o-normal-*-%s-*-*-*-*-*-iso8859-1"         Latin1
#displayFontX   Symbol                  "-*-symbol-medium-r-normal-*-%s-*-*-*-*-*-adobe-fontspecific"   Symbol
#displayFontX   Times-Bold              "-*-times-bold-r-normal-*-%s-*-*-*-*-*-iso8859-1"               Latin1
#displayFontX   Times-BoldItalic        "-*-times-bold-i-normal-*-%s-*-*-*-*-*-iso8859-1"               Latin1
#displayFontX   Times-Italic            "-*-times-medium-i-normal-*-%s-*-*-*-*-*-iso8859-1"             Latin1
#displayFontX   Times-Roman             "-*-times-medium-r-normal-*-%s-*-*-*-*-*-iso8859-1"             Latin1
#displayFontX   ZapfDingbats            "-*-zapfdingbats-medium-r-normal-*-%s-*-*-*-*-*-*-*"            ZapfDingbats

# These map the Base-14 fonts to the Type 1 fonts that ship with
# ghostscript.  You'll almost certainly want to use something like
# this, but you'll need to adjust this to point to wherever
# ghostscript is installed on your system.

displayFontT1 Times-Roman               /usr/local/share/ghostscript/fonts/n021003l.pfb
displayFontT1 Times-Italic              /usr/local/share/ghostscript/fonts/n021023l.pfb
displayFontT1 Times-Bold                /usr/local/share/ghostscript/fonts/n021004l.pfb
displayFontT1 Times-BoldItalic          /usr/local/share/ghostscript/fonts/n021024l.pfb
displayFontT1 Helvetica         /usr/local/share/ghostscript/fonts/n019003l.pfb
displayFontT1 Helvetica-Oblique /usr/local/share/ghostscript/fonts/n019023l.pfb
displayFontT1 Helvetica-Bold            /usr/local/share/ghostscript/fonts/n019004l.pfb
displayFontT1 Helvetica-BoldOblique     /usr/local/share/ghostscript/fonts/n019024l.pfb
displayFontT1 Courier                   /usr/local/share/ghostscript/fonts/n022003l.pfb
displayFontT1 Courier-Oblique           /usr/local/share/ghostscript/fonts/n022023l.pfb
displayFontT1 Courier-Bold              /usr/local/share/ghostscript/fonts/n022004l.pfb
displayFontT1 Courier-BoldOblique       /usr/local/share/ghostscript/fonts/n022024l.pfb
displayFontT1 Symbol                    /usr/local/share/ghostscript/fonts/s050000l.pfb
displayFontT1 ZapfDingbats              /usr/local/share/ghostscript/fonts/d050000l.pfb

# If you need to display PDF files that refer to non-embedded fonts,
# you should add one or more fontDir options to point to the
# directories containing the font files.  Xpdf will only look at .pfa,
# .pfb, and .ttf files in those directories (other files will simply
# be ignored).

#fontDir                /usr/local/fonts/bakoma

#----- PostScript output control

# Set the default PostScript file or command.

psFile                  "|lpr -Pmyprinter"

# Set the default PostScript paper size -- this can be letter, legal,
# A4, or A3.  You can also specify a paper size as width and height
# (in points).

psPaperSize             letter

#----- text output control

# Choose a text encoding for copy-and-paste and for pdftotext output.
# The Latin1, ASCII7, and UTF-8 encodings are built into Xpdf.  Other
# encodings are available in the language support packages.

textEncoding            UTF-8

# Choose the end-of-line convention for multi-line copy-and-past and
# for pdftotext output.  The available options are unix, mac, and dos.

textEOL         unix

#----- misc settings

# Set the anti-aliasing mode for t1lib and FreeType.  These can be low
# or high (anti-aliasing), plain (no anti-aliasing), or none (disable
# the rasterizer entirely).

#t1libControl           low
#freetypeControl        low

# Set the command used to run a web browser when a URL hyperlink is
# clicked.
    #urlCommand     "netscape -remote 'openURL(%s)'"
  1. Now load up xpdf and you should be able to see all kinds of pretty fonts :)