Нет мыслей по этому поводу? Кто-нибудь?
Вот мой сценарий:
У меня есть форма, в которой пользователь выбирает тип отчета, а затем выбирает список пользователей, для которых он хочет создавать отчеты. Когда они отправляют форму, открывается новое окно, которое использует нумерацию страниц, чтобы позволить пользователю просматривать каждый отчет пользователя, используя следующую и предыдущую ссылки.
Пользователь хочет, чтобы опция:
- выводит на печать как текущий отчет (это легко), так и
- опция «напечатать все» для печати всех выбранных отчетов.
Однако каждый отчет для каждого пользователя должен иметь свой собственный нижний колонтитул «Страница x из n».
Для нижнего колонтитула я использовал параметры нижнего колонтитула браузера, но для того, чтобы нумерация страниц начиналась заново при каждой распечатке отчета, мне нужно сделать отдельный вызов window.print () для каждого из них. Я реализовал это таким образом, и это работает, но это ужасно, потому что каждый вызов print () вызывает новое диалоговое окно печати, означающее, что пользователь должен нажимать кнопку print в каждом диалоговом окне, чтобы завершить запрос на печать. Многие отчеты = глупое количество всплывающих диалогов печати.
В идеале я хотел бы, чтобы печать группы отчетов выглядела как одно задание на печать, но мне нужно, чтобы количество страниц было перезапущено для каждого отчета.
Я думал о том, чтобы попытаться самостоятельно подсчитать количество страниц, чтобы создать свой собственный нижний колонтитул, но это казалось сложной задачей, учитывая все переменные, которые могут повлиять на количество страниц, которое займет отчет. Я также читал некоторые статьи об использовании объектов ActiveX и WebBrowser для принудительной печати и скрытия диалогового окна печати, но у меня ничего не получилось, потому что я работаю на XP SP2. Кроме того, я понимаю, что это не одобряется с точки зрения безопасности, и это не хорошее кросс-браузерное решение.
Кто-нибудь имел дело с печатью этого типа раньше и хотел бы предложить несколько советов о том, как сделать это, или о том, как лучше справиться с этим?
Заранее спасибо.