【问题标题】:Add header and footer to an RTF file using c#使用 c# 将页眉和页脚添加到 RTF 文件
【发布时间】:2014-07-01 19:43:27
【问题描述】:

我们有一个 MVC 应用程序,它基于模板(它们本身就是 RTF 文件)输出 RTF 文件。

我的同事编写的代码使用System.Windows.Forms.RichTextBox 将文本转换为RTF 文件(更确切地说,它使用RichTextBoxRtf 属性)。我正在考虑向模板 RTF 文件添加页眉和页脚,但 RichTextBox 似乎删除了这些。此外,我们生成的一些文档由多个模板组成(通常,一个模板不等于一个页面,一个模板可以注入另一个模板的中间),这就是为什么包含页眉和模板中的页脚不起作用。

有没有什么方法可以将 C# 中的页眉和页脚添加到以上述方式创建的 RTF 文档中?

我尝试从互联网上钓到一些关于这个主题的东西,但我找不到任何具体的东西。

【问题讨论】:

    标签: c# .net rtf


    【解决方案1】:

    我正在寻找一个可能解决我的问题的库,我遇到了这个: .NET RTF Writer Library in C#

    该库本身并不能完全解决我的问题,但是它生成的文档很容易阅读,并且没有所有废话 Word 会放入其中。该库的演示会生成一个包含页眉和页脚的文档。这两个的代码看起来或多或少是这样的:

    {\header
    
    {\pard\fi0\qd
    This is a header
    \par}
    
    }
    
    {\footer
    
    {\pard\fi0\qc
    {\fs30 
    This is a footer
    }\par}
    
    }
    

    我仍然需要弄清楚如何在这里应用正确的格式,但这应该相对容易找到。所以,我可以通过将上面的代码注入RichTextBox生成的RTF代码来解决我最初的问题。我不确定这两个标签的位置是否重要,但我想我很快就会发现...


    这是我用来注入页眉和页脚的代码:

    public string AddHeaderAndFooter(string rtf)
    {
        // Open file that stores header and footer
        string headerCode = System.IO.File.ReadAllText(Server.MapPath("~/DocTemplates/header.txt"));
        // Inject header and footer code before the last "}" character
        return rtf.Insert(rtf.LastIndexOf('}') - 1, headerCode);
    }
    

    请注意,我在静态 txt 文件中有页眉和页脚,因为它实际上包含 RTF 可读格式的图像,并且太大而无法放入代码中。我没有注意到与在 RTF 文件末尾定义页眉和页脚这一事实相关的任何问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-14
      • 1970-01-01
      • 1970-01-01
      • 2015-12-05
      • 1970-01-01
      • 2021-03-22
      • 1970-01-01
      相关资源
      最近更新 更多