PDF generator function