The following solution, modified from your post, worked pretty well on a document with a 6-page document, where 5 of the pages were 8 1/2 x 11 and another was a weird page size:
StreamedDoc := TMemoryStream.Create;
try
for iPageNum := 0 to iemvDocViewer.ImageCount - 1 do
begin
iemvDocViewer.MIO.Params[ iPageNum ].PDF_PaperWidth :=
iemvDocViewer.MIO.Params[ iPageNum ].Width * 72 div
iemvDocViewer.MIO.Params[ iPageNum ].DpiX;
iemvDocViewer.MIO.Params[ iPageNum ].PDF_PaperHeight :=
iemvDocViewer.MIO.Params[ iPageNum ].Height * 72 div
iemvDocViewer.MIO.Params[ iPageNum ].DpiY;
end;
iemvDocViewer.MIO.SaveToStreamPDF( StreamedDoc );
StreamedDoc.Position := 0;
StreamedDoc.SaveToFile( DestinationName );
finally
StreamedDoc.Free;
end;
Thank you for the help!