Programiranje pripreme velikih RTF dokumenata za uvoz u Adobe InDesign aplikaciju Nikola Majstorović, Tomislav Kosić, Milan Tomić Sažetak Rad opisuje programiranje prevođenja velikih RTF (Rich Text Format) dokumenata u prikladan oblik sustavu za grafičku pripremu Adobe InDesign. Kao primjer je dan novi Rječnik stranih riječi, autora Bratoljuba Klaića sastavljen od blizu 6 milijuna znakova u 1.5 milijuna riječi s lokalnim formatiranjem preuzet kao izlaz iz produkcijskog sustava SoftLex. Priprema prevođenja je napravljena primjenom vlastitog alata „OzirisToolbox“ razvijenog za detaljno razlaganje velikih MS Word dokumenata u MS Access bazu podataka. Prednost tog pristupa je u velikim mogućnostima detekcije i ispravljanja zaostalih grešaka. Isprobana su četiri načina generiranja ulaza: Ključne riječi Programming the preparation of large RTF documents for import into Adobe InDesign application Abstract The paper describes programming of translating large RTF (Rich Text Format) documents in a convenient form of prepress systems for Adobe InDesign. Given as an example was the new Dictionary of Foreign Words by Bratoljub Klaić, composed of close to 6 million characters in 1.5 million words with local formatting, taken as the exit from the production system SoftLex. Preparing of the translation was done using our own tools "OzirisToolbox" developed for a detailed decomposition of large MS Word documents into MS Access database. The advantage of this approach is in the great possibilities of detection and correction of residual errors. Four ways of generating inputs were used: Key words UVOD Učestalo radimo s tekstovima koji su dijelom ili u potpunosti atribuirani, grafički pripremljeni za tisak. Zbog njegove neovisnosti o platformi i aplikaciji u kojoj je nastao takav dokument često imamo na raspolaganju u formatu RTF (Rich Text Format). Imamo li želju ili potrebu za promjenom oblikovanja takvog teksta, ukoliko nije značajnijeg obima, takav tekst obično bez odlaganja očistimo od oblikovanja pa potom izvršimo ponovno oblikovanje stilom i načinom kako nam odgovara. Iako dokumenti u tiskanom obliku izgledaju gotovo identično, sam opis te atribucije može biti vrlo različit ili čak nekonzistentan. U radu s dokumentom ili skupom dokumenata većeg obima pokušavamo sustavno izvesti te promjene s manje napora i što manje pogreški. Kod obimnih tekstova, u nekim primjerima,opetovane transformacije upotrebom makro procedura i regularnih izraza pokazale su se zamornim i često vrlo kompliciranim. Primjena vlastitih programskih rješenja za kontrolirano prevođenje u nekim od njih pokazala kao primjerenija. Detaljna analiza atribucije velikih RTF dokumenata Problemi nastaju pri radu s većim dokumentima u kojima nije sustavno i konzistentno korišten predložak s definiranim stilovima za paragrafe i dijelove paragrafa. Lokalno formatiranje dijelova teksta je teško nadzirati pri manipulaciji s dokumentima kao što je uvoz u DTP (DeskTop Publishing) i tada mogu nastati poteškoće. Organizacija ulaznih dokumenata Pothvat programiranja uvoza velikih i intenzivno lokalno formatiranih RTF dokumenata u InDesign aplikaciju za DTP je nastao rješavajući uvoz materijala novog izdanja Rječnika stranih riječi Bratoljuba Klaića. Ulazni dokumenti su nastali kao eksport proizvod iz sustava za produkciju SoftLex. Iako je izvorni materijal podijeljen na manje cjeline (Slika 1), po slovima ipak pojedini dokumenti zauzimaju i po nekoliko stotina stranica, a u izvedbi RTF eksportera svaki je paragraf intenzivno lokalno formatiran bez upotrebe CharStyle stilova.
Za rješavanje pretvorbe lokalnog formatiranja u stilove i drugih problema kod uvoza MS Word dokumenata postoje i komercijalni alati kao InDesignConverter [6]. Cilj je bio programirati kontrolirani uvoz takovog materijala koji omogućuje i detekciju i ispravljanje drugih eventualnih greški i nedosljednosti u oblikovanju. Razlaganje ulaznih dokumenata u „Oziris“ bazu podataka Za čvrstu polaznu osnovu za regeneraciju čistog oblikovanog dokumenta priprema je obavljena upotrebom vlastitog alata „OzirsToolbox“ [9] za razlaganje MS Word dokumenata u MS Access bazu podataka s podatcima o po volji odabranim atributima svih objekata u hijerarhiji od cijelog dokumenta, pojedinih sekcija, paragrafa, riječi pa do pojedinih znakova.(Slika 2.)
Ovaj je postupak iterativan jer nakon detaljnog uvida tražene atribute do nivoa znaka izvršene sui promjene u eksportnoj specifikaciji i postavkama u sustavu „SoftLex“. Od oko šest milijuna znakova oni s vrlo rijetkom frekvencijom atributa upućuju na moguće greške ili nekonzistentnosti. Od preko milijun i pol riječi (kako se tretiraju u MS Word) njih oko 35 tisuća nisu homogeni u atribuciji. To je zahtijevalo njihovu daljnju podjelu na cjeline token koji su potpuno homogeni ili primjenu lokalnog formatiranja za njih oko 2%, a za ostale može biti uporabljena lista Character stilova. Programiranje regeneracije dokumenta u prikladnu formuKodovi ilustriraju upotrebu Microsoft Word aplikacije da se programira VBA (Visual Basic for Application) procedure koje otvaraju dva dokumenta: ulazni i izlazni, a dohvat atributa ulaznog i postavljanje atributa ciljnog dokumenta se obavlja direktnom upotrebom svojstava i metoda suglasno sa DOM (Document Object Model) specifikacijom. Korisničke aplikacije pisane su u VB.NET upotrebom Visual Studio 2008 i 2010 IDE razvojne okoline sa VSTO (Visual Studio Tools for Office) [2]. Primjena svojstva „Style“ za znakove (CharStyle) po paragrafima iterativno kroz cijeli dokumentOvaj pristup je primijenjen prije raščlanjivanja rječnika u bazu podataka. Okvir u proceduri kako pokazuje Slika 3 je mogućnost prolaska kroz izvorni dokument „aDoc“ paragraf po paragraf, a unutar paragrafa riječ po riječ i na osnovu atributa u Range.Font određivanje kako atribuirati tekst koji se za pojedinu riječ dodaje u destinacijski dokument „bDoc“.
Za dokumente u kojima su od interesa samo nekoliko atributa kao npr. Font.Name, .Size, .Bold, itd. može se jednostavno i efikasno upotrijebiti. Ovim pristupom se može jednostavno programirati i transformacije dokumenata u kojima logika treba uključivati i kontekst (lagana je inspekcija okoline ispred ili iza ranga koji se transformira). U našem slučaju mnogo riječi nije bilo homogeno po atribuciji, a i broj atributa koji se prate je veći pa se pristupilo detaljnom raščlanjivanju dokumenata. Izgradnja čistog RTF dokumenta s odabranim stilom za paragraf i znak (CharStyle, ParStyle) Nakon raščlanjivanja svih slova dokumenta i tokenizacije došlo se do kolekcije atributa s frekvencijama koje su prepoznate kao kandidati za CharStyle stilove u predlošku dokumenta za ciljni rječnik. Funkciju prema Slici 4 se može pozivati iz MS Access aplikacije [1] ili kao VB.NET aplikacija. Za izvorne stilove se u prvoj „while“ petlji mogu generirati stilovi u destinacijski dokument. Petlja koja prolazi kroz sve tokene na temelju atributa u bazi podataka dodjeljuje CharStyle za dio teksta u ciljni dokument uz mogućnosti dodatnih provjera i postavljanja preciznijih ograničenja. Iz baze podataka se za odabrani dokument upotrebom parametrizranih upita „qdfPars“ i „qdfWD“ stvaraju kolekcije zapisa o paragrafima i tokenima u paragrafu s pripadajućim atributima i svojstvima stila koji se na njih treba primijeniti.
Direktno programiranje InDesig aplikacije za sekvencijalno uvođenje atribuiranog teksta Za odabrani dokument se u Access bazi podataka SQL upitima izvršilo kondicioniranje podataka i dodijelili ciljni nadimci za CharSyle stilove u ciljnom dokumentu. Procedurom ispod (Slika 5.)je u Access VBA projektu izvršena automacija aplikacije InDesign. Uvidom u DOM (Document Object Model) InDesign aplikacije [] i prepoznavanjem respektivnih atributa u bazi, u mjeri dovoljnoj za izgradnju ciljnog dokumenta moguće je punjenje dokumenta izvršiti sekvencijalno paragraf po paragraf.
Generiranje standardnog formatiranog teksta za uvoz u InDesign (InDesign Markup Language) Za ciljni predložak rječnika početni djelić odabranog slova je interaktivno urađen u InDesign aplikaciji. Napravljen je eksport u ASCII tekst datoteku s atribucijom (Tagged TextFile). Uz konzultaciju široko dostupne literature [] za pisanje koda za sve Adobe produkte, a s obzirom na vrlo jednostavnu i veoma obimnu opetovanu atribuciju, bilo je lako složiti proceduru koja stvara uglađen ulaz za jednostavno i brzo učitavanje u InDesign predložak.
Opet su primijenjeni parametrizrani upiti „qdfPars“ i „qdfWD“ u MS Access bazi podataka za stvaranje kolekcije zapisa o paragrafima i pripadajućim nizom tokene za odabrani izlazni dokument. Za CharStyle koji treba primijeniti su prema naputcima i primjerima definirane inicijalizirajuće i terminalne komandne sekvence suglasne sintaksi programa InDesign.
ZAKLJUČAK U radu je opisano programiranje prevođenja velikih RTF (Rich Text Format) dokumenata u prikladan oblik sustavu za grafičku pripremu Adobe InDesign. Kao primjer je dan novi Rječnik stranih riječi, autora Bratoljuba Klaića sastavljen od blizu šest milijuna znakova u milijun i pol riječi s lokalnim formatiranjem preuzet kao izlaz iz produkcijskog sustava SoftLex. Priprema prevođenja je napravljena primjenom vlastitog alata „OzirisToolbox“ razvijenog za detaljno razlaganje velikih MS Word dokumenata u MS Access bazu podataka. Prednost tog pristupa je u velikim mogućnostima detekcije i ispravljanja zaostalih grešaka. Isprobana su četiri načina generiranja ulaza. LITERATURA [1]Petroutsos, E.: MASTERING Visual Basic 2008, SYBEX, |