使用XML、XSLT和c#创建RTF或PDF

使用XML、XSLT和c#创建RTF或PDF,c#,sql-server,xml,xslt,pdf,C#,Sql Server,Xml,Xslt,Pdf,编辑: 用户通知我他也将接受PDF格式 我必须在服务器端代码中创建一个简单的RTF或PDF文档,并保存在网络驱动程序中,以备将来下载 这封信将根据我存储在SQL Server(2005)中的信息填充。我使用LINQtoSQL模型访问数据库。该文档将由ASP.NETMVC1.0前端下载 文件的结构将非常基本。这是一封有一些基本信息的信 我浏览了一些网页,看到一些帖子建议我使用XSLT生成RTf文档 有人能推荐一个好的教程吗?我以前从未使用过XSLT,所以一个“针对傻瓜”的教程会很棒 如有任何其他技

编辑: 用户通知我他也将接受PDF格式

我必须在服务器端代码中创建一个简单的RTF或PDF文档,并保存在网络驱动程序中,以备将来下载

这封信将根据我存储在SQL Server(2005)中的信息填充。我使用LINQtoSQL模型访问数据库。该文档将由ASP.NETMVC1.0前端下载

文件的结构将非常基本。这是一封有一些基本信息的信

我浏览了一些网页,看到一些帖子建议我使用XSLT生成RTf文档

有人能推荐一个好的教程吗?我以前从未使用过XSLT,所以一个“针对傻瓜”的教程会很棒

如有任何其他技术建议,将不胜感激。寻求快速胜利并不一定是完美的解决方案

谢谢


我是w3schools教程的粉丝


这里有一个关于

我是w3schools教程的粉丝


下面是一个关于

的例子,如果您采用这种方法,那么您将运行的工作流将大致如下:

  • SQL Server->内部表示
  • 内部表示->XML表示(可能使用Linq to XML)
  • XML+XSLT->输出表示
  • 基本上XSLT所做的是允许您获取XML并根据一组规则从中生成文本,这些规则比程序规则更具功能性。在学习过程中,我在XSLT(主要是生成HTML文档)方面取得了很多成功。我开始学习的那本书是:XSLT:masteringxml转换的第一版。Doug Tidwell的《面向初学者和高级用户》(有这么长的标题,现在是第二版)

    实际问题是,您是否希望从模板生成文档?也就是说,您将拥有一组数据。通过将数据机械地转储到框架中,您是否能够创建所需的文档?这方面的好消息是,您可以使用XSLT做很多事情。更好的消息是,您可以将XLST与应用程序分开存储,这样可以更容易地进行调整,还可以根据需要使用多个模板

    由于RTF是一种文本文档格式(?),您应该能够从XLST生成所需的内容

    PDF的问题——如果沿着XSLT的路线走下去,那么您需要一些东西来将XSL-FO转换为PDF文档,这不仅会带来更大的复杂性,而且——就快速取胜而言——还有更多的东西需要学习

    您的选择是直接从内部模型生成RTF或PDF。您将失去模板功能,但会更接近您的基本舒适度(代码)——在这方面,isharptext在这里说了很多好话

    我同意你的观点


    我已经讲了一点,但重点是,它应该让您真正想要您需要的,并且将是对您的工具包的一个积极和灵活的补充,但是您可能会在这一过程中遭受一些痛苦(XSLT不是过程代码,如果您尝试以这种方式处理它,您将很困难).

    如果您采用这种方法,那么您将运行的工作流程将大致如下:

  • SQL Server->内部表示
  • 内部表示->XML表示(可能使用Linq to XML)
  • XML+XSLT->输出表示
  • 基本上XSLT所做的是允许您获取XML并根据一组规则从中生成文本,这些规则比程序规则更具功能性。在学习过程中,我在XSLT(主要是生成HTML文档)方面取得了很多成功。我开始学习的那本书是:XSLT:masteringxml转换的第一版。Doug Tidwell的《面向初学者和高级用户》(有这么长的标题,现在是第二版)

    实际问题是,您是否希望从模板生成文档?也就是说,您将拥有一组数据。通过将数据机械地转储到框架中,您是否能够创建所需的文档?这方面的好消息是,您可以使用XSLT做很多事情。更好的消息是,您可以将XLST与应用程序分开存储,这样可以更容易地进行调整,还可以根据需要使用多个模板

    由于RTF是一种文本文档格式(?),您应该能够从XLST生成所需的内容

    PDF的问题——如果沿着XSLT的路线走下去,那么您需要一些东西来将XSL-FO转换为PDF文档,这不仅会带来更大的复杂性,而且——就快速取胜而言——还有更多的东西需要学习

    您的选择是直接从内部模型生成RTF或PDF。您将失去模板功能,但会更接近您的基本舒适度(代码)——在这方面,isharptext在这里说了很多好话

    我同意你的观点


    我已经讲了一点,但重点是,它应该让您真正想要您需要的,并且将是对您的工具包的一个积极和灵活的补充,但您可能会在这一过程中遭受一些痛苦(XSLT不是过程代码,如果您尝试以这种方式处理它,您将很困难)。

    我用于生成PDF的两种技术:

  • XML->XSL-FO->ApacheFOP(格式化对象处理器)->PDF。优点:如果您了解HTML和XSLT,那么使用XSL-FO创建输出并不比使用XSLT创建HTML困难多少,软件是开源的。缺点:速度慢;XSL-FO是一种奇怪的HTML镜像形式;您正在将一个凌乱的Java应用程序集成到文档生产管道中;自2007年以来,软件从未升级过

  • XML->HTML->XML->PDF。优点:Prince XML速度快,功能性强;易记