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 |
Senaste släppningen | 1.9.1 (19 mars 2008 ) |
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 -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:
- Ett utrymme
- En siffra eller bindestreck (t.ex. -23, 23, 275)
- 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 , \'c8
kodar 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\'f0
att 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 \u
fö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 \uc0
kan 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 file
kommandot 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
- Rich Text Format Directory ( .rtfd -filtyp )
- Anrikat text format
- Lista över dokumentmarkeringsspråk
- Jämförelse av dokumentmarkeringsspråk
- Revisable-Form Text (RFT), en del av IBMs dokumentinnehållsarkitektur (DCA)
- TNEF , Transport Neutral Encapsulation Format, Microsoft Outlook standardmeddelandeformat
Referenser
externa länkar
- RTF 1.9.1 -specifikation , mars 2008, från Microsoft
- RTF 1.9.1 -specifikation , mars 2008, via tidigare nedladdning från Microsoft och Internet Archive
- RTF 1.8 -specifikation , april 2004, från ysagnier.free.fr
- RTF 1.6 -specifikation , maj 1999, från Microsoft
- RTF 1.5 -specifikation , april 1997, från biblioscape.com
- RTF 1.0, 1.2, 1.3, 1.5 och 1.7 specifikationer , från RTF Tools open source-projekt
- RTF 1.0-specifikation , juni 1992, från latex2rtf-projektet med öppen källkod
- RTF Pocket Guide , bokhemsida
- RTF -teckenuppsättning till kodsida , senast redigerad juni 2017