Archive

Posts Tagged ‘script’

Az odt elkeffentett változáskövetésének javítása

December 3rd, 2011 No comments

Már több mint két éve felmerült egy problémája Timurnak, aminek megoldása annyira jól sikerült akkor, hogy azt ajánlotta, publikáljam. Mivel most takarítom a projekt könyvtáramat eljött az ideje ennek kiír(t)ására. Gondoltam kiírom ide az eredményeket, talán más is okulhat és hasznosíthatja a keletkezett eredményeket. Az alábbi szövegek már régen készültek, ezért csak saját felelősségre szabad őket használni. Ha ebben kell segítség, szívesen belemerülök újra. Nem vagyok egy Python guru, csak volt időm ezzel foglalkozni és sikerült a végeredményt tekintve. Ennek megfelelően a kód nem szép kód, nem mintakód. Ne így használd. A futtatásához 3-as verziójú Pythonra van szükség, sajnálom. Valamilyen xml manipulálás nem sikerült a 2.6-os, 2.7-es verzión, rég volt, na.

Az Openoffice (és feltételezem, hogy mindegyik rokona, úgymint a NeoOffice, Libra Office, etc) bekapcsolt változáskövetés esetén, a szöveg automatikus formázásával jelöli a változásokat. Ennek használatával tudja majd legközelebbi megnyitáskor kiemelni a módosításokat. Ez eddig nem is lenne probléma, de miután elfogadjuk a változtatásokat, bár a változtatások stílusai igazodnak az alkalmazott fő stílushoz, ezek az egyedi formázások továbbra is benne maradnak. Később, ha változtatnád a fő stílusaidat, ezek a formázások azokat a változtatásokat már nem követnék.

Ezen automatikus stílusok javítására írtam egy scriptet. A futtatásához Python3-ra van szükség.

Használati útmutató:

  1. A doksidról legyen másolat.
  2. A doksiban érdemes elfogadni a módosításokat.
  3. A doksit ki kell menteni nem optimalizált módon (OOo / Preferences / Load/Save / General / Ne legyen bepipálva a Size optimization for ODF format).
  4. A cuccot átnevezni zip-re és kicsomagolni.
  5. A scriptet bele kell másolni a kicsomagolt könyvtárba.
  6. Futtatni terminal ablakban: ./remove_styles.py
  7. Futtatni terminal ablakban: mv newcont.xml content.xml
  8. A könyvtár tartalmát (nem a könyvtárat) becsomagolni és átnevezni odt-re.

Voilá.

A script szándék szerint eltakarítja az összes automatikus formattálást, ami a T(karakter stílus) néven szerepel magában a content.xml fájlban. Elvileg lehetne írtani a P(paragrafus) automatikus stílust is, nem tudom, az hogyan jöhet létre. A script egyébként csak ezt a fájlt olvassa és ír egy új newcont.xml-t. Ezzel felül kell írni az eredeti content.xml tartalmát.