Deși încerc să evit să trimit orice altceva decât PDF-uri și mailuri, mi se întâmplă destul de des să trebuiască să trimit altfel de documente, în format editabil – de cele mai multe ori doc-uri și xls-ul. Și pentru că minunatul pseudo sistem de operare Windows încă n-a învățat corect diacriticele românești, trebuie să le elimin din documentul master și să le înlocuiesc cu a, i, s, t.
Mai jos este un mic script scris pentru OpenOffice Basic. Pentru a-l introduce, mergeți la Unelte > Macro > Organizare Macro > OpenOffice Basic, creați nu nou script și botezați-l ceva de genul “Eliminare Diacritice”. După aia îl puteți rula prin Unelte > Macro > Rulează Macro.
Pentru moment funționează pentru OO Writer și OO Calc, n-am avut nevoie decât o dată pentru OO Impress, dar extinderea lui n-ar trebui să fie foarte dificilă. Dacă folosiți alte feluri de diacritice, le puteți introduce în cele două array-uri din liniile 7 și 8.
Sub Main
Dim searchArray, replaceArray
Dim i as integer
Dim oReplace as object
Dim oDoc as object
searchArray = Array ("ă", "Ă", "â", "Â", "î", "Î", "ș", "Ș", "ț", "Ț")
replaceArray = Array("a", "A", "a", "A", "i", "I", "s", "S", "t", "T")
if ThisComponent.identifier = "com.sun.star.sheet.SpreadsheetDocument" then
oSheets = ThisComponent.getSheets()
for j = 0 to oSheets.Count - 1
oDoc = oSheets.getByIndex(j)
oReplace = oDoc.createSearchDescriptor()
for i = 0 to ubound(searchArray)
with oReplace
.SearchString = searchArray(i)
.ReplaceString = replaceArray(i)
.SearchCaseSensitive = true
end with
oDoc.replaceAll(oReplace)
next i
next j
elseif ThisComponent.identifier = "com.sun.star.text.TextDocument" then
oDoc = ThisComponent
oReplace = oDoc.createSearchDescriptor()
for i = 0 to ubound(searchArray)
with oReplace
.SearchString = searchArray(i)
.ReplaceString = replaceArray(i)
.SearchCaseSensitive = true
end with
oDoc.replaceAll(oReplace)
next i
else
print "Nu stiu ce fel de document e asta, asa ca nu ma bag..."
end if
End Sub
Enjoy
Related posts:






