У меня есть форма, которая имеет таблицу, которая может содержать 0 строк или несколько строк. Проблема в том, что если есть несколько строк, я хочу закрыть таблицу на первой странице, прежде чем содержимое перейдет на следующую страницу. Затем создайте другую таблицу для остальных строк на следующей странице вместе с хорошими заголовками заголовков и таблиц. Жесткая часть состоит в том, что символы имеют разную ширину, и я не могу предсказать, что пользователь будет печатать, трудно вычислить, сколько символов может поместиться в строке и сколько строк может поместиться на странице. Кроме того, если пользователь вводит что-то в некоторые данные строки, он переносится во вторую строку. Распечатка выглядит плохо, когда в строке есть только несколько строк, потому что на дне есть много пробелов, поэтому я думал о добавлении в пустые строки, чтобы заполнить ее. Но опять же, я не буду точно знать, сколько строк мне нужно заполнить, прежде чем оно выйдет на следующую страницу. У кого-нибудь есть решение?Coldfusion - Dynamic Page Break
EDIT:
Извините. Чтобы быть более ясным, что я делаю, я создал форму, используя CF и HTML, которые визуально напоминают бумажный счет-фактуру. Позиции счетов можно добавлять динамически через AJAX. Там будет куча информации, которая будет заполнена сверху (название компании, адрес и т. Д.), А затем в середине есть строки счетов в таблице с заголовками столбцов, а затем под ней есть дополнительная информация для заполнения, включая поля подписи. Этот формат не может быть изменен, поскольку это требование.
Так раскладка форма:
Верхняя часть (информация, включая информацию клиента и кучу других вещей)
средней части (таблица элементов счета линии)
Нижняя секция (связка другой информации, включая поля подписи)
Визуально на странице поддерживается вышеуказанный формат, и если добавлено много позиций по счету, страница просто прокручивается, а нижняя часть все еще находится в конце.
Можно добавить неограниченное количество строк счетов, так что если вы просто просто распечатаете страницу, строки счетов будут переполнены на следующую страницу, а «нижняя информация», включая подписи, будет на любой странице, на которой может отображаться последняя страница, что нежелательно. Мне это нужно, так что любое количество строк, которые могут помещаться на первой странице без переполнения формы, должно отображаться на первой странице вместе с «нижней информацией», включая подпись. Дополнительные строки отображаются на следующих страницах с заголовками «Страница продолжения» вместе с заголовками столбцов строки счетов-фактур.
Мое решение состоит в том, чтобы создать «вид печати», который создает форму с введенными данными и cfloops запрос строки счета, но только цикл достаточно, чтобы заполнить первую страницу. Если добавление другой строки делает переполнение формы, я бы остановил цикл, отобразив остальную часть формы с «нижней информацией» и сигнатурами, чтобы все это соответствовало первой странице, а затем перерыв страницы с заголовком " Страница континентов "и отобразить таблицу строк счетов с заголовками столбцов и остальными позициями счета-фактуры. Конечно, если страница продолжения будет переполняться, мне нужно будет сделать разрыв страницы и повторить процесс «Продолжение страницы». Сложная часть состоит в том, как определить, сколько строк может действительно соответствовать на странице, потому что длина данных в каждой строке зависит от ввода пользователя. Возможно, только одна строка строки счета, заполненная множеством данных, - это все, что может помещаться на первую страницу без переполнения формы. Может быть, это 10 строк строки счета, когда вводится мало данных.
Моя основная цель - сохранить всю форму на первой странице.Если добавлено несколько позиций счета, которые выталкивают нижнюю часть формы на следующую страницу, я хочу отображать только достаточные строки строки счета, чтобы сохранить форму на первой странице и иметь страницу продолжения для остальных строк счета, которая не была на последующих страницах.
Примечание: печать выполняется с помощью ссылки для печати на странице формы, в которой всплывает страница просмотра печати (без заголовка сайта и т. Д.) В другом окне. Оттуда они могут либо распечататься из браузера, либо щелкнуть ссылку для печати, которая выполняет печать на JavaScript. тот же «вид печати», который я создал для печати счета, также используется для представления PDF, созданного с использованием CFDocument. Количество символов в строке не совпадает с созданным PDF-файлом в качестве вида печати в формате HTML, поэтому еще труднее определить, сколько строк может поместиться.
Задайте конкретный вопрос, и вы получите явный ответ. Ваш вопрос слишком расплывчатый, чтобы ответить. –
Вы генерируете надбавку? PDF-файл? Как печатаются эти материалы? Через CFPRINT? Через веб-браузер? Чего вы действительно спрашиваете здесь? Поставьте себя на нашу обувь - кто еще не знает, о чем вы говорите, - и переформулируйте вопрос, чтобы тот, у кого есть только то, что вы говорите в вопросе, чтобы продолжить, сможет ответить на него. –
Рекомендация: http://cfmlblog.adamcameron.me/2013/09/short-self-contained-correct-compilable.html. И тогда ссылка Адама Тутта включает в себя комментарий: http://msmvps.com/blogs/jon_skeet/archive/2010/08/29/writing-the-perfect-question.aspx –