好的,我尝试使用.rtf
创建Java
文件。我不知道语法所以我做的是我在Mac上使用TextEdit创建了一个rtf文件,然后用明文打开它来查看代码。我用它来创建我的输出方法,如下所示:
/* Creates RTF */
public String createRTF(){
String l1 = "{\\rtf1\\ansi\\ansicpg1252\\cocoartf1265\\cocoasubrtf190 \n\n";
String l2 = "{\\fonttbl\\f0\\fmodern\\fcharset0 Courier;} \n\n";
String l3 = "{\\colortbl;\\red255\\green255\\blue255;} \n\n";
String l4 = "\\margl1440\\margr1440\\vieww10800\\viewh8400\\viewkind0 \n\n";
String l5 = "\\pard\\tx720\\tx1440\\tx2160\\tx2880\\tx3600\\tx4320\\tx5040\\tx5760\\tx6480\\tx7200\\tx7920\\tx8640\\pardirnatural \n\n";
String l6 = "\n\n";
String l7 = "\\f0\\fs24 \\cf0 Original Sequences:\\ \n\n";
String l8 = "\\ \n\n";
String l9 = sequence1 + "\\ \n\n";
String l10 = sequence2 + "\\ \n\n";
String l11 = "\\ \n";
String l12 = "Alignment:\\ \n\n";
String l13 = "\\ \n\n";
String l14 = s1Align + "\\ \n\n";
String l15 = aligned + "\\ \n\n";
String l16 = s2Align + "\\ \n\n";
String l17 = "\\ \n\n";
String l18 = "Score: " + score + "}";
String rtfString = l1 + l2 + l3 + l4 + l5 + l6 + l7 + l8 + l9 + l10 + l11 + l12
+ l13 + l14 + l15 + l16 + l17 + l18;
return rtfString;
}
我知道它有点草率但是我试图尽可能具体并且分开线,因为当我在TextEdit中手动创建文件时,rtf代码是:
{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf190
{\fonttbl\f0\fmodern\fcharset0 Courier;}
{\colortbl;\red255\green255\blue255;}
\margl1440\margr1440\vieww10800\viewh8400\viewkind0 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural
\f0\fs24 \cf0 Original Sequences:\
\
ACGTTGTACCA\
AGTTAAACCGTAAA\
\
Alignment:\
\
ACGTTGTACC--A--\
| ||| ||| | \
A-GTTAAACCGTAAA\
\
Score: 3}
我的问题是,当我使用我的程序保存文件时,这正是我的rtf代码的样子,但是当我使用TextEdit打开格式化文件时,它的一个连续字符串没有像我想要的那样被分隔。有趣的是,当我在TextEdit中添加换行符然后保存它,rtf代码看起来完全一样。我尝试在字符串末尾添加两个/n/n
,但这并不起作用。有没有办法完成这个输出?
答案 0 :(得分:0)
使用\r\n
代替\n
。这应该可以解决问题。
答案 1 :(得分:0)
使用字符串构建器对象构建rtfString
,其附加方法构建字符串,系统的行分隔符用于新行,例如:
StringBuilder.append(System.getProperty("line.separator"));
答案 2 :(得分:0)
我不想回答我自己的问题,但我确实找到了解决方案。由于我想要显示的是par
,我需要将//line
添加到我的字符串的末尾,以便在段落的中间正确添加新行。谢谢大家的帮助!
答案 3 :(得分:0)
请参阅Rich Text Format (RTF) Version 1.5 Specification
"\\\r\n"
因此CR + LF后面的反斜杠将作为\par
- 一个段落。
回车(字符值13)或换行符(字符值 如果字符前面有,则将被视为\ par控件 反斜杠。你必须包括反斜杠;否则,RTF忽略 控制字。 (您可能还想插入一个 至少每255个没有反斜杠的回车/换行对 通过通信线路传输更好文本的字符。)