有人可以帮助我将特殊字符转换为可以在 RTF 文件中正确表示的内容吗?
我正在将存储在 iPad 上的字符串中的文本输出为使用 NSASCIIStringEncoding 的 RTF 文件。到现在为止还挺好。我忽略了成功做的是考虑特殊字符(例如波浪号、元音变音、重音等)。对不起罗!
最通用的 RTF 格式似乎需要带有代码页转义的 8 位文本编码(反斜杠后面的两个十六进制数字)。所以 n 与波浪号 (ñ) 将是 \'f1。
我想到的唯一解决方案是转换为 NSUTF8StringEncoding,然后使用 stringByReplacingOccurrencesOfString,但是有很多字符,必须手动替换每个字符似乎很乏味。有没有更有效的方法可以逃避我?(双关语):)
感谢您的任何建议。
我试图在 RTF 文档中显示一个欧元符号,但运气不佳。
RTF 文档是一个模板,其中填充了来自 .Net 的数据(通过读取文本流并替换其中的标记)。这些代币之一与欧元符号有关。我的代码按预期工作,因为输出 RTF 文档在标记中包含欧元符号(在记事本中查看时),但是,当在 word 中查看时,欧元符号显示为“€”。
我认为这是一个编码问题 - 任何人都可以提供一些建议吗?
我正在尝试翻译解析RTF格式的消息(我需要保留格式化标签,所以我不能使用你只是粘贴到一个RichTextBox并获取.PlainText出来的技巧)
将a?b??c??d直接粘贴到Wordpad中的字符串的RTF代码:
{\rtf1\ansi\ansicpg1252\deff0\deflang2057{\fonttbl{\f0\fnil\fcharset0 Calibri;}{\f1\fswiss\fcharset128 MS PGothic;}{\f2\fnil\fcharset1 Shonar Bangla;}{\f3\fswiss\fcharset161{\*\fname Arial;}Arial Greek;}}
{\*\generator Msftedit 5.41.21.2510;}\viewkind4\uc1\pard\sa200\sl276\slmult1\lang9\f0\fs22 a\f1\fs24\'8a\'ee\f0\fs22 b\f2\fs24\u2478?\u2498?\f0\fs22 c\f3\fs24\'cf\'e9\f0\fs22 d\par
}
Run Code Online (Sandbox Code Playgroud)
如果你与RTF没什么关系,很难弄明白.所以这就是我正在看的
\'8a\'ee\f0\fs22 b\f2\fs24\u2478?\u2498?\f0\fs22 c\f3\fs24\'cf\'e9
Run Code Online (Sandbox Code Playgroud)
注意?(u+57FA)是\'8a\'ee但??,这实际上是两个字符?(\u2478?)和?(\u2498?),是\u2478?\u2498?其是很好,但??它是两个单独的字符?和?是\'cf\'e9.
有没有办法确定我是否正在查看应该是一个字符的内容,例如?= \'bb\'f9或两个字符?和?= \'cf\'e9?
我当时想的可能\lang是它,但事实并非如此,因为\lang它不会从第一次设置时改变.我已经从Charset字体中的不同值中考虑了不同的代码页,但它似乎没有告诉我是否应该将两个Unicode引用彼此相邻处理为双字节字符.
如何判断我正在查看的字符应该是双字节(或多字节)还是单字节?
我有一个我写过的RTF文件,它有一个带页眉和页脚的页面.我试图让页眉和页脚成为中心对齐的.但是,似乎无论我做什么,页眉和页脚似乎总是在Microsoft Word 2010中左对齐.其他程序(如Quick View Plus)似乎使文本居中对齐.我在这里乱搞RTF吗?或者Microsoft Word 2010是否存在问题?RTF的内容如下:
{\rtf1\ansi\ansicpg1252\deff0\deflang1033
{\fonttbl{\f0\fmodern\fprq1\fcharset0 Courier New;}}
{\header
\viewkind4\uc1\pard\f0\fs20\qc
HEADER
}
{\footer
\viewkind4\uc1\pard\f0\fs20\qc
FOOTER
}
\margl200\margr200\margt200\margb200
\viewkind4\uc1\pard\f0\fs20\sl495
000001\par
01 \line
02 UNITED STATES DISTRICT COURT\line
03 SOUTHERN DISTRICT OF NEW YORK\line
04 DOCKET No. (DAB)\line
05 --------------------------------------------x\line
06 BLAH BLAH, et al,\line
07 Plaintiffs,\line
08 vs\line
09 BLAH BLAH., et al,\line
10 Defendants\line
11 --------------------------------------------x\line
12 \line
13 EXAMINATION BEFORE TRIAL of BLAH BLAH\line
14 New York, New York\line
15 Tuesday, December 14, 2004, 10:22 a.m.\line …Run Code Online (Sandbox Code Playgroud) 如何打开标准打印对话框(如在Word/Wordpad中)从Java打印RTF文档?(交叉平台是首选但不是必需的)
我正在编写将进行从rtf到 的转换的代码txt。
当向我的方法提供 rtf 格式的文本时,首先它必须检查它是否具有 rtf 格式。如果不是,那就什么也不做。
我的问题:
rtf 文件是否总是(注释总是)以 开头{\rtf1?如果确实如此,那么我可以对此进行检查。
谢谢
向我转发了一项要求,将动态 RTF 文档转换为 PDF,在转换之前填充 RTF 中的所有属性。
遵循此博客文章中的确切示例,我NullPointerException在运行应用程序时遇到了一个。
注意:我知道 iText 上的 RTF 文档支持已被放弃,但它已被客户端使用。
确切的堆栈跟踪:
Exception in thread "main" java.lang.NullPointerException
at com.lowagie.text.rtf.parser.destinations.RtfDestinationFontTable.importSystemFonts(RtfDestinationFontTable.java:571)
at com.lowagie.text.rtf.parser.destinations.RtfDestinationFontTable.init(RtfDestinationFontTable.java:206)
at com.lowagie.text.rtf.parser.destinations.RtfDestinationFontTable.setParser(RtfDestinationFontTable.java:190)
at com.lowagie.text.rtf.parser.destinations.RtfDestinationMgr.addDestination(RtfDestinationMgr.java:184)
at com.lowagie.text.rtf.parser.ctrlwords.RtfCtrlWordHandler.<init>(RtfCtrlWordHandler.java:175)
at com.lowagie.text.rtf.parser.ctrlwords.RtfCtrlWordMap.<init>(RtfCtrlWordMap.java:607)
at com.lowagie.text.rtf.parser.ctrlwords.RtfCtrlWordMgr.<init>(RtfCtrlWordMgr.java:93)
at com.lowagie.text.rtf.parser.RtfParser.init(RtfParser.java:655)
at com.lowagie.text.rtf.parser.RtfParser.convertRtfDocument(RtfParser.java:551)
at za.co.sindi.utils.Prints.printToPDFWithIText(Prints.java:114)
at za.co.sindi.utils.Prints.main(Prints.java:150)
Run Code Online (Sandbox Code Playgroud)
源码示例:
public static void printToPDFWithIText() {
InputStream input = null;
OutputStream output = null;
Document document = null;
try {
input = new BufferedInputStream(new FileInputStream(new File("C:/testPDF.rtf")));
output = new BufferedOutputStream(new FileOutputStream(new File("C:/testPDF_" + …Run Code Online (Sandbox Code Playgroud) 在 RTL 上显示 DatePicker - 时间模式时,我遇到了一个奇怪的问题。
我以编程方式显示日期选择器。分钟应该在右边,小时在左边,在下图中你可以看到它被翻转了:
它发生在 iOS 9 及更高版本上。
我正在使用的代码:
UIDatePicker *datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, self.view.bounds.size.height+44, self.view.frame.size.width, 216)];
datePicker.tag = tag;
[datePicker setSemanticContentAttribute:UISemanticContentAttributeForceLeftToRight];
[datePicker setDatePickerMode:UIDatePickerModeTime];
[datePicker setBackgroundColor:[UIColor whiteColor]];
[datePicker addTarget:self action:@selector(changeDate:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:datePicker];
Run Code Online (Sandbox Code Playgroud)
有什么建议 ?
我正在尝试将文本从 Markdown 转换为 shell 脚本中呈现的 RTF,并将命令包装在 Apple Automator 服务中。
我意识到完成任务的唯一方法是执行以下操作:
python -m markdown | textutil -convert rtf -format html -stdin -stdout -font Helvetica -inputencoding UTF-8 | pbcopy | pbpaste -Prefer rtf
Run Code Online (Sandbox Code Playgroud)
问题:
pbcopy pbpaste?命令解释:
python -m markdown 做主要工作textutil [… opts] 从 HTML 转换为 RTFpbcopy | pbpaste -Prefer rtf将纯文本 RTF 指令从textutil解释的 RTF 中输出并返回为解释的 RTF的神奇之处。如果不要求解释 RTF,问题会容易得多。我已经尝试调用管道的前两个步骤,并能够正确保存 rtf 格式的文件(以及其他格式)。
如何在 C# 或 JS 中将 RTF 字符串转换为 Markdown 字符串(并返回),理想情况下不包装 exe?
我有一个使用 .NETRichTextBox控件的旧产品。使用它的表单以 Microsoft 专有的RTF 格式保存其输出。这是它可以生成的输出的一个小例子:
{\\rtf1\\ansi\\ansicpg1252\\uc1\\htmautsp\\deff2{\\fonttbl{\\f0\\fcharset0 Times New Roman;}{\\f2\\fcharset0 GenericSansSerif;}}{\\colortbl\\red0\\green0\\blue0;\\red255\\green255\\blue255;}\\loch\\hich\\dbch\\pard\\plain\\ltrpar\\itap0{\\lang1033\\fs18\\f2\\cf0 \\cf0\\ql{\\f2 {\\ltrch Some content here }\\li0\\ri0\\sa0\\sb0\\fi0\\ql\\par}\r\n}\r\n}
Run Code Online (Sandbox Code Playgroud)
我的 C# .NET Core Web App 需要能够使用这个存储的 RTF 在网页上显示一个“富文本编辑器”,有能力更新值,并以仍然可以被遗留使用的格式保存产品。
不幸的是,我无法找到可以使用 RTF 作为输入的现有/现代 Web 组件。大多数似乎使用降价或自定义 JSON 格式。