The cmap package is intended to make the PDF files generated by pdflatex "searchable and copyable" in acrobat reader and other compliant PDF viewers. Just put the line \usepackage{cmap} at the beginning of your preamble, and it will pre-load the needed CMap translations for the fonts used in the document, provided that there exists the file .cmap for the font encoding. Current version of the CMap package includes CMap files for the following LaTeX font encodings: T1, T2A, T2B, T2C, T5. Adding support for other font encoding does not require the change in the cmap.sty package: just create the .cmap file and make it visible to TeX by putting it into the appropriate directory. It works for Type 1 fonts, and also for Type 3 fonts (including the PK fonts which are preloaded as Type 3 fonts into PDF) with recent versions of pdftex. The main limitation currently is inability to work with virtual fonts, and this is because of limitation of pdftex, and may be resolved in a future versions of pdftex. It is possible to work around this limitation by creating a Type 3 font which implements instructions contained in the virtual font.