Uzyskanie adresu grafiki i usunięcie jej z dysku.

Dyskusje dotyczące tworzenia makropoleceń, pisania skryptów oraz programowania przy użyciu UNO
kturendyk
Posty: 30
Rejestracja: pt sty 22, 2016 4:59 pm

Uzyskanie adresu grafiki i usunięcie jej z dysku.

Post autor: kturendyk »

Witam ponownie.
Znowu poległem.
Teraz chciałbym odwrócić sytuację.
Pracuję nad makrem za pomocą którego usuwał bym zdjęcie z arkusza ale i od razu z folderu na dysku. O ile usunięcie grafiki z arkusza nie stanowi problemu (za pomocą oCellRange.clearContents( com.sun.star.sheet.CellFlags.OBJECTS) to nie wiem jak w nowym module pobrać adres url do danego zdjęcia z arkusza( zapewne za pomocą DrawPage).
Wiem jak usunąć z dysku (za pomocą Kill "C:\...." ) ale jak uzyskać informację o konkretnej ścieżce do pliku.
Dołączam załącznik z mojego poprzedniego wątku w którym jest dodane usunięcie przycisku po wczytaniu zdjęcia. Nie do końca też mi to funkcjonuje bo po przełączeniu karty przycisk się pojawia ale jest nie aktywny dopiero po zamknięciu arkusza i ponownym otwarciu znika.
Pytanie: Jak wydobyć adres URL grafiki w arkuszu.
Załączniki
wstaw grafikę.ods
(14.52 KiB) Pobrany 200 razy
Apache OpenOffice 4.1.4, Windows 8.1
Awatar użytkownika
Astur
Posty: 654
Rejestracja: wt lip 13, 2010 9:11 am

Re: Uzyskanie adresu grafiki i usunięcie jej z dysku.

Post autor: Astur »

Znaczy chcesz zrobić makrowirusa?
Ubuntu 20.04 — OpenOffice 4.1.10
Zanim zastosujesz się do jakiejś rady, zrób kopię zapasową dokumentu, którego ona ma dotyczyć.
Wskazówka: w dokumentach używam czasem niestandardowych, bezpłatnych czcionek Gentium i Lato
kturendyk
Posty: 30
Rejestracja: pt sty 22, 2016 4:59 pm

Re: Uzyskanie adresu grafiki i usunięcie jej z dysku.

Post autor: kturendyk »

Dlaczego?
Mam arkusze klientów w których dodaję sobie zdjęcia w celu ich łatwiejszej identyfikacji.Te zdjęcia umieszczam sobie w folderze D:zdjęcia.
W poprzednim wątku przy waszej pomocy zrobiłem dodawanie zdjęcia prosto z dysku do arkusza z odpowiednim rozmiarem i położeniem.
Teraz tą sytuację chciałbym odwrócić. W momencie usunięcia klienta z arkusza chciałbym aby usunęło się zdjęcie danego klienta i z arkusza i z dysku(żeby mi niepotrzebnie nie zajmowało miejsca) Z arkusza to już wiem jak co napisałem wyżej. Tylko jak teraz pobrać nazwę zdjęcia i usunąć właściwy z D:zdjęcia?
Apache OpenOffice 4.1.4, Windows 8.1
Awatar użytkownika
Astur
Posty: 654
Rejestracja: wt lip 13, 2010 9:11 am

Re: Uzyskanie adresu grafiki i usunięcie jej z dysku.

Post autor: Astur »

Skoro dodajesz zdjęcie, to zmodyfikuj poprzednie makro, tak aby zapisywało położenie zdjęcia w komórce w ukrytej kolumnie.
Ubuntu 20.04 — OpenOffice 4.1.10
Zanim zastosujesz się do jakiejś rady, zrób kopię zapasową dokumentu, którego ona ma dotyczyć.
Wskazówka: w dokumentach używam czasem niestandardowych, bezpłatnych czcionek Gentium i Lato
kturendyk
Posty: 30
Rejestracja: pt sty 22, 2016 4:59 pm

Re: Uzyskanie adresu grafiki i usunięcie jej z dysku.

Post autor: kturendyk »

To jest prawie dobre rozwiązanie.
Poprawiłem makro i teraz wpisuje mi ścieżkę do grafiki w komórce pod zdjęciem. W momencie gdy chcę usunąć dane zdjęcie, makro pobiera wpis z tej komórki i usuwa zdjęcie z dysku.
Ale...
Co mam zrobić jak już mam kilkadziesiąt grafik osadzonych w dokumencie (gdyż pracuję na arkuszu już z dwa lata) i nie mam w komórkach pod nimi wpisanych ścieżek do pliku na dysku?
W momencie ładowania się dokumentu w czasie wczytywania grafiki pojawia się w jej miejscu kwadracik i napis np."grafika 63..."
Jak w takiej sytuacji "dobrać się" do pliku źródłowego na dysku?
Apache OpenOffice 4.1.4, Windows 8.1
Jan_J
Posty: 4576
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Uzyskanie adresu grafiki i usunięcie jej z dysku.

Post autor: Jan_J »

A czy w ogóle taka informacja istnieje?
Grafikę w dokumencie można opisać przez odwołanie do zewnętrznego zasobu (link) albo przez zasób zintegrowany z dokumentem. W tym drugim przypadku może nie być żadnego śladu po adresie źródła, z którego została kiedyś pobrana.
Według mnie taka informacja nie jest nigdzie odnotowana.
Na szczęście dokumenty ods są kontenerami zip, w których cała pozostała informacja jest zapisana otwartem tekstem. Wystarczy przeszukać pliki xml, żeby się dowiedzieć na 100%.
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
ODPOWIEDZ