made renderPdfHorizontal call format consistent

with the other functions (just requiring a container and element). also
refactored pdf rendering internally to avoid the disgusting mess of
repeated code.