con la librería itext puedes hacer eso
(http://www.lowagie.com/iText)
te da una clase que hereda de Graphics, así que puedes dibujar como lo haces normalmente en un objeto Graphics pero te queda en un pdf. Si eso es lo que quieres claro...
en aquella página deben haber ejemplos, pero por ejemplo aquí transcribo lo único que tuve que agregarle a una clase que hereda de Printable con tal generar el pdf, o sea es súper poco el cambio.
import com.lowagie.text.pdf.DefaultFontMapper;
import com.lowagie.text.pdf.PdfContentByte;
import com.lowagie.text.pdf.PdfTemplate;
import com.lowagie.text.pdf.PdfWriter;
...
public void guardarEnPDF (String nomArchivo)throws Exception
{
com.lowagie.text.Document docu = new com.lowagie.text.Document();
PdfWriter writer = PdfWriter.getInstance (docu, new FileOutputStream(nomArchivo));
docu.open();
PdfContentByte cb = writer.getDirectContent();
for (int i=0; i<getNPaginas(); ++i)
{
if (i!=0) { docu.newPage(); }
PdfTemplate tp = cb.createTemplate (pif.porteX, pif.porteY);
Graphics2D g2 = tp.createGraphics (pif.porteX, pif.porteY, new DefaultFontMapper());
imprime (g2, i);
g2.dispose();
cb.addTemplate(tp, 0, 0);
}
docu.close();
}