Идеи по ограничению контента одной печатной странице? - PullRequest
0 голосов
/ 13 июня 2010

У меня есть 5-6 текстовых областей, которые пользователи заполняют в шаблоне (пара столбцов, в основном формат новостной рассылки). Мне нужно ограничить их содержание одной печатной страницей, но мне трудно найти практические решения. Формат печати (поля, размер шрифта и т. Д.) Будет одинаковым для всех пользователей, так как он печатается из центрального источника.

У меня было несколько идей, но все они кажутся довольно ненадежными и трудными для реализации:

  • Определите высоту содержимого с помощью JavaScript и оцените количество напечатанных страниц из этого. Проблема в том, что размеры шрифтов в браузере могут изменяться, это только приблизительная оценка (от пикселей до дюймов) и т. Д.
  • Ограничение количества символов. Это проблематично, поскольку существуют различные текстовые поля, некоторые символы (например, M) занимают больше места, чем другие (например, I), и разрывы строк, очевидно, значат гораздо больше. .

Какие у вас есть идеи? Я ценю вашу помощь!

Ответы [ 3 ]

1 голос
/ 13 июня 2010

Вы можете отформатировать распечатку, используя моноширинный шрифт - это означает, что каждая буква / число / и т. Д. На шрифте имеет одинаковую ширину (например, Courier). Моноширинные шрифты были очень популярны в первые компьютерные дни по тем же причинам - это позволяло разработчикам контролировать то, что отображалось на экране.

Имея фиксированную ширину для ваших столбцов, теперь вы можете точно определить, сколько символов пользователь может добавить в строку. Единственная сложная задача - учесть разрывы строк, что можно сделать, выполнив поиск с помощью Javascript.

Итак, учитывая эти переменные:

  • символов на строку в данном элементе (ширина вашего столбца)

  • строк на элемент (высота поля вашего контента)

Теперь вы можете заранее точно определить, поместится ли ваш контент на странице.

Вы подсчитываете количество строк в каждом поле ввода, и разрыв строки просто заставляет вас начать подсчет другой строки независимо от того, сколько символов в текущей строке.

Это должно дать вам именно тот уровень контроля, который вам необходим.

Что касается внешнего вида, то, пока вы ищете это "машинописное" чувство, не так сложно оформить его, чтобы оно выглядело интересным;) Быстрый веб-поиск дает некоторые моноширинные шрифты, которые могут помочь:

1 голос
/ 13 июня 2010

Измерение содержания и т. Д. Может быть очень сложным.Вместо этого прочитайте, как создать таблицу стилей печати .CSS дает вам некоторый контроль над тем, что и как печатается текст.

Редактировать:

Я никогда не делал ограниченную печать страниц так, как вы собираетесь, но я думаю,используя фиксированный шрифт (каждый символ занимает ровно столько же места), вы, возможно, сможете использовать его.Итак, попробуйте напечатать страницу, заполненную символами фиксированного шрифта, а затем посмотрите, сколько символов вы поместите в x и y.Затем используйте JavaScript для отслеживания (на лету, например, с помощью jQuery) полей ввода, сколько строк они израсходовали.Тогда вы сможете запретить пользователям вводить слишком много текста / перевода строк (вам нужно будет написать весь этот код, так как я сомневаюсь, что есть решение для этого).Вам также нужно будет учитывать расстояние между текстовыми областями на печатной странице.Имеет ли это смысл?

0 голосов
/ 28 июня 2010

Уменьшить межстрочный интервал при переполнении страницы.

LineHeight = 12 'По умолчанию

MaxLines = 50

-Ты считаешь строки

если CountLines> MaxLines, то LineSpace = lineSpace * MaxLines / CountLines

Самым сложным вариантом является изменение размера шрифта до размера Fit.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...