【问题标题】:Split html string to page将 html 字符串拆分为页面
【发布时间】:2010-12-24 11:52:18
【问题描述】:

在我的 asp.net 项目中,我需要向用户显示大文档。因为文档有很多文本,我需要使用分页。每页应该有大约 5000 个符号。我想按逻辑标记拆分页面,例如<br/>nbspspace

最好的方法是什么?

谢谢

【问题讨论】:

    标签: c# asp.net html parsing


    【解决方案1】:

    最简单的事情是为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/>");
    

    【讨论】:

      【解决方案2】:

      最简单的方法是,如果每个文档的每一页都只是数据库中的一条记录,将文档记录作为主记录将它们保存在一起。但是如果不知道文档的结构,很难判断这样的事情是否可行。 那么,大文件......它们是什么? .PFD 文件? Word文档?还有什么?是否可以将它们拆分为某种数据库结构的页面?

      【讨论】:

      • 在 DB 中存储的文档文本作为 varchar 字段,DTO 具有字符串内容属性,即 html 字符串。所以我不能在 db 处拆分文档内容
      【解决方案3】:

      您可以搜索 HTML 拆分器,例如 http://splity.sourceforge.net/ 上的拆分器

      【讨论】:

        【解决方案4】:

        页面在 HTML 中确实没有意义。浏览器可以是从全屏 27" 高分辨率显示器到手机(甚至是旧的 80x25 字符显示器)的任何地方。一种尺寸绝对不能满足所有需求。

        如果您真的关心页面格式,那么 PDF 是您的最佳选择。

        【讨论】:

          猜你喜欢
          • 2023-04-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-07-25
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多