gpt4 book ai didi

c# - 富文本框到 iTextSharp

转载 作者:太空宇宙 更新时间:2023-11-03 11:20:24 25 4
gpt4 key购买 nike

上下文

我们需要的是从 WPF 应用程序捕获一些用户输入(格式化文本)并输出一个包含一些存储图像和最后一页上的用户输入的 PDF。

我们的尝试

我们创建 WPF 应用程序,添加 iTextSharp 库,从数据库中恢复图像并将其添加到 PDF。那行得通。现在,对于用户输入,我们添加了一个 RichTextBox。从 Extended WPF Toolkit 控制。我们添加此控件主要是因为它的绑定(bind)属性和 formatters .基本上我们可以将控件的丰富内容绑定(bind)到一个属性上。该绑定(bind)正在工作。我们已经有了 RTF 格式,例如(例如):

"{\rtf1\ansi\ansicpg1252\uc1\htmautsp\deff2{\fonttbl{\f0\fcharset0 Times New Roman;}{\f2\fcharset0 Segoe UI;}}{\colortbl\red0\green0\blue0;\red255\green255\blue255;}\loch\hich\dbch\pard\plain\ltrpar\itap0{\lang1033\fs18\f2\cf0 \cf0\ql{\f2 {\ltrch This is the }{\b\ltrch RichTextBox}\li0\ri0\sa0\sb0\fi0\ql\par}}}"

问题

问题是,PDF 的实际输出正是之前显示的 RTF,但预期输出(例如)必须是:

"This is the **RichTextBox**\r\n"

这显然是因为我们在将绑定(bind)的 RTF 从控件插入 PDF 时发生,问题是:我们如何添加该内容并指定其 RTF?

附言。如果您有其他可行的想法或解决方案(不使用 richtextbox 或类似的东西),欢迎使用。提前致谢。

最佳答案

不幸的是,iTextSharp 不直接支持RTF 格式anymore .我建议先将 RTF 片段转换为 XHTML,然后将生成的 XHTML 导入最终文档(官方 HTML 支持似乎是 gone away ,因此在这种情况下 XHTML 是唯一的选择)。

简而言之,我建议:

  1. 将RTF片段转换为XHTML;
  2. 将 XHTML 流放入一个新的 iTextSharp 文档中(如果您愿意,也可以直接放入最终文档);
  3. 将上述文档的内容添加到您要导出为 PDF 的目标文档中。

更新

没有将RTF 转换为XHTML 的内置机制,但存在许多开源项目;我会开始耦合这个RTF to HTML转换器与 HTML Agility Pack (这会将您的 HTML 转换为 XHTML)。

但是,坦率地说,整个流程有点复杂,我可能会选择一个更简单的解决方案,也许是使用 HTML editor ( alternative ) 直接在您的项目中或按照其他人的建议恢复到 FlowDocument。

关于c# - 富文本框到 iTextSharp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11236175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com