Yes it,s possible.
Take a look at XSL-FO. XSL-FO describes the elements on a page (a bit like html) and their (relative) position. You will need a renderer which understands FO and can translate it to another format (pdf, rtf, txt, html, etc).
There are several (good) formatters for creating pdf output. Among them, FOP from Apache, Render-x and XSL formatter from Antenna house are the most popular.
Good luck!
Jordi Reineman
Cap Gemini Ernst & Young