我正在研究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字体表:
更新:单独更新字体名称不会有所作为.区域设置似乎是一个大问题.我已经看到一些网站讨论将日语RTF显示转换为大多数读者可以处理的方法,但我还没有找到解决方案,例如:参见 此处和此处.
我一直在播放一个脚本,该脚本在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和#{}插入变量时,字符串不起作用)
但是,当我粘贴它时,链接之前和之后还有一个额外的换档符号.字符串会是什么样的,以避免这种情况?
不确定这是否可能,但我试图通过纯文本输出将文本保存到带有特殊编码的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}}
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) 我正在尝试在 SQL SERVER Reporting Services (SSRS) 中显示 rtf 数据。我有 Visual Studio 2010 和 ReportViewer 版本 10.0.0
rtf 数据存储在我绑定到 SSRS 报告的数据集中。
我在 SSRS-Report 的 Textbox Expression 中添加了对 Report References System.Windows.Forms 的以下引用,
=Code.ConvertRtfToText(Fields!colInfo.Value)
Run Code Online (Sandbox Code Playgroud)
我已将以下代码放入报告代码属性中
Public Shared Function ConvertRtfToText(ByVal input As String) As String
Dim returnValue As String = String.Empty
Dim converter As New System.Windows.Forms.RichTextBox()
converter.Rtf = input.Trim
returnValue = converter.Text
Return returnValue
End Function
Run Code Online (Sandbox Code Playgroud)
我得到的输出是
{\rtf1\ansi\ansicpg1252\uc1 aaa}
Run Code Online (Sandbox Code Playgroud) 有谁知道我可以在Java中使用的健壮的RTF解析器?我需要提取纯文本,包括国际文本.提取嵌入的图像和文件也很不错.它也可以是我可以轻松调用的C++或其他库,或者如果有很好的源代码,我可以转换为Java.
以下库未涵盖足够的RTF,或无法解析某些有效的RTF
有一个C#库是相当完整的,但是唉...它是C#而不是Java. http://www.codeproject.com/Articles/27431/Writing-Your-Own-RTF-Converter
我也研究过OpenOffice,它对于我需要的东西来说太慢了,尽管它可能非常全面.
(在发布这个问题之前,我确实进行了网页搜索和堆栈溢出搜索,所以如果你指的是一个古老的"已经问过"的帖子,那么它可能没有答案.但是请随意指出,以防万一我错过了它!)
找不到对 R 的太多支持。我正在尝试将许多 RTF 文件读入 R 来构建数据框架,但我正在努力寻找一种解析 RTF 文件并忽略结构的好方法/文件的格式。我实际上只想从每个文件中提取两行文本——但它嵌套在文件的结构中。
我在下面粘贴了一个示例 RTF 文件。我想捕获的两个字符串是:
“今天购买 26 英寸液晶电视还是下个月购买 32 英寸?模拟购买高科技耐用产品”
“技术水平[...]和管理影响。” (完整段落)
关于如何有效解析这个有什么想法吗?我认为正则表达式可能对我有帮助,但我正在努力形成正确的表达式来完成工作。
{\rtf1\ansi\ansicpg1252\cocoartf1265
{\fonttbl\f0\fswiss\fcharset0 ArialMT;\f1\froman\fcharset0 Times-Roman;}
{\colortbl;\red255\green255\blue255;\red0\green0\blue0;\red109\green109\blue109;}
\margl1440\margr1440\vieww10800\viewh8400\viewkind0
\deftab720
\itap1\trowd \taflags0 \trgaph108\trleft-108 \trbrdrt\brdrnil \trbrdrl\brdrnil \trbrdrt\brdrnil \trbrdrr\brdrnil
\clvertalt \clshdrawnil \clwWidth15680\clftsWidth3 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadl0 \clpadr0 \gaph\cellx8640
\itap2\trowd \taflags0 \trgaph108\trleft-108 \trbrdrt\brdrnil \trbrdrl\brdrnil \trbrdrt\brdrnil \trbrdrr\brdrnil
\clmgf \clvertalt \clshdrawnil \clwWidth14840\clftsWidth3 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadl0 \clpadr0 \gaph\cellx4320
\clmrg \clvertalt \clshdrawnil \clwWidth14840\clftsWidth3 \clbrdrt\brdrnil \clbrdrl\brdrnil \clbrdrb\brdrnil \clbrdrr\brdrnil \clpadl0 \clpadr0 \gaph\cellx8640
\pard\intbl\itap2\pardeftab720
\f0\b\fs26 \cf0 Buy a 26 Inch …Run Code Online (Sandbox Code Playgroud) 控制台消息:2014-08-09 15:51:37.526 Agpeya [1306:29686]无法找到uti public.rtf的数据转换器回调
我正在开发一个 Android 应用程序,允许用户查看他们的文档。但是,我遇到了查看 RTF 文件和/或将其转换为 HTML 的问题。寻求这方面的帮助时,资源似乎非常有限。有没有什么方法可以使用 WebView(类似于 iOS 的 UIWebView)查看它们,或者是否有任何库可以实际用于从 RTF 转换为 HTML?
BI Publisher Enterprice版本APEX 5,APEX 5.1 - 通过实例Microsoft excel 2013集成在BI Publisher中
我为我的报告创建了双发布者rtf模板和图表.然后我在APEX布局中使用它.但是当我想通过APEX在excel中打印此布局时,CHART不会显示在此文件中.它给出了以下错误:
另外我想指出当我用word或pdf打印这个布局时,不会显示任何错误.
任何人都可以帮我解决这个问题!