\documentclass{article}
\usepackage[latin]{babel}
\usepackage{geometry}
\geometry{paperwidth=12cm,paperheight=\maxdimen,margin=2cm}
\usepackage{lipsum}
\textwidth=8cm
\begin{document}
\setbox0=\vbox{
\lipsum[1-5]
}
\dimen0=\dp0
\pdfpageheight=\dimexpr\ht0+4cm\relax
\ifdim\pdfpageheight<12cm \pdfpageheight=12cm \fi
\unvbox0\kern-\dimen0
\end{document}