问题标签 [rtf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1681 浏览

c# - 如何发送保留用户在 RTF 中的 RichTextBox 中提供的格式的电子邮件?

我想要做的是提供一个表单,用户可以在其中键入或剪切和过去格式化的文本,并能够将其作为电子邮件发送(类似于 Outlook)。这是必需的,因为它与当前的工作流程非常相似,而且这些电子邮件不会保存在人们的收件箱之外的任何地方。这显然是一个更大的问题的绷带。

我目前的尝试有一个 RichTextBox,它可以接收复制和粘贴的 RTF,但是当我尝试发送电子邮件时,似乎唯一的选项是纯文本和 HTML。在研究了 RTF 到 HTML 库的选项之后,似乎它们都至少要花费 300 美元,但是在审查了自己编写库的难度之后,最好花时间和金钱来获得第三方选项。我很好奇在不引入第三方库的情况下是否有解决此问题的方法(发送带有格式化文本的电子邮件)。

0 投票
2 回答
1204 浏览

c# - RTF 文档生成器

我正在为新员工创建一个程序,在其中输入他们的姓名和其他一些信息,它会输出一个欢迎/新员工信息文档。

我似乎记得有一些东西类似于我可以使用的文档对象(我猜类似于StringBuilder)。

.NET Framework 2 或 3 中是否已经包含这样的东西?

0 投票
2 回答
3501 浏览

delphi - 如何正确显示日文 RTF 字体

我正在开发 Delphi 2009 中的一个应用程序,它大量使用 RTF,使用 TRichEdit 和 TLMDRichEdit 进行编辑。在这些 RTF 控件中输入日文文本的用户一直在提交关于在安装了东方语言支持的 Win XP 和 Vista 上重新加载内容时日文文本显示为乱码的间歇性报告。

通常情况下,英语和日语是混合的,并且大部分显示都没有问题,例如:

(如果日语文本被错误地破坏,我深表歉意 - 我不会说或读这种语言)。

然而,很多时候,只有文本的日文部分会乱码,例如:

从广泛的在线搜索来看,问题似乎是作为 RTF 的一部分保存的字体造成的。日文版 Windows 上显示的字体不一定与美国英文版相同。可以以编程方式替换 RTF 文件中的字体,这会产生几乎可以接受的结果,即

但是,其中仍有不少“垃圾”字符无法正确识别为日文字符。查看原始 RTF,您将看到以下内容:

显然,Unicode 字符被正确呈现,但例如 \'82\'82 对字符应该是别的东西吗?我的猜测是它实际上代表了某种双字节字符,出于某种神秘的原因,它被编码为两个单独的字符而不是单个 Unicode 字符。

是否有一种通用的(相对)万无一失的方法来获取包含东方语言的 RTF 并再次可靠地显示它?

为了完整起见,我按以下方式更新了 RTF 字体表:

  • 替换了字体名称“?l?r ?o?S?V?b?N;” 与“\'82\'6c\'82\'72\'82\'6f\'83\'53\'83\'56\'83\'62\'83\'4e;”
  • 通过将“\froman\fprq1\fcharset0”替换为“\fnil\fprq1\fcharset128”来更新字体名称
  • 通过将“\froman\fprq1\fcharset238”替换为“\fnil\fprq1\fcharset128”来更新字体名称
  • 通过将“\froman\fprq1”替换为“\fnil\fprq1\fcharset128”来更新字体名称
  • 替换字体名称“?? ?????;” 与“\'82\'6c\'82\'72\'82\'6f\'83\'53\'83\'56\'83\'62\'83\'4e;”

更新:单独更新字体名称不会产生影响。语言环境似乎是个大问题。我已经看到一些网站讨论如何将日文 RTF 的显示转换为大多数读者可以处理的内容,但我还没有找到解决方案,例如: herehere

0 投票
3 回答
14377 浏览

c# - 如何有选择地在 RichTextBox 中为字符串加下划线?

在我的程序中单击按钮后 - 应将选定的 ListView 条目复制到 RichTextBox。ListView 包含联系人信息,我想要完成的效果类似于 Oulook 中的效果(从通讯录中选择联系人时)。用于此目的的部分代码如下所示:

不幸的是,FontStyle 以某种方式被整个文本继承,我从 ListView 输入后输入的所有内容也都带有下划线。

所以我的问题是 - 如何仅在某些文本下划线(我犯了错误)?

不幸的是,在我的案例解决方案中,stackoverflow 上有类似的主题,说明会浪费资源。

0 投票
3 回答
17924 浏览

c# - 如何将 FlowDocument 转换为 rtf

我使用 WPF RichTextBox 将流文档保存为数据库中的字节 []。现在我需要检索这些数据并在报告 RichTextBox 中显示为 rtf。当我尝试使用 TextRange 或在 XAMLReader 中转换字节 [] 时,我得到了一个 FlowDocument,但是我如何将它转换为 rtf 字符串,因为报告 RichTextBox 只需要 rtf。

谢谢

阿尔文德

0 投票
2 回答
532 浏览

java - 运行时 exec 和自定义构建的 RTF 编辑器

我有一个管理 RTF 文档创建的类和该类中的一个方法,该方法使用 XML 文件调用 RTF 编辑器进行显示。

除一位用户外,所有用户都可以毫无问题地访问此编辑器。这个用户一直遇到他们的应用程序挂起的问题。任何日志中都没有错误。通常这种问题很容易识别、重现和纠正,但是,我不能在我的生命周期内重现它,所以我的调试尝试失败了。

基本上代码如下:

最后一个输出是第一个 System.out。当我获取 xml 文件并在任何其他 PC 上执行它时,它可以毫无问题地执行。我在 proc.getErrorStream() 或 proc.getOutputStream() 中看不到任何有用的信息。

JDK关于这个问题的Javadoc文档(exec挂起): 由于一些原生平台只为标准输入输出流提供有限的缓冲区大小,未能及时写入子进程的输入流或读取输出流可能会导致子进程阻塞,甚至陷入僵局。

我尝试在等待进程退出之前耗尽该流,但这似乎没有帮助,因为它似乎永远不会达到这一点(第二个 System.out 未显示)

我是否错误地实施了这一点?我错过了什么重要的东西吗?关于如何从流程中获取更多信息的任何想法都会很棒。

我被困住了......

0 投票
2 回答
6524 浏览

java - Parsing RTF Documents with Java/JavaCC

Is anybody familiar with the the RTF document format and parsing using any Java libaries. The standard way people have done this is by using the RTFEditorKit in the JDK Swing API:

Swing RTFEditorKit API

but it isn't that accurate when it comes to parsing RTF documents. In fact there's a comment in the API:

The RTF support was not written by the Swing team. In the future we hope to improve the support provided.

I don't think I'm going to wait for this to happen :)

The other approach taken is to define a grammar using JavaCC and generate a parser. This works better, but I'm having trouble finding a complete grammar. I've tried:

PMD Applied JavaCC Grammar

which is ok and the following (which is the best so far).

Koders RTFParserDelegate and ETranslate Grammar

There are various implementations of the ETranslate grammar about (I know the Nutch API may use this). Does anybody know which is the most accurate grammar or whether there is a better approach to this?

I could start ploughing through the JavaCC docs to understand the .jj files and test it against the RTF files... this is my current approach, but it's taking a while... any help would be appreciated

0 投票
1 回答
2025 浏览

sql-server - Reporting Services 问题呈现 RTF

我正在使用VS.NET 2005SQL Server 2005。我的开发计算机运行的是Windows XP SP2。SQL Server 2005 数据库和报告服务在Windows 2003 Server上运行。

我的业务需求是开发和部署一个报告,该报告采用存储在数据库(datatype = TEXT )中的富文本( RTF ),并在运行时使用自定义程序集将其转换为图像(源代码可在此处找到http://blogs. digineer.com/blogs/jasons/archive/2006/10/03/520.aspx)。我可以使用ReportManager Web 界面和Render方法在我的本地(即开发人员)计算机上生成和查看包含 RTF 的动态图像。当我将它部署到我们的测试服务器时,我最终得到了一个损坏的链接图像。

回顾一下,我采取了以下步骤。

使用将 RTF 转换为位图图像的 VS.NET 2005创建了自定义程序集。自定义程序集有一个强名称。

在本地开发者机器上

  1. 将自定义程序集复制到 C:\Program Files\Microsoft Visual Studio 8\Common7\IDE**PrivateAssemblies**。
  2. 修改C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies**RSReportDesigner.config** 以包含一个CodeGroup,该 CodeGroup 将 FullTrust 授予基于StrongNameMembership的自定义程序集(注意:ReadMe.txt 未提及添加条目到这个文件)。
  3. 修改C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies**RSPreviewPolicy.config** 以包含一个CodeGroup,该 CodeGroup 将 FullTrust 授予基于 StrongNameMembership 的自定义程序集(注意:ReadMe.txt 未提及添加条目到这个文件)。

使用 VS.NET 2005 修改报告如下

  1. 添加了对自定义程序集和 System.Drawing 的引用。
  2. 添加了 type= Database, MimeType= image/bmp, Value = call to custom assembly method 的图像控件;方法传递包含 RTF 的数据库字段的值。
  3. 部署报告。
  4. 通过 HTML 和使用 EXCEL 作为输出格式的 WebService 的 Render 方法成功查看报告。 图像的 HTML

在本地开发者机器和服务器上

  1. 将自定义程序集复制到 C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\bin
  2. 修改C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer**rssrvpolicy.config** 以包含一个 CodeGroup,它根据StrongNameMembership将 FullTrust 授予自定义程序集(注意:源代码表明权限应该基于在 UrlMembership上)。
  3. 部署报告。
  4. 通过 HTML 和使用 EXCEL 作为输出格式的 WebService 的 Render 方法查看报告均失败。图像的 HTML

最初,我在导出到 Excel 时收到“数据丢失”的错误消息,但这些似乎已通过在 ReadMe.txt 中未提及的 .config 文件中授予权限来解决。我已经没有办法尝试了,我束手无策。我确信该解决方案与权限有关,因为它适用于我的计算机但不适用于服务器。

提前感谢您的任何想法或建议。

问候,

账单

0 投票
2 回答
845 浏览

c# - 如何使用 RichTextBox 控件?

我希望我的用户能够在富文本框中输入文本,并将 RTF 输出保存到数据库中。

目前我已经RichTextBox绑定到数据库中的字段,但它在保存时会删除格式。我怎样才能防止这种情况?

另外,如何附加格式工具箱(例如写字板中的工具箱),以便我的用户可以更改格式?

最后,我不能右键单击该框或使用 Ctrl+C、Ctrl+V 或类似的东西,这是为什么呢?我该如何解决?

0 投票
6 回答
3232 浏览

delphi - 如何在 Delphi 中显示格式化(颜色、样式等)日志?

我需要在 Delphi 2009 中显示一个格式化的日志。格式化不必实现说 html 的所有功能,而是一个小子集,例如颜色、字体样式等。

目前我正在使用 TRichEdit 和我自己的专有标签,例如这是蓝色的。让它与 TRichEdit 一起工作是相当复杂的,因为没有直接访问 RTF 文本。例如,要将文本着色为蓝色,我必须:

  1. 解析提取标签的附加文本,找出需要格式化的文本以及如何格式化。
  2. 选择文本。
  3. 应用格式。
  4. 取消选择文本并将选择移动到文本的末尾,为下一次追加做好准备。

所有这些都是 hacky 和缓慢的。您是否知道使用 TRichEdit 或其他更适合该工作的控件来执行此操作的更好(更快)方法?

我应该提到我已经考虑在 TWebBrowser 中使用 HTML。这种方法的问题是日志的长度可以是 1 到 100000 行。如果我使用普通的 html 查看器,我需要每次都设置整个文本,而不是简单地附加它。

此外,当我向日志附加行时,需要实时更新日志。不是简单地从文件中读取并显示一次。