Если PageMsg не обрабатывается, отображение режется на куски, и кидается на печать. Поглядите в каком порядке идут куски:
## Код:
```
PROCEDURE (v:... ) Restore (f: Views.Frame; l, t, r, b: INTEGER);
BEGIN
  IF Views.IsPrinterFrame(f) THEN (* вывести l, t, r, b *) END;
  ...  
END;
```
Ещё момент - при печати делаетсякопияотображения, чтобы прокрутка его не затрагивала.