As far as I know, rendering a Visualforce page as a PDF is a big pain. Salesforce uses
flying saucer as its PDF generator engine and it have very much limitations.
Visualforce PDF Rendering Considerations and Limitations lists the consideration and limitations you should keep in mind while trying to show Visualforce pages as PDF.
Few points I like to point are:
- Wrapping long texts without space or dash will go out of PDF.
- Shouldn't use input components such as inputField, inputCheckbox.
- Default Salesforce styling won't get applied when rendered as PDF. So you should play with css yourself to get the results. This is big drawback for table structure such as pageblocktable.
So I would recommend you to follow a strategy of bottom up like switching off standardstylesheet in page and create the Visualforce page by yourself, so that it will appear same when rendered as PDF.