Kuidas .RTF-faili avada? Mida tähendab RTF-failivorming ja kuidas seda avada

MS Office’i rakendust teavad pea kõik arvutikasutajad, kui mitte üle maailma, siis meie riigis kindlasti. See populaarsus on suuresti tingitud kaasaegse maailma kasvavatest vajadustest teabe loomise ja vahetamise järele. Igas kaasaegses riigiasutuses luuakse ja saadetakse iga päev tuhandeid dokumente ning seetõttu on hädasti vaja programme, mis saaksid seda protsessi standardiseerida ja lihtsustada.

Sellega seoses on aga palju huvitavam rtf-vorming, mida saab enamikul juhtudel positsioneerida universaalse teabe edastamise vahendina. Muide, miks ta nii hea on? Miks mitte kasutada doc-i?

Fakt on see, et rtf-vormingut toetavad avalikult peaaegu kõik operatsioonisüsteemid ja seda saavad lugeda ka kõige lihtsamad. Enamik tekstiandmetega töötamiseks mõeldud rakendusi toetab selles standardis salvestamist.

Kuid see ei ole isegi põhjus, miks kasutajad rtf-vormingut nii väga armastavad. Erinevalt ülalmainitud doc-ist, aga ka docx, odt ja muudest sarnastest failidest võib see sisaldada ainult teksti. Kogenematud kasutajad võivad arvata, et kõigis ülaltoodud tekstidokumentides pole midagi erinevat, kuid see pole nii. Fakt on see, et sama kontoridokumentide vorming, mida meie kodumaised kasutajad armastavad, võib sisaldada makrosid. Tegelikult on need tõelised programmid, mida ründajad saavad kasutada kaugeltki mitte headel eesmärkidel.

Need moodustavad märkimisväärse osa nakatumistest, mis tekivad Internetist alla laaditud tekstidokumentide käivitamisel. RTF-vormingut kasutades ei riski te tegelikult millegagi. Kuid sellel on ka teatud puudused, millega tuleb samuti oma töökoha salvestamisel arvestada. Näiteks rtf-vormingu txt-vormingusse teisendamiseks peate ikkagi kasutama mõnda kontorirakendust. Kuid see ei tekita erilist probleemi.

Näiteks ei saa seda kasutada dünaamiliselt lingitud dokumentide loomiseks. Objektide sisestamine vastuvõtvasse dokumenti toob kaasa viimase suuruse olulise suurenemise. Sellega seoses kasutatakse mõnikord meetodit, mille puhul luuakse ainult ühendus allikaga. Sel juhul, kuigi objekt kuvatakse sihtdokumendis, ei salvestata seda sellesse, kuna dokumendi sees on ainult link lähtefailile või objektile. Seetõttu ärge sisestage rtf-vormingusse eriti suuri pilte.

Lisaks on sellel ka teatud vormindamise probleeme. Seega ärge isegi mõelge olulise dokumendi või diplomi rtf-vormingus salvestamisele. Leiad alati võimaluse selle avamiseks, kuid keegi ei garanteeri sinu loomingu algse välimuse säilimist. Lisaks puudub see peaaegu täielikult Lihtsamalt öeldes, kui salvestasite oma töö programmi vanasse versiooni, siis see peaaegu kindlasti uues rakenduses ei avane.

Te ei tohiks loota OpenSource toodetele, kuna hetkel on Microsoft (nimelt see ettevõte on vormingu looja) teinud avalikult kättesaadavaks ainult rtf esmased versioonid.

Microsoft määratles selle vormingu tekstidokumentide vahetamise standardvorminguna. Seetõttu on selle vormingu eesmärk sarnane arvutustabelite SYLK-vorminguga. RTF-i toetavad paljud Microsofti tooted. Näiteks alates versioonist 2.0 võeti see Windowsi lõikelaua vormingus kasutusele, võimaldades andmete vahetamist erinevate Windowsi rakendusprogrammide vahel. Lisaks toetab RT-vormingut WORD for Macintosh alates versioonist 3.X ja WORD PC jaoks alates versioonist 4.X.

RTF kasutab dokumentide vahetamiseks ainult ASCII-, MAC- ja PC-märgikomplektide tähemärkidega esitatavaid koode. RT-vormingus fail sisaldab lisaks tekstile loetaval kujul juhtkäske.

Dokument koosneb peamiselt juhtkäskudest RTF-vormingus failide lugemise programmi seadistamiseks. Need käsud võib jagada juhtsõnadeks (kontrollsõnad) ja juhttegelased (juhtsümbolid).

Juhtsõna on eraldusmärgiga märgijada (eraldaja) lõpus:

\tähejärjestus

Enne juhtsõna sisestatakse kaldkriips "\" (kaldkriips). Eraldajatena saab kasutada järgmisi märke:

  • Kosmos (ruum), kusjuures see sümbol viitab juhtsõnale;
  • Number või märk "-". Nendele märkidele peab järgnema piiritletud parameeter. Eraldajana võib kasutada tühikuid või muid märke peale numbrite ja tähtede;
  • Kõik märgid peale numbrite ja tähtede. Need sümbolid ei kehti kontrollsõna.

RT-vormingus kasutatakse juhtjärjestuse määramiseks tähti A-st Z-ni ja a-st Z-ni, samuti numbreid vahemikus 0 kuni 9. Riigisümbolid ei kuulu kontrollinfo hulka.

Nagu, juhtmärgid kasutatakse eraldi tähti. Igale juhtmärgile eelneb kaldkriips "\":

\juhtsümbol

Praegu on määratletud vaid mõned neist sümbolitest. Seetõttu võivad tundmatud tähemärgid lugemisel vahele jääda.

RT-vormingus on võimalik ühendada üksikud jadad rühmadesse, kasutades sulgusid:

(grupi algus) rühma lõpp

Sellised rühmad luuakse näiteks allmärkuste, päiste jms kirjeldamisel. Kui peate lihtteksti sisse paigutama märgid "\", "(" või ")", peate nende ette kirjutama kaldkriipsu:

\\ \{ \}.

See võimaldab RTF-i jada lugeval programmil ära tunda, et märki ei tohiks tõlgendada juhtmärgina.

RT-vorming kasutab printimise juhtimiseks ka mõningaid märgikoode

Teksti sees olevad CR- ja LF-märgid jäetakse vahele. Microsoft kasutab RTF-faili esitamisel neid märke selguse huvides. Juhtsõnade sees võivad märgid CR ja LF omada eritähendust.

Spetsiaalsed kontrollsõnad

RTF-il on eriotstarbelised juhtsõnad. Vaatleme lühidalt neid sõnu ja nende eesmärki.

Kontrollsõna muuta lehe numbrit kuvab praeguse lehekülje numbri.

Kontrollsõna muuda allmärkust aktiveerib joonealuste märkuste automaatse nummerdamise.

Kasutades muuta kuupäeva Saate kuvada praeguse kuupäeva.

Kasutades muuta aega Saate kuvada praegust kellaaega.

\chftnsep

Tähistab muudatust reas, mis eraldab joonealuseid märkusi tekstist.

Seda järjestust kasutades sisestatakse valemi tekst.

Tähistab indeksi alamüksust.

RTF-vormingu lugemisel võidakse tekst vahele jätta.

Määrab kahe sõna vahele kõva (mittemurdeva) tühiku, st. selles asendis ei saa lauset järgmisele reale viimisel poolitada.

Sümbol näitab pehmet ülekannet (mittevajalik sidekriips).

Sümbol tähistab katkematut sidekriipsu (mittemurdev sidekriips), mille asemel ei saa sõna jagada.

Jada võimaldab kuueteistkümnendsüsteemi numbrite otsest sisestamist teksti. Need on määratud hh-märkide asemel.

See järjestus määrab ülemineku uuele lehele.

See jada põhjustab tekstis ülemineku uuele reale.

Seda järjestust kasutades märgitakse tekstis lõigu lõpp. Järjekord \para saab asendada järjestusega \ 10 või \ 13. Kus \10 vastab ASCII märgikoodile 10 (vankri tagasi). ASCII-koodi 10 (CR) ei saa otse sisestada, kuna lugeja ignoreerib seda.

See jada tähistab tekstifragmendi või tekstilõigu lõppu.

See jada asendab tabulaatorit. Samuti saate otse määrata ASCII-koodi 09H.

Tabeli (veeru) lõpp.

Tabeli (rea) lõpp.

Sihtkoha kontrollsõnad

Allpool kirjeldatud juhtsõnu kasutades saate teha RTF-lugeja põhiseadeid. Need võivad esineda ainult dokumendi alguses või rühma alguses. Kõik operaatorid koos parameetritega peavad olema sulgudes, näiteks:

(\rtf0\pc.......)

Mõnede avalduste vormingut kirjeldatakse allpool.

\rtf<параметр>

Määrab faili alguse. Faili loomisel kasutatav programm võib parameetrina määrata versiooninumbri. Näiteks:

(\rtf0.......)

Silt peab olema faili alguses. Sellele väitele võivad järgneda muud väited või sulg.

Salvestatud teksti kodeeringu tüübi määramine toimub järgmiste operaatorite abil:

  • \ansi: tekst salvestatakse standardses ASCII-vormingus. Seda vormingut kasutatakse näiteks Windowsis.
  • \mac:. tekst on salvestatud Macintoshi kodeeringus
  • \rs: Teksti väljastamiseks kasutatakse IBM-PC märgikodeeringut.
  • \rsa: IBM-PC koodileht 850 (mudel PS\2).

Tekstide ülekandmiseks erinevate süsteemide vahel tuleb kasutada \ansi kodeeringut.

\colortbl

Windows ja muud programmid kasutavad kasutatavate värvide määramiseks palette. Enamasti koosneb palett 16 erinevast värvitoonist, mis saadakse põhivärvide – punase, rohelise ja sinise – kombineerimisel. Meeskond \colortbl võimaldab muuta üksikuid definitsioone paletis. Iga värvi puhul on tabelis näidatud punase, rohelise ja sinise komponendi väärtused. Iga värvi kirjeldatakse kolme parameetriga:

\red000 \green000 \blue000

000 asemel on näidatud värvimurru väärtus vahemikus 0 kuni 255 Näide: 16 värvist koosnevas tabelis tuleb 0. ja 2. värv uuesti määratleda. Värvide alistamiseks saab määrata järgmise järjestuse:

( \colortbl \red128\green64\blue128\;;\red0\green64\blue128; )

Värvimääratlus lõpeb semikooloniga. Kuna 1. värv jääb muutumatuks, on jadas kaks ";" märki. järgige üksteise järel. Jada lõpeb sulgeva sulguga.

Operaator \cfn määrab taustavärvi (vaikeseadega n=0) ja operaatori \cbn- sümboli värv (standardseadistuse korral n=0).

\fonttbl

Seda operaatorit kasutatakse fonditabeli koostamiseks ja see korreleerib fondi nime (fondirühma) sellega number font. Fondi määratlemisel saate kasutada järgmisi operaatoreid:

  • \fnil: fondirühma nimi on teadmata. Väljund peab kasutama standardset fonti.
  • \froman: Kasutada tuleb rooma fonte (nt Times Roman)
  • \fswiss: see operaator nõuab Šveitsi grupi fontide kasutamist (Helvetica, Swiss jne)
  • \fmoodne: Kasutada saab Pica, Elite ja Courier fonte.
  • \fscript: Kasutatakse skriptirühma kaldkirja fonte.
  • \fdecor: selle operaatori määramisel tuleb fondid valida Decor grupist (vana inglise keel jne).
  • \ftech: tehniliste ja matemaatiliste sümbolitega (SYMBOL jne) fontide rühma valimine.

Fondirühma loomise käsk võib koosneda järgmistest lausetest:

(\fonttbl\f0\fnil vaikimisi;) (\fl\froman Roman h;) (\f2\fswiss helvetica;)

Pärast märksõna \fonttbl millele järgneb esimene fondinumber \f0. Järgmisena tuleb fondirühma määratlus. Siin on pärast numbrit 0 näidatud \fnil, need. rühma nimi teadmata. Järgmine parameeter määrab valitava fondi nime (näiteks rooma h). Märge vaikimisi käsib lugemisprogrammil kasutada standardset fonti. Fondi nime järel on semikoolon. Ülaltoodud näites on määratletud ainult fondid numbritega 1 ja 2. Kogu jada saab kombineerida lokkis sulgudega rühmaks.

Fonditabel tuleb enne operaatori leidmist väärtustega täita \stiilileht või tekst. Operaatori sisestatud standardfont \deffn.

\stiilileht

See operaator määrab lõigu fondi, st. kirjatüübi suurus, stiil ja nimi, samuti lõigu teksti joondamine. See kasutab kahte peamist parameetrit:

  • \sbasedon000: märkide 000 asemel näidatakse praeguse fonditüübi numbrit.
  • \snext000: määrab järgmise fonditüübi (stiili) numbri, millest saab praegune.

Operaator võib näiteks välja näha selline:

(\stylesheet\s0\f3\fs20\qj Tavaline;) (\sl\f3\fs30\b\qc Pealkirja tase 3;)

Fondid on nummerdatud 0 kuni n ( \s0...). Esimesel real lõigu stiil 0 ( \s0) on ette nähtud nimi Tavaline. Tekst väljastatakse fondi 3 ( \f3), suurus 10 punkti ( \fs20). Parameeter \qj näitab, et pealdis tuleb vormingu järgi joondada. Teine rida määratleb fondi stiili 1, millele antakse nimi Pealkirja tase 3. Kirja suurus on 15 punkti, paksus kirjas ( \b = julge) ja kuvamisel on kiri keskel ( \qc).

\pilt

Seda operaatorit kasutatakse pildi kirjeldamisel bitmap-vormingus. Järgmised parameetrid sisaldavad joonise kirjeldust kuueteistkümnendsüsteemis. Joonise geomeetria või selle vormingu määramiseks saab valikuliselt kasutada parameetreid:

  • \pich000: operaator määrab pildi kõrguse pikslites. Kolme nulli asemel asendatakse arvväärtus. Kui operaatorit pole, määratakse joonise kõrgus jooksvate graafiliste andmete põhjal. Parameetri abil saate määrata pildile kindla kõrguse.
  • \piw000: operaator määrab pildi laiuse pikslites. Kõik eelmise operaatori kohta öeldu vastab tõele.
  • \picscaled: Seda operaatorit kasutades muudetakse joonist nii, et see täidaks täpselt sellele eraldatud ala.
  • \wmetafailid: Parameeter määrab, et andmed salvestatakse Windowsi metafailivormingus. Parameeter n määrab metafaili tüübi (1 = MM-tekst).
  • \macpict: See suvand määrab, et andmed salvestatakse Macintoshi Quick-Draw vormingus.
  • \bin000:. parameeter määrab baitide arvu. Kolme nulli asemel kirjutatakse kuueteistkümnendsüsteem.
  • \wbitmap: Parameeter määrab bitmap-kujutise vormingu. Parameeter n määrab tüübi (0 vastab loogilisele bitmapile).
  • \brdrs: määratleb lihtsa pildiraami
  • \brdrdb: määrab pildile topeltäärise.
  • \brdrth: määrab pildiraami jaoks paksu joone.
  • \brdrsh: määrab pildile varjutatud raami
  • \brdrdot: määrab joonisele punktiirjoone.
  • \brdrjuuksed: määrab pildi raami jaoks õhukese joone.
  • \picwGoaln: määrab pildi soovitud laiuse kahekaupa
  • \picGoaln: määrab pildi soovitud kõrguse kahekaupa.
  • \picscalexn: määrab horisontaalse skaleerimise (n võib võtta väärtused 1 kuni 100, vaikimisi -10).
  • \picscaleyn: määrab vertikaalse skaleerimise (n võib võtta väärtused 1 kuni 100, vaikimisi on 10).
  • \piccroptn: kirjeldab joonise ülemist veerist twips. Parameetri n positiivsete väärtuste korral lõigatakse pildi ülemine osa ära. N-i negatiivsed väärtused võimaldavad luua pildi ümber raami. N vaikeväärtus on 0.
  • \рiccrobп: kirjeldab joonise alumist veerist twips. Parameetri n positiivsete väärtuste korral lõigatakse pildi alumine osa ära. N-i negatiivsed väärtused võimaldavad luua pildi ümber raami. N vaikeväärtus on 0.
  • \рссрорrn: kirjeldab pildi paremat veerist kahevahel. Parameetri n positiivsete väärtuste korral lõigatakse pilt paremalt ära. N-i negatiivsed väärtused võimaldavad luua pildi ümber raami. N vaikeväärtus on 0.
  • \piccropln: kirjeldab pildi vasakut veerist kahekaupa. Parameetri n positiivsete väärtuste korral lõigatakse pilt vasakult ära. N-i negatiivsed väärtused võimaldavad konstrueerida pildi ümber raami. N vaikeväärtus on 0.
  • \wbmbitspixeln: määrab bittide arvu piksli kohta bitmap kujutise jaoks (standardväärtus on 1).
  • \wbmplanesn: määrab bititasandite arvu (vaikeväärtus on 1).
  • \wbmwidtbbytesn: määrab bitmapi pikkuse baitides

RTF-faili avamisega seotud probleemide kõige levinum põhjus on lihtsalt teie arvutisse installitud sobivate rakenduste puudumine. Sel juhul piisab RTF-vormingus faile teenindava rakenduse leidmisest, allalaadimisest ja installimisest - sellised programmid on saadaval allpool.

Otsingusüsteem

Sisestage faililaiend

Abi

Vihje

Pange tähele, et mõningaid kodeeritud andmeid failidest, mida meie arvuti ei loe, saab mõnikord vaadata Notepadis. Nii loeme tekstikatkeid või numbreid – Tasub kontrollida, kas see meetod töötab ka RTF-failide puhul.

Mida teha, kui loendis olev rakendus on juba installitud?

Sageli peaks installitud rakendus automaatselt linkima RTF-failiga. Kui seda ei juhtu, saab RTF-faili edukalt käsitsi äsja installitud rakendusega linkida. Paremklõpsake lihtsalt RTF-failil ja seejärel valige saadaolevate failide hulgast valik "Vali vaikeprogramm". Seejärel peate valima valiku "Vaade" ja leidma oma lemmikrakenduse. Sisestatud muudatused tuleb kinnitada valiku "OK" abil.

Programmid, mis avavad RTF-faili

Windows
MacOS
Linux
Android

Miks ma ei saa RTF-faili avada?

RTF-failidega seotud probleemidel võivad olla ka muud põhjused. Mõnikord ei lahenda probleemi isegi RTF-faile toetava tarkvara installimine arvutisse. RTF-faili avamise ja sellega töötamise võimatuse põhjus võib olla ka:

Sobimatud RTF-failide seosed registrikirjetes
- avatava RTF-faili rikkumine
- RTF-faili nakatumine (viirused)
- liiga vähe arvutiressurssi
- aegunud draiverid
- RTF-laienduse eemaldamine Windowsi registrist
- RTF-laiendust toetava programmi mittetäielik installimine

Nende probleemide lahendamine peaks võimaldama RTF-failide vaba avamist ja nendega töötamist. Kui teie arvutil on endiselt failidega probleeme, peate kasutama eksperdi abi, kes selgitab välja täpse põhjuse.

Minu arvuti ei näita faililaiendeid, mida peaksin tegema?

Tavalistes Windowsi süsteemiseadetes ei näe arvutikasutaja RTF-faili laiendit. Seda saab seadetes edukalt muuta. Lihtsalt minge "Juhtpaneelile" ja valige "Vaade ja isikupärastamine". Seejärel peate minema jaotisse "Kaustasuvandid" ja avama "Vaade". Vahekaardil "Vaade" on valik "Peida tuntud failitüüpide laiendused" - peate selle valima ja kinnitama toimingu, klõpsates nuppu "OK". Sel hetkel peaksid kõigi failide, sealhulgas RTF-i laiendid kuvama failinime järgi sorteerituna.

Lühend RTF tähistab "rikasteksti vormingut", see tähendab "rikasteksti vormingut". Või lihtsamalt öeldes kujundatud: erinevate stiilide, fontide, suuruste ja värvidega tähtedega. Paljudel juhtudel võib see dokumentidele mõeldud vorming olla probleemidest leevendust, nii et kõik arvutikasutajad peavad sellest aru saama. Nagu alati, pöörame selle nähtusega tutvumise käigus kindlasti tähelepanu praktilisuse küsimustele.

Natuke ajalugu

See juhtus vanasti, 1982. aastal. Neil kaugetel aegadel, mil Microsoft ja Adobe olid sõbrad. Nad pidid välja mõtlema midagi uue programmi jaoks – tekstitöötlusprogrammi Word for MS DOS, mis pidi välja tulema 1893. aastal.

Kaks korda mõtlemata võtsime lihtteksti ja lisasime sellele spetsiaalsed märgistussildid (neid nimetati kontrollmärkideks). Nagu siit algab lõik, siin tuleks tekst kuvada kaldkirjas, seal paksus kirjas jne.

Sellest ajast on palju muutunud, kuid olemus jääb samaks: RTF on tekstifailid, nagu HTML-dokumendid. Saate need avada tekstiredaktorites (nt Notepad Windowsis ja Gedit Ubuntus), et soovi korral vaadata kõiki neid silte.

Microsofti ja Adobe teed läksid peagi lahku, kuid formaat jäi omandiõiguseks. (Adobe otsustas kasutada seda kontseptsiooni teise märgistuskeele PostScripti jaoks, mis hiljem viis PDF-i tulekuni.) Microsoft avaldas 2008. aasta märtsis uusima RTF-spetsifikatsiooni. Kaasaegne elektrooniline ja digitaalne maailm on sellele orienteeritud.

Sisuliselt lühidalt

RTF-dokumendi struktuur on üsna lihtne. Tekstiploki alguses näidatakse juhtmärki, millele eelneb “\” (vasakule kallutatud riba tähenduses). Täpsemalt, \b enne paksu kirjaplokki, \i enne kaldkirja, \par enne lõiku.

Plokkide endi tähistamiseks, kuna sulguvaid silte pole, kasutatakse lokkis sulgusid (). Seetõttu näeb lähteteksti paksus kirjas välja selline: (\b paksus kirjas) ja kaldkirjas näeb välja selline: (\i tere maailm Ну а в самом начале указывается сам формат \rtf1:!}

(\rtf1 \par (\i Tere maailm Только что было приветствие курсивом. А теперь {/b немножко полужирного текста}. \par } !}

See on muidugi väga lihtne näide. Tegelikult on päris palju kõikvõimalikke parameetreid kaldjoonte kaudu reas: kodeering, keel ja muud andmed. Midagi sellist:

(\rtf1\ansi\deff3\adeflang1025 (\fonttbl(\f0\froman\fprq2\fcharset0 Times New Roman;) \par (\i Tere maailm, veel kord Как видите, абракадабры {/b предостаточно} даже в маленьком фрагменте. \par } !}

Võimsatele tekstitöötlusprogrammidele, nagu Word või LibreOffice Writer, meeldib eriti palju juhtmärke sisestada, märgistades kõik liiga hoolikalt.

Lisaks asendatakse venekeelsed tähed baitide tähistustega - kodeerimismärkidega (näidetes selguse huvides asendust pole näidatud). See muudab lähtekoodi täiesti loetamatuks ja ajab selle proportsioonist välja.

Tarkvara

Lisaks ülalmainitud Microsoft Wordile ja LibreOffice Writerile on palju vähem võimsaid programme, RTF-redaktoreid. Kuid mitte kõik neist ei sobi tööle.

FocusWriter on praegustest tasuta RTF-i redigeerijatest ehk parim. Saate lisada LibreOffice Writeris kasutatavaid õigekirjakontrolli sõnastikke. See töötab väga kiiresti nii Windowsis kui Ubuntus, võtab vähe ruumi ega tarbi süsteemiressursse. Liidese kujundus muutub vastavalt erinevatele maitsetele.

See jätab kangekaelselt meelde ja proovib käivitamisel laadida viimati avatud dokumenti - võib-olla on see ikkagi puudus. Mõeldud peamiselt ühe raamatu, mitte mitme korraga töötavatele kirjanikele. Sama kontseptsiooni kohaselt peidab tööriistariba enne hiirekursori hõljutamist, et miski ei segaks teie tähelepanu töölt.

Kuid see liides on väga mugav netbookides ja muudes väikese ekraaniga seadmetes. Artiklite, kirjade ja igasuguste märkmete kirjutamine on nauding.

Miks on vaja RTF-i?

Esiteks ei ole tekstifailid viirustega nakatunud ja neisse pole võimalik pahatahtlikke makrosid sisestada. *rtf-failid on täiesti turvalised, täpselt nagu *txt. Aga *doc on üsna võimeline ebameeldivaid üllatusi esitama.

Teiseks mõistavad Rich Text Formatit kõik kaasaegsed tekstitöötlusprogrammid ja loomulikult kõigi populaarsete operatsioonisüsteemide RTF-redaktorid.

Teie alandlik teenija nägi oma silmaga, kuidas Word 2010 Windows 7-s keeldus kindlalt avamast LibreOffice'is tehtud *odt. Ta ütles, et failis on mingisugune viga. Pidin USB-mälupulga Ubuntu abil arvutisse tagasi viima (õnneks oli see lähedalasuvas kontoris) ja teisendada dokumendi RTF-i. Pärast mida Word avas faili ilma vastuväideteta.

Kuidas sellega elada

Väikesed, kümne- kuni viieteistkümneleheküljelised venekeelsed dokumendid saab turvaliselt RTF-i salvestada. Kaasaegsete standardite järgi võtavad nad vähe ruumi. Kuid tervete romaanidega *rtf-failid paisuvad uskumatult ja nõuavad avamisel üsna palju protsessori koormust. Kuna vene tähestiku tähed asendatakse baitide kodeeringu tähistustega, nagu varem öeldud.

Oletame, et Ubuntus töötades peate kiiresti salvestama väikese teksti, mille peate hiljem Windowsis avama. Kui loote Geditis *txt, siis suure tõenäosusega näitab Notepad tähtede asemel midagi võõrast, ilma kodeeringut automaatselt ära tundmata.

Aga kui kasutada kiiret FocusWriterit ja toota *rtf, siis probleeme ei teki, kõik kuvatakse normaalselt. Kodeering näidatakse lähtekoodis pärast \rtf1 .

Teeme kokkuvõtte

Seega on Rich Text Format (teise nimega RTF) universaalne ja sobib seetõttu vormindatud tekstide loomiseks ja avamiseks erinevates operatsioonisüsteemides. Siiski on kõige parem kasutada seda ainult väikeste venekeelsete dokumentide jaoks. Inglise keele kõnelejatel (ja teistel ladina tähtedega) pole puhitusfailidega probleeme.

Elus võib kõike juhtuda ja kui ikka veel populaarses Windowsis on järsku vaja dokumente avada, siis sel juhul saab olulised failid, mida Ubuntus *odt-s hoiate, *rtf-is dubleerida. Kuna Microsoft OS-iga arvutites on sageli Word, mitte LibreOffice Writer.

Varasemad väljaanded:

Noh, jätkame oma uurimistööd, et saada teksti erinevatest andmevormingutest. Mitte kaua aega tagasi õppisime, kuidas ekstraktida teksti zipped-xml-põhistest failidest (odt ja docx) ning selle nädala alguses ka pdf-failist. Täna jätkame lubatud rtf-ga.

Rikastekstivorming (teise nimega rtf), võite arvata, on üsna unustatud, kuigi mitte väga keeruline vorming tekstiandmete esitamiseks. Noh, teksti hankimine on suhteliselt lihtne, kuid selle ajaloo jooksul: alates esimesest versioonist kuni praeguse versioonini 1.9.1 - see on omandanud umbes 300 lehekülge ametlikku dokumentatsiooni ja tohutul hulgal lisandmooduleid, mis segavad meid lihtteksti saamisel proovime neist mööda hiilida...

Mis seal sees on?

Nagu tavaliselt, vaatame rtf-faili ja vaatame, mis seal sees on:

Mida me näeme? Näen meie lemmikluuletust "Purje". Näeme algselt teksti 8-bitist andmevormingut. See on juba julgustav – kui lähteandmed sisaldavad teksti, on toimuvast palju lihtsam aru saada. Nüüd mõtleme välja, kuidas neid andmeid lugeda. Selleks räägin teile selle teema kohta väikese teooria.

Eeldame, et rtf koosneb kontrollsõnad, mis võib olla rühmitatud pesastatud komplektidesse. Kontrollsõna algab kaldkriipsuga (\), rühm mähitakse lokkis sulgudesse (( ja )).

Kontrollsõna koosneb ingliskeelse tähestiku tähtedest (a-st z-ni) ja seda saab täiendada numbrilise parameetriga (võimalik, et see on negatiivne). Teise võimalusena võib sõna sisaldada üht mittetähestikulist ascii-märki. Kõik, mis nende reeglite alla ei kuulu, ei kuulu kontrollsõna alla. Seega on jada kujul \rtf1\ansi\ansicpg1251 kergesti jagatud kolmeks sõnaks rtf parameetriga 1 (vormingu põhiversioon), ansi (praegune kodeering) ja ansicpg parameetriga 1251 (praegune koodilehe number 1251 – st Windows -1251).

Rühmitatud komplektid määravad juhtsõnade ulatuse. Seega töötavad lokkis sulgudes kirjeldatud juhtsõnad ainult nende ja kõigi alamhulkade sees. Selleks et õigesti välja selgitada, millised sõnad praegu on, peate säilitama kontrollsõnade virna. Kui avate lokkis sulgu, looge virnale uus massiivi element, millele lisate sulu sulgemisel kohe andmed virna eelmisest kihist, kustutage ülemine kiht.

Samuti väärib märkimist, et mõne juhtsõna saab sulgeda nullparameetri lisamisega, mitte uue alamrühma loomisega. Näiteks järgmised valikud on samaväärsed: See on (\b paksus kirjas) tekst , See on \b paksus kirjas \b0 tekst = See on julge tekst .

Kust saada teksti?

Tutvusime meie jaoks uue formaadi seadmega, nüüd küsime endalt, kust teksti saada. Siin pole kõik nii keeruline, kui võib tunduda – teksti tuleb võtta sealt, kus praegune järgnevus pole kontrollsõnana tuvastatud. Paari erandiga muidugi.

Esiteks väärib märkimist, et rtf-faili algne kodeering on ANSI, nii et ilma igasuguste viperusteta salvestatakse ainult ingliskeelne tekst. Meid huvitab vähemalt venekeelne tekst ja veelgi parem Unicode, eks? Mis on tõsi, see on tõsi – rtf, kuigi vana formaat, sobib mõlema salvestamiseks.

Nii et rtf"-s on võimalik kasutada ASCII tabeli teist poolt ehk alates 128-st ja kõrgemast. Võttes arvesse praegust kodeeringut (juhtsõna \ansicpg kohal) muidugi. Selleks on jada vorm \"hh võeti kasutusele RTF-is, kus hh on märgi binaarne kuueteistkümnendkood ASCII tabelist.

Noh, teine, huvitavam variant on unicode-kodeeritud andmed. Nende jaoks sisaldab vorming kokkuvõtlikult lühikest märksõna \uABCD digitaalse parameetriga ABCD. ABCD on antud juhul unicode märgi kood kümnendarvusüsteemis. Kõik on jälle lihtne, nagu olete märganud.

Lihtne, aga mitte väga hea. RTF-is on veel üks märksõna \ucN, mis on Unicode'iga tihedalt seotud. Fakt on see, et RTF-vorming säilitab väga innukalt ühilduvust vanemate seadmetega, milles peate võib-olla selle faili avama. Teise võimalusena ei saa selline seade (näiteks Windows 3.11:) Unicode'i lugeda, mida see peaks tegema? Selleks saab pärast iga märksõnaga \u krüpteeritud unicode-tähemärki määrata nullist mitme märgini, mida tuleb kuvada juhul, kui rtf-vaatur ei saa jooksvaid andmeid kuvada või sõeluda (dokumentatsiooni kohaselt, kui vaataja ei saa andmeid õigesti kuvada, peab ta need vahele jätma).

Sellega seoses paneb enamik kaasaegseid toimetajaid unicode'i juhtsõna järele küsimärgi märgiks, et neid soovitakse näidata praeguse tähemärgi asemel. Kuid võimalikud on ka valikud, näiteks: Lab\u915GValue . Küsigem endalt, mitu tähemärki tuleb kuvada, kui Unicode'i näitamiseks pole võimalust. Jällegi, kõik pole väga keeruline - ülaltoodud märksõna \ucN parameetrina N annab selle väärtuse. Need. Midagi nagu \uc1 ilmub kindlasti enne Unicode'i andmeid, mis käsib meil Unicode'i järel ühe märgi vahele jätta.

Loeme!

Näib, et kogutud andmetest piisab meie esimeste rtf-failide lugemiseks. Mine:
  1. funktsioon rtf_isPlainText($s) (
  2. $failAt = massiiv ("*" , "fonttbl" , "colortbl" , "datastore" , "themedata" ) ;
  3. jaoks ($i = 0 ; $i< count ($failAt ) ; $i ++ )
  4. if (! tühi ($s [ $failAt [ $i ] ]) ) return false ;
  5. tagasta tõene ;
  6. funktsioon rtf2text($ failinimi) (
  7. $tekst = faili_hangi_sisu($failinimi);
  8. if (! strlen ($text ) )
  9. tagasta "" ;
  10. $dokument = "" ;
  11. $pinn = massiiv () ;
  12. $j = -1;
  13. jaoks ($i = 0 ; $i< strlen ($text ) ; $i ++ ) {
  14. $c = $tekst [ $i ] ;
  15. lüliti ($c) (
  16. juhtum " \\ " :
  17. $nc = $tekst [ $i + 1 ] ;
  18. if ($nc == "\\" && rtf_isPlainText($pinn [ $j ] ) ) $document .= "\\" ;
  19. elseif ($nc == "~" && rtf_isPlainText($pinn [ $j ] ) ) $document .= " " ;
  20. elseif ($nc == "_" && rtf_isPlainText($pinn [ $j ] ) ) $document .= "-" ;
  21. elseif ($nc == "*" ) $pinn [ $j ] [ "*" ] = true ;
  22. elseif ($nc == """ ) (
  23. $hex = alamstr ($tekst, $i + 2, 2);
  24. $document .= html_entity_decode ("" . hexdec ($hex ) . ";" ) ;
  25. $i += 2;
  26. ) elseif ($nc >= "a" && $nc<= "z" || $nc >= "A" && $nc<= "Z" ) {
  27. $word = "" ;
  28. $param = null ;
  29. jaoks ($k = $i + 1, $m = 0; $k< strlen ($text ) ; $k ++, $m ++ ) {
  30. $nc = $tekst [ $k ] ;
  31. if ($nc >= "a" && $nc<= "z" || $nc >= "A" && $nc<= "Z" ) {
  32. kui (tühi ($param) )
  33. $sõna .= $nc ;
  34. muidu
  35. murda ;
  36. ) elseif ($nc >= "0" && $nc<= "9" )
  37. $param .= $nc ;
  38. elseif ($nc == "-" ) (
  39. kui (tühi ($param) )
  40. $param .= $nc ;
  41. muidu
  42. murda ;
  43. ) muidu
  44. murda ;
  45. $i += $m - 1;
  46. $toText = "" ;
  47. lüliti(strtolower($word)) (
  48. täht "u":
  49. $toText .= html_entity_decode ("" . dechex ($param ) . ";" ) ;
  50. $ucDelta = @ $stack [ $j ] [ "uc" ] ;
  51. kui ($ucDelta > 0)
  52. $i += $ucDelta ;
  53. murda ;
  54. tähis "par" : juhtum "leht" : suurjuhtum "veerg" : suurjuhtum "rida" : juhtum "lbr":
  55. $toText .= " \n";
  56. murda ;
  57. suurtäht "emspace" : suurtäht "enspace" : suurtäht "qmspace":
  58. $toText .= " " ;
  59. murda ;
  60. suurtäht "tab" : $toText .= " \t"; murda ;
  61. case "chdate" : $toText .= kuupäev ("m.d.Y" ) ; murda ;
  62. suurtäht "chdpl" : $toText .= kuupäev ("l, j F Y" ) ; murda ;
  63. suurtäht "chdpa" : $toText .= kuupäev ( "D, j M Y" ) ; murda ;
  64. case "chtime" : $toText .= kuupäev ( "H:i:s" ) ; murda ;
  65. suurtäht "emdash" : $toText .= html_entity_decode ("—" ) ; murda ;
  66. suurtäht "endash" : $toText .= html_entity_decode ("-" ) ; murda ;
  67. suurtäht "täpp" : $toText .= html_entity_decode ("" ) ; murda ;
  68. suurtäht "lquote" : $toText .= html_entity_decode ("‘" ) ; murda ;
  69. suurtäht "rquote" : $toText .= html_entity_decode ("'" ) ; murda ;
  70. suurtäht "ldblquote" : $toText .= html_entity_decode (""" ) ; murda ;
  71. suurtäht "rdblquote" : $toText .= html_entity_decode (""" ) ; murda ;
  72. vaikimisi:
  73. $stack [ $j ] [ strtolower ($word ) ] = tühi ($param ) ? tõsi : $param ;
  74. murda ;
  75. if (rtf_isPlainText($stack [ $j ] ) )
  76. $dokument .= $teksti ;
  77. $i++;
  78. murda ;
  79. juhtum "(" :
  80. massiivi_tõuke ($pinn, $pinn [ $j++ ]) ;
  81. murda ;
  82. juhtum ")" :
  83. massiiv_pop ($pinn) ;
  84. $j --;
  85. murda ;
  86. tähis "\0" : juhtum "\r" : juhtum "\f" : juhtum "\n" : katkestus ;
  87. vaikimisi:
  88. if (rtf_isPlainText($stack [ $j ] ) )
  89. $dokument .= $c ;
  90. murda ;
  91. tagasta $dokument ;
Koodi koos kommentaaridega saate aadressilt