Makro zvětšení písem

Tomáš Bílek nám zaslal makro na proporcionální změnu velikosti písem ve Writeru.  

Tomáš Bílek nám zaslal makro na proporcionální změnu velikosti písem ve Writeru.

'**************************************************************
' Makro na proporcionální změnu velikosti písem ve Writeru.
' Změny by se měly projevit ve všech textových stylech, hlavním textu,
' textových rámcích a tabulkách.
' Nepracuje v grafických objektech ve kterých je i text.

Sub ZmenVelikostPisemDokumentu ' pro  writer,  JTB v1.0 17.9.05
  Dim oFamilies, oStyle, oStyles As Object
  Dim Enum1, Enum2, oObj, TextElement, TextPortion As Object
  dim n%,j%, k#, tmp$, direct as long
  dim cellnames, cell
  tmp=inputbox("Zadejte koeficient zvětšení písma v dokumentu."+chr(13)+_
            "Změny se provedou ve stylech i v ručně provedených změnách velikosti."+chr(13)+_
            "Pozor, provedené změny možná nepůjde vrátit funkcí ZPĚT!","Změna výšky písem v celém dokumentu:","1.00")
  if (tmp="") then
    exit sub
   end if
  if 6 <> msgbox("Opravdu chcete zvětšit písma všech stylů "+cstr(val(tmp))+"x ?",4,"Potvrzení") then
    exit sub
   end if
  k = val(tmp)
  oFamilies = ThisComponent.StyleFamilies()
  oStyles = oFamilies.getByName("ParagraphStyles") ' odstavcove styly
  for n = 0 to oStyles.count-1
    oStyle=oStyles.getByIndex(n)
    if oStyle.getPropertyState("CharHeight")=0 then  'zmenit pouze pozmenene velikosti
       if oStyle.CharPropHeight=100 then ' mimo upravenych procentualne - ty zavisi na rodicich
          oStyle.CharHeight = oStyle.CharHeight*k
         end if
      end if
   next n
  oStyle=oStyles.getByName("Standard")
  if oStyle.getPropertyState("CharHeight")=1 then  'zmenit korenovy styl
      oStyle.CharHeight = oStyle.CharHeight*k
   end if
  oStyles = oFamilies.getByName("CharacterStyles") ' znakove styly
  for n = 0 to oStyles.count-1
    oStyle=oStyles.getByIndex(n)
       oStyle.CharHeight = oStyle.CharHeight*k
   next n
  ' prepocet rucnich zmen
  direct=0 'pocet rucnich zmen
  Doc = thiscomponent 'StarDesktop.CurrentComponent
  Enum1 = ThisComponent.Text.createEnumeration
  ' loop over all paragraphs
  While Enum1.hasMoreElements
     TextElement = Enum1.nextElement
     If TextElement.supportsService("com.sun.star.text.Paragraph") Then
        Enum2 = TextElement.createEnumeration
        ' loop over all paragraph portions
        While Enum2.hasMoreElements
           TextPortion = Enum2.nextElement
           If TextPortion.getPropertyState("CharHeight") = _
              com.sun.star.beans.PropertyState.DIRECT_VALUE Then
              TextPortion.CharHeight = TextPortion.CharHeight * k
              direct=direct+1
            End If
        Wend
     End If
  Wend
  for n = 0 to ThisComponent.TextFrames.count-1 ' loop over all textframes
     oObj=ThisComponent.TextFrames.getByIndex(n)
     Enum1 = oObj.Text.createEnumeration
     While Enum1.hasMoreElements ' loop over all paragraphs
       TextElement = Enum1.nextElement
       If TextElement.supportsService("com.sun.star.text.Paragraph") Then
          Enum2 = TextElement.createEnumeration
          While Enum2.hasMoreElements       ' loop over all paragraph portions
             TextPortion = Enum2.nextElement
             If TextPortion.getPropertyState("CharHeight") = _
                com.sun.star.beans.PropertyState.DIRECT_VALUE Then
                TextPortion.CharHeight = TextPortion.CharHeight * k
                direct=direct+1
              End If
          Wend
       End If
     Wend
   next n
  for n = 0 to ThisComponent.TextTables.count-1 ' loop over all tables
     oObj=ThisComponent.TextTables.getByIndex(n)
     CellNames=oObj.getCellNames()
     For j = 0 to UBound(CellNames)  ' loop over all cells
       Cell = oObj.getCellByName(CellNames(J))
       Enum1 = Cell.Text.createEnumeration
       While Enum1.hasMoreElements ' loop over all paragraphs
         TextElement = Enum1.nextElement
         If TextElement.supportsService("com.sun.star.text.Paragraph") Then
            Enum2 = TextElement.createEnumeration
            While Enum2.hasMoreElements       ' loop over all paragraph portions
               TextPortion = Enum2.nextElement
               If TextPortion.getPropertyState("CharHeight") = _
                  com.sun.star.beans.PropertyState.DIRECT_VALUE Then
                  TextPortion.CharHeight = TextPortion.CharHeight * k
                  direct=direct+1
                End If
            Wend
         End If
       Wend
      Next j
   next n
 if direct>0 then
   msgbox "Bylo nalezeno a změněno "+cstr(direct)+" ručně provedených změn velikosti písem."
  end if
End Sub
'************************************************************************





Přidat názor

 

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích najdete v nápovědě. Diskuzi můžete sledovat pomocí RSS kanálu.

 
redakce OpenOffice.cz

redakce OpenOffice.cz

redaktoři OpenOffice.cz

 

Public Relations

Jak si zabezpečit servery?

DNSSECPokud chce moderní člověk plně využívat to, co mu virtuální svět internetu nabízí, musí se stále více orientovat na bezpečnost. Musí činit kroky, jež ho ochrání před riziky, jež se právě na této síti skrývají a dnes a denně uživatele ohrožují.

Pokračování ...


 
 
woo jaw demo hz