Rich Text Format - Rich Text Format

Rich Text Format
Filnamnstillägg
.rtf
Internetmedietyp
text/rtf -ansökan
/rtf
Skriv kod 'RTF.'
Uniform Type Identifier (UTI) public.rtf
Magiskt nummer {\rtf
Utvecklad av Microsoft
Initial release 1987 ; 34 år sedan ( 1987 )
Senaste släppningen
1.9.1
(19 mars 2008 ; för 13 år sedan ) ( 2008-03-19 )
Typ av format Dokumentfilformat
Öppet format ? Nej

Den Rich Text Format (ofta förkortat RTF ) är en egen dokumentfilformat med publicerade specifikation som utvecklats av Microsoft Corporation från 1987 till 2008 för plattformsoberoende dokumentutbyte med Microsoft-produkter. Före 2008 publicerade Microsoft uppdaterade specifikationer för RTF med stora revideringar av Microsoft Word- och Office -versioner.

De flesta ordbehandlare kan läsa och skriva vissa versioner av RTF. Det finns flera olika revideringar av RTF -specifikationen; filens portabilitet beror på vilken version av RTF som används.

RTF bör inte förväxlas med berikad text eller dess föregångare Rich Text, inte heller med IBMs RFT-DCA (Revisable Format Text-Document Content Architecture), eftersom dessa är olika specifikationer.

Historia

Richard Brodie , Charles Simonyi och David Luebbert, medlemmar i Microsoft Word -utvecklingsteamet, utvecklade den ursprungliga RTF i mitten till slutet av 1980 -talet. Den första RTF -läsaren och författaren levererades 1987 som en del av Microsoft Word 3.0 för Macintosh , som implementerade RTF version 1.0 -specifikationen. Alla efterföljande versioner av Microsoft Word för Macintosh, liksom alla Windows -versioner, kan läsa och skriva i RTF -format.

Microsoft underhåller RTF. Den slutliga versionen var 1.9.1 2008, som implementerade funktioner i Office 2007 . Microsoft har avbrutit förbättringar av RTF -specifikationen, så funktioner som är nya i Word 2010 eller en senare version kommer inte att sparas ordentligt på RTF. Microsoft förväntar sig inga ytterligare uppdateringar av RTF, men har uttalat sig villiga att överväga redaktionella och andra icke-väsentliga ändringar av RTF-specifikationen under en tillhörande omröstningsperiod för ISO/IEC 29500 .

RTF -filer användes för att producera Windows Hjälp -filer, även om dessa sedan har ersatts av Microsoft Compiled HTML Help -filer.

RTF -specifikationer för Microsoft Word
RTF -version Publiceringsdatum Microsoft Word -version MS Word utgivningsdatum Anteckningar
1.0 1987 Microsoft Word 3 1987 Den senaste revisionen kom i juni 1992. 1992 års revision definierade stöd för Microsoft Object Linking and Embedding (OLE) -objekt och Macintosh Edition Manager -prenumerationsobjekt. Det stödde också införandet av Windows Metafile , PICT , Windows enhetsberoende bitmapp, Windows enhetsoberoende bitmapp och OS/2 Metafile bildtyper i RTF.
1.1 Microsoft Word 4 1989 Tillåtet för inbäddning av teckensnitt , vilket gör att typsnittsdata kan placeras inuti filen.
1.2 1993 Microsoft Word 5 1991
1.3 Januari 1994 Microsoft Word 6 1993 1/94 GC0165; för enhetsoberoende och driftskompatibilitet, uppmuntras till att bädda in bitmappar i Windows-metafiler , istället för att använda Windows-enhetsoberoende bitmappar eller Windows-enhetsberoende bitmappar.
1.4 September 1995 Microsoft Word 95/Word 7 1995
1.5 April 1997 Microsoft Word 97/Word 8 1997 Introducerade Unicode RTF, som stöder 16-bitars Unicode-teckenkodningsschema; definierad inkludering av PNG- , JPEG- och EMF -bildtyper i hexadecimala (standard) eller binära format i en RTF -fil. Innehåller också en japansk lokal RTF-specifikation som heter RTF-J för den japanska versionen av Word; RTF-J skiljer sig något från standard RTF-specifikationen.
1.6 Maj 1999 Microsoft Word 2000/Word 9 1999 Inkluderat Pocket Word och Exchange (används vid RTF-HTML-konverteringar).
1.7 Augusti 2001 Microsoft Word 2002/Word 10 2001 8/2001– Word 2002 RTF -specifikation
1.8 April 2004 Microsoft Word 2003/Word 11 2003 10/2003– Word 2003 RTF -specifikation
1.9.1 19. mars 2008
(RTF 1.9 - publicerad i januari 2007)
Microsoft Word 2007/Word 12 2006 Tillåten XML- markering-anpassade XML-taggar, SmartTags , matematiska element i ett RTF-dokument, lösenordsskydd, element som motsvarar Office Open XML Ecma-376 Part 4

Kodsyntax

RTF: s syntax påverkades av TeX -inställningsspråket. Det är programmerat med hjälp av grupper, ett snedstreck, ett kontrollord och en avgränsare. Grupper finns i lockar ({}) och anger vilka attribut som ska tillämpas på viss text.

Backslash (\) introducerar ett kontrollord, som är ett specifikt programmerat kommando för RTF. Kontrollord kan ha vissa tillstånd där de är aktiva. Dessa tillstånd representeras av siffror. Till exempel,

\b0
indikerar att fet text är avstängd
\b1
indikerar att fet text är på

En avgränsare är en av tre saker:

  1. Ett utrymme
  2. En siffra eller bindestreck (t.ex. -23, 23, 275)
  3. Ett annat tecken än en siffra eller bokstav (t.ex. \, /,})

Som ett exempel, följande RTF -kod

 {\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0\pard
 This is some {\b bold} text.\par
 }

skulle återges enligt följande:

Detta är en fet text.

Teckenkodning

En standard RTF-fil kan bara bestå av 7-bitars ASCII- tecken, men kan använda Escape-sekvenser för att koda andra tecken. De två tecken flyr är teckentabellen flyr och börjar med RTF 1.5, Unicode flyr. I en kodsidesflygning betecknar två hexadecimala siffror efter ett snedstreck och skrivmaskinens apostrof ett tecken från en Windows -kodsida. Till exempel, om kodsidan är inställd på Windows-1256 , \'c8kodar sekvensen den arabiska bokstaven bāʼ ب. Det är också möjligt att ange en "teckenuppsättning" i ingressen till RTF -dokumentet och associera den med en rubrik. Till exempel har ingressen texten \f3\fnil\fcharset128, sedan i texten i dokumentet kommer texten \f3\'bd\'f0att representera kodpunkten 0xbd 0xf0 från teckenuppsättningen 128 (som motsvarar Shift-JIS-kodsidan), som kodar "金".

RTF -teckenuppsättning Kodsida Beskrivning
0 Windows-1252 Latinska alfabetet, Västeuropa / Amerika
1 0 Standard Windows API -kodsida för systemspråk
2 42 Symbol ( PUA-mappad ) teckenuppsättning
77 2 Standardkod för Macintosh-kompatibilitet för systemspråk
128 Windows-932 Japanska, Shift JIS (Windows -version)
129 Windows-949 Koreanska, Unified Hangul Code (förlängd Wansung)
130 Windows-1361 Koreanska, Johab (ASCII-baserad version)
134 Windows-936 Kinesiska, GBK (utökat GB 2312 )
136 Windows-950 Kinesiska, Big5
161 Windows-1253 grekisk
163 Windows-1254 Latinska alfabetet, turkiska
177 Windows-1258 Latinska alfabetet, vietnamesiska
178 Windows-1255 Hebreiska
186 Windows-1256 Arabiska
204 Windows-1257 Baltikum
222 Windows-1251 Kyrilliska
238 Windows-1250 Latinska alfabetet, Östeuropa
255 1 Standard OEM -kodsida för systemspråk

För en Unicode-escape används kontrollordet \uföljt av ett 16-bitars signerat heltal som motsvarar Unicode UTF-16-kodens enhetsnummer. För att gynna program utan Unicode -stöd måste detta följas av närmaste representation av detta tecken på den angivna kodsidan. Till exempel \u1576?skulle ge den arabiska bokstaven bāʼ ب, men indikerar att äldre program som inte stöder Unicode borde göra det som ett frågetecken istället.

Kontrollordet \uc0kan användas för att indikera att efterföljande Unicode -escape -sekvenser inom den aktuella gruppen inte anger substitutionstecknet.

Fram till RTF-specifikation version 1.5 släpptes 1997 hanterade RTF bara 7-bitars tecken direkt och 8-bitars tecken kodade som hexadecimala (med \'xx). Eftersom RTF 1.5 accepterar dock RTF-kontrollord i allmänhet signerade 16-bitars nummer som argument. Unicode -värden större än 32767 måste uttryckas som negativa tal. Om ett Unicode -tecken ligger utanför BMP , kodas det med ett surrogatpar. Stöd för Unicode gjordes på grund av texthanteringsändringar i Microsoft Word-Microsoft Word 97 är en delvis Unicode-aktiverad applikation och hanterar text med 16-bitars Unicode-teckenkodningsschema . Microsoft Word 2000 och senare versioner är Unicode-aktiverade program som hanterar text med 16-bitars Unicode-teckenkodningsschema.

Eftersom RTF-filer vanligtvis är 7-bitars ASCII- text , kan de enkelt överföras mellan PC-baserade operativsystem. Omvandlare som kommunicerar med Microsoft Word för MS Windows eller Macintosh förväntar sig generellt dataöverföring som 8-bitars tecken och binär data som kan innehålla alla 8-bitars värden.

Mänsklig läsbarhet

RTF är ett dataformat för att spara och dela dokument, inte ett markeringsspråk ; den är inte avsedd för intuitiv och enkel skrivning. Men till skillnad från många ordbehandlingsformat kan RTF-kod vara läsbar för människor . När en RTF -fil som innehåller mestadels latinska tecken utan diakritik ses som en ren textfil, är den underliggande ASCII -texten läsbar, förutsatt att författaren har hållit formateringen kortfattad.

När RTF släpptes använde de flesta ordbehandlare binära filformat; Microsoft Word, till exempel, använde .DOC -filformatet . RTF var unik i sin enkla formateringskontroll som gjorde det möjligt för icke-RTF-medvetna program som Microsoft Notepad att öppna och tillhandahålla läsbara filer. Idag har de flesta ordbehandlare flyttat till XML-baserade filformat (Word har bytt till .docx- filformat). Oavsett, dessa filer innehåller stora mängder formateringskod, så de är ofta tio eller fler gånger större än motsvarande vanlig text.

För att vara standardkompatibel RTF måste icke-ASCII-tecken undvikas. Så även med kortfattad formatering är text som använder vissa streck och citattecken mindre läsbar. Latinska språk med många diakritiker är särskilt svåra att läsa i RTF, eftersom de resulterar i substitutioner som \ 'f1 för ñ och \' e9 för é . Icke-latinska skript är oläsliga i RTF-\ u21563 används till exempel för. Från början har RTF också stött Microsoft OLE- inbäddade objekt och Macintosh Edition Manager-prenumerationsobjekt, som inte är läsbara för människor.

Vanliga användningsområden och driftskompatibilitet

De flesta ordbehandlingsprogram stöder antingen RTF -formatimport och -export för någon RTF -specifikation eller direktredigering, vilket gör det till ett "vanligt" format mellan annars inkompatibla ordbehandlingsprogram och operativsystem. De flesta applikationer som läser RTF -filer ignorerar tyst okända RTF -kontrollord. Dessa faktorer bidrar till dess driftskompatibilitet , även om den fortfarande är beroende av den specifika RTF -versionen som används. Det finns flera medvetet designade eller oavsiktligt födda RTF -dialekter.

RTF är det interna markeringsspråket som används av Microsoft Word. Sedan 1987 har RTF -filer kunnat överföras fram och tillbaka mellan många gamla och nya datorsystem (och nu över Internet), trots skillnader mellan operativsystem och deras versioner. Detta gör det till ett användbart format för grundläggande formaterade textdokument som instruktionsmanualer, resuméer, brev och blygsamma informationsdokument. Dessa dokument stöder åtminstone fet, kursiv och understruken textformatering. Typiskt stöds också för vänster-, mitten- och högerjusterad text, teckensnittsspecifikation och dokumentmarginaler.

Standardinställningar för teckensnitt och marginaler, stilinställningar och andra funktioner varierar beroende på programmets standardvärden. Det kan också finnas oförenligheter mellan olika RTF-versioner, t.ex. mellan RTF 1.0 1987 och senare specifikationer, eller mellan RTF 1.0-1.4 och RTF 1.5+ vid användning av Unicode-tecken. Och även om RTF stöder metadata som titel och författare, stöder inte alla implementeringar detta. Ändå är RTF-formatet tillräckligt konsekvent för att betraktas som mycket bärbart och acceptabelt för plattformsoberoende användning.

Objekt

Microsoft Object Linking and Embedding (OLE) -objekt och Macintosh Edition Manager -prenumerationsobjekt tillåter inbäddning av andra filer i RTF, till exempel tabeller eller diagram från kalkylprogram. Eftersom dessa objekt inte stöds i stor utsträckning i program för visning eller redigering av RTF -filer, begränsar de emellertid också RTF: s interoperabilitet. Om en programvara som förstår ett OLE -objekt inte är tillgänglig, ersätts vanligtvis objektet med en bitmappsrepresentation av objektet (dvs en bild) eller visas inte alls.

Bilder

RTF stöder inkludering av JPEG, PNG, Enhanced Metafile (EMF), Windows Metafile (WMF), Apple PICT, Windows enhetsberoende bitmapp, Windows enhetsoberoende bitmapp och OS/2 Metafile bildtyper i hexadecimal (standard) eller binärt format i en RTF -fil. Men inte alla dessa bildtyper stöds i alla RTF -läsare. När ett RTF -dokument öppnas i programvara som inte stöder bildtypen för en infogad bild, visas bilden inte. RTF -författare konverterar vanligtvis antingen en infogad bild i en bildtyp som inte stöds till en i en bildtyp som stöds, eller så inkluderar de inte alls bild.

För bättre kompatibilitet med Microsoft -produkter innehåller vissa RTF -författare samma bild i två olika bildtyper i en RTF -fil: en bildtyp som stöds och en okomprimerad WMF -kopia av originalbilden för att förbättra kompatibiliteten med vissa Microsoft -program som Wordpad.

Denna metod ökar RTF -filstorleken dramatiskt. RTF -specifikationen kräver inte denna metod, och flera implementeringar inkluderar inte WMF -kopian (t.ex. Abiword eller Ted).

För Microsoft Word är det också möjligt att ange ett specifikt registervärde ("ExportPictureWithMetafile = 0") för att förhindra att Word sparar WMF -kopian.

Teckensnitt

RTF stöder inbäddning av teckensnitt som används i dokumentet, men den här funktionen stöds inte i stor utsträckning i programvaruimplementeringar.

RTF stöder också generiska typsnittsfamiljnamn som används för typsnittsersättning : roman ( serif ), schweizisk ( sans-serif ), modern ( monospace ), script , dekorativ och teknisk . Den här funktionen stöds inte heller allmänt.

Anteckningar

Sedan RTF 1.0 har RTF -specifikationen stött dokumentkommentarer/kommentarer. RTF 1.7 -specifikationen definierade några nya funktioner för annoteringar, inklusive datumstämpel (det fanns tidigare bara "tidsstämpel") och föräldrar till kommentarer. När ett RTF -dokument med anteckningar öppnas i en applikation som inte stöder RTF -anteckningar visas inte anteckningarna. På samma sätt, när ett dokument med kommentarer sparas som RTF i ett program som inte stöder RTF -anteckningar, bevaras inte kommentarerna i RTF -filen. Vissa implementeringar, som Abiword (sedan version 2.8) och IBM Lotus Symphony (upp till version 1.3), kan dölja annoteringar som standard eller kräva någon användaråtgärd för att visa dem.

RTF -specifikationen stöder också fotnoter, som i stor utsträckning stöds i RTF -implementeringar (t.ex. i OpenOffice.org, Abiword, KWord, Ted, men inte i Wordpad). Slutnoter implementeras som en variant på fotnoter, så applikationer som stöder fotnoter men inte slutnoter kommer att göra en slutnot som en fotnot.

Microsoft -produkter stöder inte kommentarer inom sidfot, fotnoter eller sidhuvuden. På samma sätt stöder Microsoft -produkter inte fotnoter i sidhuvud, sidfot eller kommentarer. Att infoga en kommentar eller en fotnot i ett av dessa otillåtna sammanhang kan resultera i ett skadat dokument.

Rita objekt

RTF 1.2 -specifikationen definierade användning av ritobjekt, så kallade former, såsom rektanglar, ellipser, linjer, pilar och polygoner. RTF 1.5 -specifikationen introducerade många nya kontrollord för att rita objekt.

Många RTF -implementeringar, till exempel Apache OpenOffice , stöder dock inte ritobjekt (även om de stöds i LibreOffice 4.0 på) eller Abiword. Program som inte stöder RTF -ritobjekt visar eller sparar inte formerna. Vissa implementationer visar inte heller någon text inuti ritobjekt.

Säkerhetsproblem

Till skillnad från Microsoft Words DOC -format, liksom de nyare Office Open XML- och OpenDocument -formaten, stöder RTF inte makron . Av denna anledning rekommenderades RTF ofta över dessa format när spridningen av datavirus via makron var ett problem. Att ha .RTF -tillägget garanterar dock inte en säker fil, eftersom Microsoft Word öppnar vanliga DOC -filer som byter namn med ett RTF -tillägg och kör alla makron som vanligt. Manuell granskning av en fil i en vanlig textredigerare som Anteckningar eller användning av filekommandot i ett UNIX -liknande system krävs för att avgöra om en misstänkt fil verkligen är RTF eller inte. Att aktivera Words alternativet "Bekräfta konvertering av filformat vid öppet" kan också hjälpa genom att varna för att ett dokument som öppnas är i ett format som inte matchar det format som filtillägget antyder, och ger möjlighet att avbryta att öppna filen. Ett utnyttjande som angrep en sårbarhet lappades i Microsoft Word i april 2015.

Sedan 2014 har det funnits RTF -filer med skadlig kod som inbäddar OpenXML -exploater .

Implementeringar

Varje RTF -implementering implementerar vanligtvis endast vissa versioner eller delmängder av RTF -specifikationen. Många av de tillgängliga RTF -omvandlarna kan inte förstå alla nya funktioner i de senaste RTF -specifikationerna.

Den WordPad editor i Microsoft Windows skapar RTF-filer som standard. Det en gång som standard till Microsoft Word 6.0 -filformat, men skrivstöd för Word -dokument (.doc) tappades i en säkerhetsuppdatering. Lässtöd tappades också i Windows 7. WordPad stöder inte vissa RTF -funktioner, till exempel sidhuvuden och sidfötter. WordPad kan emellertid läsa och spara många RTF-funktioner som den inte kan skapa, inklusive tabeller, strejk, superscript, abonnemang, "extra" färger, textbakgrundsfärger, numrerade listor, höger eller vänster indrag, kvasi-hypertext och URL-länkning och olika linjeavstånd. RTF är också dataformat för "rich text -kontroller" i MS Windows API: er.

Standardtextredigeraren för macOS , TextEdit , kan också visa, redigera och spara RTF -filer samt RTFD -filer och använder formatet som standard. I juli 2009 har TextEdit begränsad möjlighet att redigera RTF -dokumentmarginaler. Mycket äldre Mac -ordbehandlingsprogram som MacWrite och WriteNow hade samma RTF -förmågor som TextEdit har.

Gratis och öppen källkod ordbehandlare AbiWord , Apache OpenOffice , Bean , Calligra , KWord , LibreOffice och NeoOffice kan visa, redigera och spara RTF-filer. RTF -formatet används också i Ted -ordbehandlaren.

Scrivener använder individuella RTF -filer för alla textfiler som utgör ett givet "projekt".

SIL Internationals freeware -applikation för utveckling och publicering av ordböcker använder RTF som den vanligaste formen för dokumentutmatning. RTF-filer som skapas av Toolbox är utformade för att användas i Microsoft Word , men kan också användas av andra RTF-medvetna ordbehandlare.

RTF kan användas på vissa e -bokläsare på grund av dess interoperabilitet, enkelhet och låga processorkrav.

Bibliotek och omvandlare

Skriptet med öppen källkod rtf2xml kan delvis konvertera RTF till XML.

GNU UnRTF är ett program med öppen källkod för att konvertera RTF till HTML-, LaTeX-, troffmakron och andra format. pyth är ett Python -bibliotek för att skapa och konvertera dokument i RTF-, XHTML- och PDF -format. Ruby RTF är ett projekt för att skapa Rich Text -innehåll via Ruby . RaTFink är ett bibliotek med Tcl -rutiner, gratis programvara, för att generera RTF -utdata och ett kostnadsskript för att konvertera SGML till RTF. RTF :: Writer är en Perl -modul för att generera RTF -dokument. PHPRtfLite är ett API som gör det möjligt för utvecklare att skapa RTF -dokument med PHP . Pandoc är en dokumentkonverterare med öppen källkod med flera utmatningsformat, inklusive RTF. RTFGen är ett projekt för att skapa RTF -dokument via ren PHP . rtf.js är ett JavaScript -baserat bibliotek för att återge RTF -dokument i HTML.

MacOS kommandoradsverktyg textutil kan konvertera filer mellan rtf, rtfd, text, doc, docx, wordml, odt och webbarkivformat. Redaktören Ted kan också konvertera RTF -filer till HTML- och PS -format.

Kritik

Rich Text Format var standardfilformatet för textbaserade dokument i applikationer som utvecklats för Microsoft Windows. Microsoft gjorde inte RTF -specifikationen initialt tillgänglig för allmänheten, vilket gjorde det svårt för konkurrenter att utveckla dokumentkonverteringsfunktioner i sina applikationer. Eftersom Microsofts utvecklare hade tillgång till specifikationen hade Microsofts applikationer bättre kompatibilitet med formatet. Varje gång Microsoft ändrade RTF-specifikationen hade Microsofts egna applikationer en ledning i time-to-market, eftersom konkurrenterna var tvungna att utveckla om sina applikationer efter att ha studerat den nyare versionen av formatet.

Novell påstod att Microsofts praxis var konkurrensbegränsande i 2004 års antitrustklagomål mot Microsoft.

Enligt bloggaren Hannes Schmidt saknar RTF -specifikationerna några av de semantiska definitioner som är nödvändiga för att läsa, skriva och ändra dokument.

Se även

Referenser

externa länkar