【发布时间】:2010-12-24 11:52:18
【问题描述】:
在我的 asp.net 项目中,我需要向用户显示大文档。因为文档有很多文本,我需要使用分页。每页应该有大约 5000 个符号。我想按逻辑标记拆分页面,例如<br/>nbspspace。
最好的方法是什么?
谢谢
【问题讨论】:
在我的 asp.net 项目中,我需要向用户显示大文档。因为文档有很多文本,我需要使用分页。每页应该有大约 5000 个符号。我想按逻辑标记拆分页面,例如<br/>nbspspace。
最好的方法是什么?
谢谢
【问题讨论】:
最简单的事情是为String创建一个扩展方法
public static IEnumerable<string> GetPages(this string text,
int charsPerPage, string breakChar)
{
int count = 0;
int start = 0;
while (count < text.Length)
{
count = Math.Min(text.Length, count + charsPerPage);
if (count == text.Length)
{
yield return text.Substring(start, count - start);
}
else
{
var nextBreak = text.IndexOf(breakChar, count);
if (nextBreak == -1)
{
yield return text.Substring(start, count - start);
start = count + breakChar.Length;
}
else
{
yield return text.Substring(start, nextBreak - start);
start = nextBreak + breakChar.Length;
}
}
}
}
这可能不完全有效,因为我没有正确测试它 - 但你明白了
你可以这样使用它
var pages = text.GetPages(5000, "<br/>");
【讨论】:
最简单的方法是,如果每个文档的每一页都只是数据库中的一条记录,将文档记录作为主记录将它们保存在一起。但是如果不知道文档的结构,很难判断这样的事情是否可行。 那么,大文件......它们是什么? .PFD 文件? Word文档?还有什么?是否可以将它们拆分为某种数据库结构的页面?
【讨论】:
您可以搜索 HTML 拆分器,例如 http://splity.sourceforge.net/ 上的拆分器
【讨论】:
页面在 HTML 中确实没有意义。浏览器可以是从全屏 27" 高分辨率显示器到手机(甚至是旧的 80x25 字符显示器)的任何地方。一种尺寸绝对不能满足所有需求。
如果您真的关心页面格式,那么 PDF 是您的最佳选择。
【讨论】: