我有5-6个文本区域,用户填写在一个模板(几个专栏,基本上是一个通讯格式)。我需要把他们的内容限制在一页纸上,但我很难想出切实可行的解决方案。印刷格式(边距、字体大小等)对所有用户都是一样的,因为它是从一个中央源打印出来的。
我有几个想法,但它们看起来都很不可靠,很难实现:
你们都有什么想法?我很感激你的帮助!
发布于 2010-06-12 23:25:21
测量内容等可能是非常棘手的。相反,请阅读如何制作打印样式表。CSS使您可以控制文本打印的内容和方式。
编辑:
我从来没有像你想的那样限制页面打印,但我认为,通过使用固定字体(每个字符占用的空间完全相同),您也许可以完成它。因此,尝试打印一页充满固定字体字符的页面,然后查看您在x和y中插入了多少个字符,然后使用JavaScript来监视(例如,使用jQuery)输入框中它们用完了多少行。这样,您就可以限制用户输入太多的文本/linefeed(您需要编写所有这些代码,因为我怀疑有这样的解决方案)。您还需要考虑到打印页面上文本区域之间的间距。这有道理吗?
发布于 2010-06-13 00:31:49
您可以使用单间距字体格式化打印输出--这意味着字体上的每个字母/数字/等等都是相同的宽度(例如,信使)。由于类似的原因,单频字体在早期的计算机时代非常流行--它允许开发者控制屏幕上显示的内容。
如果您的列有固定的宽度,您现在可以确定用户每一行可以添加多少个字符。剩下的唯一挑战是如何计算换行符,这可以通过使用Javascript搜索它们来完成。
因此,考虑到这些变量:
现在,您可以提前准确地知道您的内容是否适合页面。
您可以计算每个输入字段的行数,换行符迫使您开始计算另一行,而不管当前行中有多少个字符。
这应该会给你精确的控制量,你需要。
至于外观,只要你选择的是“打字机”,你就会觉得要让它看起来有趣并不难;)一个快速的网络搜索会产生一些可能有用的单频字体:
发布于 2010-06-28 10:06:09
减少页溢出时的行间距。
LineHeight = 12‘默认值
MaxLines = 50
-Here你数数行
如果CountLines > MaxLines,那么LineSpace = lineSpace * MaxLines / CountLines
最复杂的选项是更改字体大小直到适合。
https://stackoverflow.com/questions/3030415
复制相似问题