How to use PSTricks in pdfLaTeX?

The easiest way is running xelatex instead of pdflatex. It detects itself PostScript code or eps images in the document and does the conversion on the fly. If you do not want to use xelatex then there are other solutions:

If you have an up-to-date TeX distribution use

\usepackage[pdf]{pstricks}

and then run your document with pdflatex -shell-escape <file>. Then the PSTricks images are created on-the-fly as stand alone pdf images and saved in <file>-pics.pdf. If you have an older system use

\usepackage{auto-pst-pdf}
\usepackage{pst-...}

For more information see PSTricks web page

For Windows you have to install a Perl version, if you want to use the full power of the auto-pst-pdf package. However, if you do not want or cannot install Perl then use

\usepackage[crop=off]{auto-pst-pdf}

There is also a Perl script pst2pdf which can create the document with pdflatex and also the PSTricks images as pdf|png|whatever images. It takes the preamble of the main document and creates stand-alone-documents for all PostScript specific code.


Just another way:

% TeX it with pdflatex -shell-escape filename
% filename.tex
\documentclass{article}

\usepackage{filecontents}

%====== begin file contents ======
\begin{filecontents*}{circle.tex}
\documentclass[border=12pt,pstricks]{standalone}
\usepackage{pstricks}
\begin{document}
\begin{pspicture}[showgrid](4,4)
    \pscircle*[linecolor=red](2,2){2}
\end{pspicture}
\end{document}
\end{filecontents*}
%====== end file contents ======


\usepackage{graphicx}
\IfFileExists{circle.pdf}
{% if exist do nothing
 % file age should be taken under consideration but it is ignored for simplicity!
}
{% if not exist do the following
  \immediate\write18{latex circle && dvips circle && ps2pdf -dNOSAFER -dAutoRotatePages=/None circle.ps}%
}
\begin{document}


\begin{figure}
\centering
\includegraphics[scale=2]{circle}
\caption{Red Circle}
\label{fig:RedCircle}
\end{figure}
\end{document}

While I was not aware of the solution provided by Herbert, let me also introduce another solution.

You can easily use pstricks with pdflatex following this procedure:

  1. Include the pstricks package in your .tex file (the second is necessary only in case that you want to use the pstricks extensions):

    \usepackage{pst-all}
    \usepackage{pstricks-add}
    

Now, when processing your files to generate the final pdf file go through these steps (in the following it is assumed that main.tex is your main tex file):

  1. Create the dvi file:

    latex main.tex
    
  2. Create the postscript file:

    dvips -Ppdf -G0 main.dvi
    
  3. Finally, generate the pdf file:

    ps2pdf main.ps
    

Fortunately, all these steps can be automated in a makefile (I wish there would be a way to attach a file to these answers but I have found none in the advanced help, sorry about that):

NAME    = myfile.pdf
SRC     = main.tex
OBJ     = main.pdf

# Macro Definitions 
LATEX   = latex
DVIPS   = dvips
PSPDF   = ps2pdf
RM      = /bin/rm -f    
TAR     = tar

.SUFFIXES: .tex .dvi .ps .pdf

.tex.dvi:
    $(LATEX) $<

.dvi.ps:
    $(DVIPS) -Ppdf -G0 $<

.ps.pdf:
    $(PSPDF) $<

##############################
# Basic Compile Instructions #
##############################

all:    $(NAME)

$(NAME): $(OBJ)
    @mv $(OBJ) $(NAME)

: $(SRC)

clean:
    @$(RM) *.aux *.log *.nav *.out *.snm *.toc *.dvi *.bbl *.blg *~

delete: clean
    @$(RM) $(NAME) $(OBJ) *.ps *.tar.gz

help:
    @echo "Type 'make; bibtex main; make; make' to get the pdf file"
    @echo "Type 'make clean' to delete all intermediate files"
    @echo "Type 'make delete' to delete all intermediate and output files"

If you copy and paste this makefile to one of yours make sure to put the tabs at the right locations.

An advantage of this approach is that it works smoothly, just typing make after editing your LaTeX files will make all the hard work for you with no other intermediate steps for you to take care of. If you have to process bib references then type: make, then bibtex and make again.