sin mostrarlo, si, podrías dejar el i/frame oculto con el tamaño que necesitas y definir la impresión a ese i/frame.
por ejemplo si el i/frame tiene la id "mipdf", realizas la impresión así:
Código Javascript
:
Ver originaldocument.getElementById('mipdf').print();
tengo mi duda respecto a si en este caso debería empezar con document. o window. , te recomiendo intentar con ambos XD