标签: rtf

在C#中操作RichText的更好方法是什么?

我需要创建一些RichText并将其复制到剪贴板,标准的"格式化"如粗体/斜体,缩进等.我现在这样做的方式看起来有点不雅......我正在创建一个RichTextBox项并通过它来应用我的格式:

RichTextBox rtb = new RichTextBox();
Font boldfont = new Font("Times New Roman", 10, FontStyle.Bold);
rtb.Text = "sometext";
rtb.SelectAll()
rtb.SelectionFont = boldfont;
rtb.SelectionIndent = 12;
Run Code Online (Sandbox Code Playgroud)

必须有一个更好的方法,但经过几个小时的搜索,我无法想出更好的东西.有任何想法吗?

编辑:RichTextBox(rtb)不会在表单上的任何位置显示/绘制.我只是使用该对象来格式化我的RichText.

c# string rtf

5
推荐指数
1
解决办法
8311
查看次数

如何正确显示日语RTF字体

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

通常情况下,英语和日语混合在一起,大多数时候都没有问题,例如:

Inventory turns partnerships.  ??????
Run Code Online (Sandbox Code Playgroud)

(如果日语文本被错误地打破,我很抱歉 - 我不会说或读这种语言).

然而,很多时候,只有文本的日文部分才是胡言乱语,例如:

ŒÉñ?“]-¦Œüã‚Ì·•ʉ?-vˆö‚ðŽû‰v‚ÉŒø‰?“I‚ÉŒ‹‚т‚¯‚é’mޝ‚ª‘÷Ý‚·‚é?(??????????
??????  ?????????????)
Run Code Online (Sandbox Code Playgroud)

从广泛的在线搜索看,问题是由于字体保存为RTF的一部分.日语版Windows上的字体不一定与美国英语版本相同.可以以编程方式替换RTF文件中的字体,从而产生几乎可接受的结果,即

-D‚‚?ƒIƒyƒŒ[ƒVƒ?“‚?ƒƒWƒXƒeƒBƒbƒN‚?ƒpƒtƒH[ƒ}ƒ“ƒX‚-˜‰v‚?Œ‹‚?‚?‚?‚?‚?‚±?‚??A‘‚?‚?-?‘?‚?‚ ‚?B‚?‚‚?Al“?‚?‚??‘P‚?ˆ?‚ƒƒXƒN‚?‚?‚‚?B
Run Code Online (Sandbox Code Playgroud)

但是,仍然存在相当多的"垃圾"字符,这些字符未被正确识别为日文字符.查看原始RTF,您将看到以下内容:

-D\'82\'82\u65405?\'83I\'83y\'83\'8c[\'83V\'83\u12539?\ldblquote\'82\u65414?
Run Code Online (Sandbox Code Playgroud)

显然,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显示转换为大多数读者可以处理的方法,但我还没有找到解决方案,例如:参见 此处此处.

delphi unicode fonts rtf

5
推荐指数
1
解决办法
3075
查看次数

RichTextBox(.NET Winforms)问题(或替代)

我有.Net的RichTextBox控件的问题.它似乎不支持表格单元格格式化,这很有趣,因为大多数时候我创建表格我希望单元格内容是右对齐的(数字,货币).

如果我尝试在RichTextBox中打开写字板文档,它会忽略(并实际删除)用于单元格对齐的命令.我尝试了几种解决方法,但没有成功.

  1. 谁能想到解决这个问题的想法?(不使用固定宽度的字体和空格)这将是最好的解决方案,因为其他代码已经正常工作,所以如果只需要的东西是一个肮脏的黑客,它会很棒.

  2. 或者,您可以推荐使用.Net Rich Text Editor的开源替代方案吗?我需要一个用户控件,我可以嵌入我的Windows窗体并以编程方式访问内容(创建内容或附加内容).我在网上搜索了一段时间,但发现只有web(Ajax/Javascript)控件.

  3. 我也可以使用HTML WYSIWYG编辑器,但它们基本上都是使用MSHTML嵌入和编辑的IE浏览器,在Winforms应用程序中使用它感觉有点奇怪(也许我错了).在这种情况下,我们需要一些额外的时间来实现HTML的内容生成器 - 尽管它比RTF恕我直言更容易阅读和生成.

  4. 你们为此目的最好的是什么?

.net wysiwyg rtf richtextbox html-editor

5
推荐指数
1
解决办法
3923
查看次数

如何为pbcopy生成富文本链接

我一直在播放一个脚本,该脚本在Chrome中选择文本并在Google中查找,提供四个首选,然后粘贴相关链接.它以不同的格式粘贴,具体取决于当前在Chrome中打开的页面 - DokuWiki格式,DokuWiki打开,HTML与普通网站,我想要WordPress WYSIWYG编辑器的富文本.

我试图用来pbpaste -Prefer rtf查看粘贴板上没有其他样式的富文本链接,但它仍然输出纯文本.在文本编辑中保存文件并进行实验后,我想出了以下内容

text = %q|{\rtf1{\field{\*\fldinst{HYPERLINK "URL"}}{\fldrslt TEXT}}}|
text.gsub!("URL", url)
text.gsub!("TEXT", stext)
Run Code Online (Sandbox Code Playgroud)

(我不得不使用gsub,因为不知何故在使用%Q#{}插入变量时,字符串不起作用)

但是,当我粘贴它时,链接之前和之后还有一个额外的换档符号.字符串会是什么样的,以避免这种情况?

ruby macos clipboard rtf

5
推荐指数
1
解决办法
1847
查看次数

RTF页数y页面x

不确定这是否可能,但我试图通过纯文本输出将文本保存到带有特殊编码的RTF.

除了总页数之外,我的一切都在工作.

我希望它说"页面x的y",每页的底部说"第1页,共3页",但我找不到总页码的正确代码.

有人说使用\nofpages但是来源说使用\nofpagesN是指定文件中的页数.是否有一个公式或我可以使用的东西或者可能是最后一页的编号?这是我的代码示例,如果您通过记事本将其放入rtf文件然后保存并在wordpad或word中打开,您将看到我的意思:

{\rtf1\pagestart1 {\header\brdrt\brdrth\ql\b Name:  \b0LAST, FIRST \par\b DOB:  \b0 1979/11/03 \par\b Service Date/Time:  \b0 2012/03/06 00:49:00 \par\b MRN:  \b0 XXXXXX \par\b Order Date/Time:  \b0 2012/03/05 01:14:00 \par\b Study ID:  \b0 } \par{\footer\pard\brdrt\brdrs\qc\fs16\b\ul CONFIDENTIALITY NOTICE \par\par\pard\brdrt\brdrs\keepn\ql\fs20 Date: \chdate\par\keepn\qc\fs20 Page \chpgn  of \nofpages\par}\b Study ID:  \b0 000000000000 \par\pard\brdrb\brdrth A bunch of text to make up more than one page. \par \par \par {\footnote\pard\b Some stuff in the footer \b0\par}}

rtf

5
推荐指数
1
解决办法
8424
查看次数

验证富文本结构 RTF

MS Exchange / Outlook 消息使用 MAPI 存储数据。一个常见的 MAPI 属性包含消息正文的富文本版本(0x1009、PR_RTF_COMPRESSED、PidTagRtfCompressed)。如果富文本字符串具有无效结构,则 Outlook 2003 及更早版本将无法显示任何正文内容。

例如,这个 RTF 代码省略了一个结束的“}”。

{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fcharset0 Arial;}}
{\*\generator Msftedit 5.41.15.1515;}\viewkind4\uc1\pard\f0\fs20 asdfasdf\par
Run Code Online (Sandbox Code Playgroud)

正确的版本是

{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fcharset0 Arial;}}
{\*\generator Msftedit 5.41.15.1515;}\viewkind4\uc1\pard\f0\fs20 asdfasdf\par
}
Run Code Online (Sandbox Code Playgroud)

是否有可用于测试 RTF 代码是否有效的 .NET 方法或库?如果没有,我对 C++ 和 Java 或 COM 库持开放态度。如果没有,是否有应用程序报告 RTF 字符串中的违规行为?

理想的解决方案是报告包含不规则的行号。一个适当的解决方案将报告整个 RTF 是否有效且格式良好。

此问题在 MAPI 之外是相关的。例如,如果将上面指定的无效 RTF 字符串写入 .RTF 文件,它会在 WordPad 5.1 中正确打开,但 Word 2007 会报告错误并请求我修复该文件。


一个建议是我将 RTF 流式传输到富文本框中。我试过这个代码:

private void button1_Click(object sender, EventArgs e)
        {
            string aaa = richTextBox1.Rtf;
            richTextBox1.Rtf = @"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fcharset0 Arial;}}{\*\generator Msftedit 5.41.15.1515;}\viewkind4\uc1\pard\f0\fs20 asdfasdf\par}";
            richTextBox1.Refresh(); …
Run Code Online (Sandbox Code Playgroud)

mapi rtf richtext

5
推荐指数
1
解决办法
4094
查看次数

Java RTF Parser

有谁知道我可以在Java中使用的健壮的RTF解析器?我需要提取纯文本,包括国际文本.提取嵌入的图像和文件也很不错.它也可以是我可以轻松调用的C++或其他库,或者如果有很好的源代码,我可以转换为Java.

以下库未涵盖足够的RTF,或无法解析某些有效的RTF

  1. Java Swing的RTFEditorKit,相当基本和脆弱的Apache Tikka,nutch和许多其他工具使用它.
  2. iText的一个RTF库(com.lowagie.etc ...),不太全面
  3. etranslate rtf库(这是最完整的java)不确定是否有更新的版本,但我的部分rtf集合上的版本失败(RTF有效,至少它们在MsWord和OpenOffice中打开OK ).

有一个C#库是相当完整的,但是唉...它是C#而不是Java. http://www.codeproject.com/Articles/27431/Writing-Your-Own-RTF-Converter

我也研究过OpenOffice,它对于我需要的东西来说太慢了,尽管它可能非常全面.

(在发布这个问题之前,我确实进行了网页搜索和堆栈溢出搜索,所以如果你指的是一个古老的"已经问过"的帖子,那么它可能没有答案.但是请随意指出,以防万一我错过了它!)

java parsing rtf

5
推荐指数
2
解决办法
1万
查看次数

Doxygen RTF 格式等效于默认 Doxygen HTML 输出

以前,我使用 Doxygen 为我的代码制作 html 输出。开箱即用,Doxygen 制作了非常好的 html 文档。稍微修改一下样式表,我就可以让它看起来很棒。

对于我当前的项目,我需要在 Word 文档中发布文档。我启用了 Doxygen 的 RTF 输出,发现它看起来很糟糕。由于我可以创建自己的 RTF 文档并手动制作看起来像 Doxygen 的 html 输出的列表/表格/等,看起来 Doxygen 应该能够制作与他们的 html 输出等效的 RTF 输出。

创建 doxygen 的 RTF 样式表文件为我提供了一个模板,其语法比 html 样式表的文档要少得多。通读这些选项,它们似乎也没有 html 样式表中可用的所有设置。

是否可以修改 RTF 样式表,使其输出与 Doxygen 的默认 html 输出等效?如果是这样,是否有人已经这样做了并希望向我发送指向它的链接?老实说,我很高兴能得到一个指南的链接,该指南告诉我 RTF 样式表的语法。

html rtf doxygen

5
推荐指数
0
解决办法
1032
查看次数

Xcode 6 Beta UIWebView无法读取.rtf

控制台消息:2014-08-09 15:51:37.526 Agpeya [1306:29686]无法找到uti public.rtf的数据转换器回调

rtf uiwebview ios xcode6 ios8

5
推荐指数
1
解决办法
1229
查看次数

BI发布者 - 使用rtf模板布局优化Oracle APEX输出中的图表错误

BI Publisher Enterprice版本APEX 5,APEX 5.1 - 通过实例Microsoft excel 2013集成在BI Publisher中

我为我的报告创建了双发布者rtf模板和图表.然后我在APEX布局中使用它.但是当我想通过APEX在excel中打印此布局时,CHART不会显示在此文件中.它给出了以下错误:

在此输入图像描述

另外我想指出当我用word或pdf打印这个布局时,不会显示任何错误.

任何人都可以帮我解决这个问题!

excel rtf bi-publisher oracle-apex oracle-apex-5

5
推荐指数
0
解决办法
484
查看次数