Strona 1 z 1

Uzyskanie adresu grafiki i usunięcie jej z dysku.

: ndz gru 10, 2017 10:27 pm
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.

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

: pn gru 11, 2017 4:43 am
autor: Astur
Znaczy chcesz zrobić makrowirusa?

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

: pn gru 11, 2017 10:11 am
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?

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

: pn gru 11, 2017 6:25 pm
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.

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

: ndz gru 17, 2017 12:47 pm
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?

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

: ndz gru 17, 2017 9:34 pm
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%.