Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 23. 7. 2014 19:20:50

ludviktrnka
Člen
Registrace: 9. 7. 2009
Příspěvků: 711

vlastnosti obrazku makrem

Dobrý den. Před chvilkou jsem vyřešil jak vložit QR code, ale vymýšlím dál a rád bych aby byl obrázek s kódem ohraničený čarou. Ani v ručním vkládání obrázku to nejde rovnou, ale vždy až dodatečně pomocí kontextové volby "čára". Zajímalo by mne zda lze ohraničení nějak zvolit jako vlastnost obrázku už při vkládání makrem. (Internet jsem prohledal horem dolem a nic.)

document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")		
dim args1(3) as new com.sun.star.beans.PropertyValue
args1(0).Name = "FileName"
args1(0).Value = adresa
args1(1).Name = "FilterName"
args1(1).Value = "<All formats>"
args1(2).Name = "AsLink"
args1(2).Value = true
args1(3).Name = "Style"
args1(3).Value = "Graphics"
dispatcher.executeDispatch(document, ".uno:InsertGraphic", "", 0, args1())

LibreOffice 5.4.

Offline

#2 23. 7. 2014 19:34:49

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 3,468

Re: vlastnosti obrazku makrem

Nešlo by to napasovat přesně do buňky a té udělat rámeček?
    Teda ten obrázek má svou 'DrawPage' a rozměry, takže by to mělo jít v pohodě přidat jako rectangle a parametry čáry.

Editoval neutr (23. 7. 2014 19:35:15)


Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#3 24. 7. 2014 09:56:20

ludviktrnka
Člen
Registrace: 9. 7. 2009
Příspěvků: 711

Re: vlastnosti obrazku makrem

neutr napsal(a)

Teda ten obrázek má svou 'DrawPage' a rozměry, takže by to mělo jít v pohodě přidat jako rectangle a parametry čáry.

Tomu moc nerozumím, můžete to prosím ještě specifikovat, nebo stačí odkaz na nějaký dokument, kde by to bylo vysvětleno nebo použito. O vkládání obrázků do calcu jsem toho našel dost málo, většinou spíše do writeru, což je asi na calc nepřenositelné. Co je to DrawPage? Obrázek volám přímo z internetu:  adresa = "http://chart.apis.google.com/chart?cht= … 0x200&chl=" & text_kodu & "t&chld=Q|2" (kupodivu to funguje bez funkce convertToURL)


LibreOffice 5.4.

Offline

#4 24. 7. 2014 15:41:24

ludviktrnka
Člen
Registrace: 9. 7. 2009
Příspěvků: 711

Re: vlastnosti obrazku makrem

U Pitonyaka jsem našel takovéto makro. Asi to je ta metoda vkládání kterou máte namysli, akorát jsem nějak nepronikl do těch všech vlastností, které metada DrawPage nabízí. Takže nějak mi není jasné jak tam zadat ten Rectangle jak přimět obrázek aby tuto vlastnost přijal.

Sub InsertAndPositionGraphic
  REM Get the sheet
  Dim vSheet
  vSheet = ThisComponent.Sheets(0)

  REM Add the graphics object
  Dim oDesktop As Object, oDoc As Object
  Dim mNoArgs()
  Dim sGraphicURL As String
  Dim sGraphicService As String, sUrl As String
  Dim oDrawPages As Object, oDrawPage As Object
  Dim oGraphic As Object
  sGraphicURL = "file:///OOo/share/gallery/bullets/blkpearl.gif"
  sGraphicService = "com.sun.star.drawing.GraphicObjectShape"
  oDrawPage = vSheet.getDrawPage()
  oGraphic = ThisComponent.createInstance(sGraphicService)
  oGraphic.GraphicURL = sGraphicURL
  oDrawPage.add(oGraphic)

  REM Size the object
  Dim TheSize As New com.sun.star.awt.Size
  TheSize.width=400
  TheSize.height=400
  oGraphic.setsize(TheSize)

  REM Position the object
  Dim aPosition As New com.sun.star.awt.Point
  aPosition.X = 2540
  aPosition.Y = 2540
  oGraphic.setposition(aPosition)
End Sub

LibreOffice 5.4.

Offline

#5 24. 7. 2014 18:02:25

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 3,468

Re: vlastnosti obrazku makrem

Ano to je ono, ale musí se to rozchodit. Testoval jsem umístění do buňky s rámečkem, ale to má problém ve velikocti - změní to výšku řádku i šířku sloupce - ale když by to nevadilo - bylo by to asi nejrychlejší řešení.
     Ta DrawPage potřebuje obrázek rámečku a pak na to vložit ten QR kód. To se pak spojí jako u normálního grafu. Ale šlo by to i bez drawpage, jenže jsem nepřišel na to, jak to spojit. On totiž ten QR kód nemá jméno - i když by se mělo načíst něco z google. Makra tam mají argument pro jméno ale to také nechodí, Asi stará syntaxe. Když tam něco napíšu, tak to obrázek jako vlastnost nemá. To jsou zase 'property' - je to hledání něčeho pořád dokola.
     S tím jménem je to docela problém. Bez jména na to nedovedu ukázat a pak s tím něco dělat. Ještě se tomu chvilku budu věnovat - ale výsledek asi zítra pokud k něčemu rozumnému dojdu.

Editoval neutr (24. 7. 2014 18:03:56)


Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#6 24. 7. 2014 19:05:44

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 3,468

Re: vlastnosti obrazku makrem

Tak jsem to fofrem upatlal - nic moc, ale snad si poradíte. Stáhněte si a rozzipujte foldr. Obrázek 'Rámeček si uložte přímo na C:\ (pokud máte Linux tak jinam /home/ (ale musíte přepsat adresu v makru).
    Pak spusťte ten soubor. Je to jen 'strefení obrázku na obrázek' ale má to obrovskou výhodu. Jste schopen měnit velikosti i 'anchor' = kotva. Takže oba obrázky můžete navzájem, nebo i spolu posouvat, zvětšovat ap.
Složka.zip


PS : jestli Vám to nestačí a chtěl byste to umísťovat nějak dynamicky tak to upravím.

Editoval neutr (24. 7. 2014 19:10:09)


Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#7 24. 7. 2014 20:05:19

ludviktrnka
Člen
Registrace: 9. 7. 2009
Příspěvků: 711

Re: vlastnosti obrazku makrem

Děkuji moc. Je to tedy sice taková berle, ale vypadá to dost přesvědčivě :-). Nešel jsem jakousi metodu com.sun.star.drawing.LineProperties, pomocí níž by se snad dala obrázku přiřadit linie, ale jsem na to krátký. Tedy beru zavděk vašemu řešení, upravím si dle potřeby. Ukotvení obrázku je spíše lepší než horší. Ještě jednou děkuji.

Jako vyřešené zatím neoznačuji, pokud by se našlo řešení s ohraničením coby vlastností obrázku.

Editoval ludviktrnka (24. 7. 2014 21:10:50)


LibreOffice 5.4.

Offline

#8 25. 7. 2014 04:06:25

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 3,468

Re: vlastnosti obrazku makrem

Obrázek je objekt který musí mít mít více properties (vlastností). Měl by mít dokonce 2 druhy názvů. Konkrétně viditelný (popis) a neviditelný - vnitřní podle kterého se volá v programu.
     Správný postup (ne tak jak jsem to plácnul přes sebe) je definování vrstev základního objektu DrawPage. To jsou 'layers'.
     Samozřejmě, že se dá dohledat jak to udělat správně, ale mohou to být dlouhé hodiny. Řešení buňkou by bylo nejrychlejší, ale také nejméně šikovné. Buď udělat jednu extrémně velkou buňku, nebo pod obrázkem sloučit pole buněk - tak aby se udělal výsledný čtverec(obdélník) jako symetrický rámeček. Problém je v tom, že by se to muselo ukotvit ke středu takto vytvoření buňky. To proto aby se obrázky symetricky překryly. (Jinak by se větší obrázek choval jako stín toho menšího - měly by společný 1 roh a tam by ten spodní z obou obrázků vidět nebyl.)
     Další možností je mírně upravit rozměry buněk v průniku pod obrázkem a dát těmto buňkám společná rámeček. (To Vaše 1. makro umístí obrázek na pozici aktivního kurzoru, ale ukotví ho ke stránce. Toho se dá v makru výhodně použít protože umím tuto buňku načíst a tím také upravit okolní rozměry buněk + přidat rámeček buňkám kolem obrázku. Není pak potřeba ani DrawPage, ani další obrázek. Za předpokladu, že je obrázek z Google stále stejně velký jsem schopen postavit makro, které obklopí obrázek rámečkem kdekoliv necháte stát kurzor - samozřejmě mimo krajních buněk sloupce A a řádku číslo 1.)
      Také je samozřejmě možné manuálně 'vrchním' obrázkem hýbnout o chlup doprava a dolů. A to je důvod proč se k tomuto tématu vracím.


      Mám zkušenost, že se obrázky (obecně objekty) na tiskovém výstupu hýbnou. Tady by se to stát nemuselo, protože koordináty jsou v bodech (hne se většinou to, co je v jiných jednotkách - cm, palce ap.).
      Takže doporučení bych udělal takovéhle :
Udělejte si šablonu, otestujte jak na sobě ty obrázky sedí při tisku. Když se navzájem posunou, nastavte v makru posunutí tak aby tisk byl symetrický.
      Když by to nefungovalo - testoval bych umístění do buňky a rámeček z buněk, nebo dohledat správný postup a opravdu ty obrázky svázat jako je to u grafu.


Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#9 25. 7. 2014 07:50:42

ludviktrnka
Člen
Registrace: 9. 7. 2009
Příspěvků: 711

Re: vlastnosti obrazku makrem

Tisk vašeho dvojobrázku jsem zatím nezkoušel, ale cílem je export do PDF takže určitě bude důležité jak se to při exportu bude chovat. Obrázek i s rámečkem bude stále na jednom a týmž místě, akorát se vždy vytiskne, zase smaže a načte nový a takto furt dokola podle počtu exportů (až 200x), jakýkoli manuální zásah je nemyslitelný. Akorát mám pocit že "koordináty" nejsou v bodech ale v setinách mm (1/100th mm - se uvádí ve vývojářské příručce AOO), tak uvidíme jak to bude s hýbáním :-)


LibreOffice 5.4.

Offline

#10 25. 7. 2014 09:48:22

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 3,468

Re: vlastnosti obrazku makrem

No potom by asi bylo vhodné udělat rámeček natvrdo a makrem vkládat jenom QR kód. - Rámeček možná i buňkami. Asi máte pravdu s těmi setinami, ale to jsou také body jako nejmenší jednotky. Původní inch by zřejmě byly ve zlomcích palce. Jde hlavně o to, že při přepočtech dochází k posunům dík neceločíselné dělitelnosti a souběhu rastru programu versus monitor. Některé věci dělaly problém. Třeba tlačítka se umístí a zarovnají. Po uložení a znovuotevření jsou o kousek jinde. Pomáhá právě přichycení k 'dialogu' - respektive ovládacímu prvku 'vícenásobný výběr' - což je vlastně vždy Drawpage.


Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#11 25. 7. 2014 11:29:22

ludviktrnka
Člen
Registrace: 9. 7. 2009
Příspěvků: 711

Re: vlastnosti obrazku makrem

Jo, je to tak že obrázek se posunuje vůči buňkám pokud je výška/šířka řádku/sloupce dána výchozí hodnotou (upravuje se automaticky dle fontu či jiných údajů). Pokud zadám výšku řádku natvrdo tak se to již vzájemně při tisku neposune, takže vaše řešení je možné a asi opravdu nejjednoduší, ačkoli v silně strukturované stránce, což faktura je, nebude úplně snadné se vypořádat s již stanovenými sloupci. Díky.


LibreOffice 5.4.

Offline

#12 25. 7. 2014 11:39:54

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 3,468

Re: vlastnosti obrazku makrem

Tak teď nevím je to vyřešené, nebo mám ještě něco udělat?


Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#13 25. 7. 2014 12:31:44

ludviktrnka
Člen
Registrace: 9. 7. 2009
Příspěvků: 711

Re: vlastnosti obrazku makrem

Pořád by bylo úplně nejlepší, kdyby se ohraničení definovalo jako vlastnost obrázku. To pak nebude na nic vázané ani se nebude muset vytvářet ten "rámečkový" obrázek. Obojí považuji spíže za obejití problému než za přímé řešení, jakkoli je to použitélné. Tedy bych to ještě chvilku nechal, jestli náhodou někdo neví jak se tato vlastnost obrázku definuje. Případně by bylo ještě krapet elegantnější vložit Rectangle pomocí tohoto předpisu https://www.openoffice.org/api/docs/com … gle.html#X. To by též bylo čistější než tam cpát .jpg. Ale jak chete, já vám děkuji i tak, nemusíte se tím již zabývat ...


LibreOffice 5.4.

Offline

Zápatí