C# C语言中文档格式之间的转换#

C# C语言中文档格式之间的转换#,c#,html,xml,xsl-fo,C#,Html,Xml,Xsl Fo,在C#中,在HTML、XML和XSL-FO之间进行转换的最佳方式是什么 我已经有了HTML(从FCKEditor导入),我想打印一个PDF(我有一个XSL->PDF转换器)。我只是找不到一个能将HTML转换成任何XSL友好的库。我先试试。当您谈论格式化XML文档(这正是您所谈论的内容)时,这就是设计用于格式化XML文档的工具 发件人: “XSL-FO使用背后的总体思路 是指用户编写文档, 不是FO,而是XML语言。 XHTML、DocBook和TEI都是 可能,但它可以是任何XML 然后,用户获

在C#中,在HTML、XML和XSL-FO之间进行转换的最佳方式是什么

我已经有了HTML(从FCKEditor导入),我想打印一个PDF(我有一个XSL->PDF转换器)。我只是找不到一个能将HTML转换成任何XSL友好的库。

我先试试。当您谈论格式化XML文档(这正是您所谈论的内容)时,这就是设计用于格式化XML文档的工具

发件人:

“XSL-FO使用背后的总体思路 是指用户编写文档, 不是FO,而是XML语言。 XHTML、DocBook和TEI都是 可能,但它可以是任何XML 然后,用户获得一个 XSLT转换,或者通过编写 他们自己,或者通过为 有问题的文档类型。此XSLT 转换将XML转换为 XSL-FO。”

您需要将HTML转换为XSL-FO。不知道在哪里可以买到,但显然这个概念并不陌生。

我先试试。当您谈论格式化XML文档(这正是您所谈论的内容)时,这就是设计用于格式化XML文档的工具

发件人:

“XSL-FO使用背后的总体思路 是指用户编写文档, 不是FO,而是XML语言。 XHTML、DocBook和TEI都是 可能,但它可以是任何XML 然后,用户获得一个 XSLT转换,或者通过编写 他们自己,或者通过为 有问题的文档类型。此XSLT 转换将XML转换为 XSL-FO。”


您需要将HTML转换为XSL-FO。不知道从哪里可以买到,但显然这个概念并不陌生。

一两年前,我不得不用C++/C程序生成PDF。最后,我决定将Apache的Java作为一个单独的过程来进行转换。使用xsl-fo的经历并不愉快。当时,似乎没有一个工具能够完全实现xsl fo。工具倾向于选择规范的一个子集,并对其进行黑客攻击。考虑到xsl fo的庞大复杂性,我开始怀疑是否会有一个完整的实现

FOP往往是有缺陷的,并且有相当多的时间花在解决问题上。XSLT和XPath很难学习。我花了几周时间才看穿冗长的内容,很快就能把事情办好。不过,我认为我还没有完全了解xsl fo。它使html和css模型看起来像孩子的玩具。幸运的是,PDF生成,并且没有太多问题。:-)

无论如何,手头的任务是:从FCKEditor的xhtml输出生成PDF

我只是找不到一个可以将HTML转换成任何XSL友好的库

呵呵。是的,这是因为没有一个,而且可能不会有一个html到xsl-fo的转换器,这有什么好处。这种转换器有一些缺点:浏览器的复杂性和xsl fo的复杂性。对于这样一个处理普通html文档的转换器,它需要web浏览器的胆量:布局、css支持甚至JavaScript。然后,它必须获取呈现的页面,并找出需要什么xsl fo才能获得类似的内容,并且符合xsl fo的分页约束

这就像制作一个word查看器的问题:如果不重新实现很多word,大部分时间都很糟糕,因为它看起来不一样

所以。。。你能做什么?好的,有一小部分html可以使用是一个好的开始。希望FCKEditor的输出是xhtml,因为将html转换成xml本身就是一个痛苦的世界(这对我们来说很有用)。接下来,除非某个可怜的人已经为您的xsl fo实现制作了一个FCKEditor xhtml->xsl fo xslt,否则您必须制作一个。这包括学习xsl-fo、xslt和xpath。根据我的经验,这将需要几个星期,而且将是一个拼凑而成的解决方案

要开始使用xsl fo,我发现以下链接很有用:

  • 概述xsl fo试图解决的问题
  • 有关三个快速介绍,请参见,和
那么这些xsl fo、xslt和所有其他东西是什么呢?报告将其列为:

可扩展样式表语言族(XSL)XSL是定义XML文档转换和表示的一系列建议。它由三部分组成:

  • XSL转换(XSLT),一种用于转换XML的语言
  • XML路径语言(XPath),XSLT用来访问或引用XML文档部分的一种表达式语言。(XML链接规范也使用XPath)
  • XSL格式化对象(XSL-FO),用于指定格式化语义的XML词汇表
我的建议?跑另找一个。找到另一个解决方案。生成LaTeX文件,并将其转换为PDF。生成其他内容。制作word文档并使用。生成图像。控制Firefox以PDF格式打印页面。尽量避免使用PDF文件。任何东西,只要它不对抗html、xsl fo、FOP、xslt和xpath


PS:如果你需要帮助,请告诉我。:-)

一两年前,我不得不从C++/C#程序生成PDF。最后,我决定将Apache的Java作为一个单独的过程来进行转换。使用xsl-fo的经历并不愉快。当时,似乎没有一个工具能够完全实现xsl fo。工具倾向于选择规范的一个子集,并对其进行黑客攻击。考虑到xsl fo的庞大复杂性,我开始怀疑是否会有一个完整的实现

FOP往往是有缺陷的,并且有相当多的时间花在解决问题上。XSLT和XPath很难学习。我花了几周时间才看穿冗长的内容,很快就能把事情办好。不过,我认为我还没有完全了解xsl fo。它使html成为一个