Some times Matlab cheats like when i run the software using source print, printdlg works fine with out requesting any input parameters but after creating setup ans run standalone it throws an error "Pass the required input".
So please always try to pass parameters while printing like
printdlg(gcf);
then it works fine.