Речь про PrintDialog и конкретно про PrintVisual(Visual вашКонтрол, string описаниеЗаданияПечати):
Сделали мелкософтовцы "печать контрола" и это замечательно — я побырому применил его в проге и уже было обрадовался, что "задарма" сделал печать сложной формы, но поддых получил откуда не ждали — оказывается, это только называется "печать"! На деле, контрол тупо выводится на "бесконечное полотно печати" и плевать он хотел на настройки принтера, а конкретно — на СТРАНИЦЫ(!!). Т.е. в выходном файле всего одна страница размером с печатаемый контрол — ват зе фак?!

Как результат, любые попытки напечатать это "чудо" проваливаются, ибо принтер просто не понимает, что нужно одну страницу "расчленить" на подстраницы.
Зачем тогда называть это "печатью", да ещё и внутри принт диалога, если эта галимая "картинка контрола" вообще никакого отношения к печати не имеет??
От возмущения к вопросам, а точнее одной элементарной задаче: есть контрол, который может быть оч длинный. Нужно его напечатать на физических страницах, соотв. нужны номера страниц и сам контрол должен "разрываться" между страницами. Метод "в лоб" не помог — ну не знают в микрософте, что у страниц тоже есть границы!
Я обдумывал вариант печати в PDF и потом как-то "разрезать" по размерам A4, но готовых утилит для этого не существует.
Конечно же, я не мог не попасть на
гуглёжный вариант с DocumentPaginator и FixedPage, но если вы читали этот код, то это полный маразм! НАМ САМИМ предлагают сношаться с контролом, чтобы мы его ручками разбивали на страницы — тупее идеи не придумать! Контролы — чудовищно сложная вещь даже если это просто листбокс, просто невозможно его разбивать какими-то ручными методами. Другими словами, мелкософт опять сделал что-то "на отъявись" — наспех настрочили "вывод на печать", а про главное позабыли — это ПЕЧАТЬ, а не "сбросить картину 5х5 метров в абстрактный принтер".
Господа погромисты, есть какие-нть идеи как это решить? Можно даже коммерческим контролом, но лучше как-то своим кодом.
Здравствуйте, Baiker, Вы писали:
B>Господа погромисты, есть какие-нть идеи как это решить? Можно даже коммерческим контролом, но лучше как-то своим кодом.
Пользуем
FastReport , когда надо по богатомоу -> ActiveReports
... Хорошо уметь читать между строк. Это иногда
приносит большую пользу