podglad schowka

0

Jak jest zapisywany tekst sformatowany w schowku (tzn. czy sa tam jakies znaczniki ze tu tekst jest pogrubiony itp.)? Czy da sie jakos podgladnac to (np. napisac cos takiego w javie). Pytam gdyz chcialbym sie dowiedziec czy bylaby jakas mozliwosc napisania programu ktory przeksztalcalby tekst w schowku (pobrany np. z worda) do takiego ktory moglbym wkleic do adobe pagemakera 6.5 (moge w nim wkleic tylko tekst niesformatowany lub jako obiekt worda). Nie chodzi mi o jakies super formatowanie,wystarczy ze moglbym normalnie wkleic tekst z pogrubieniami i kursywa (trzeba by wiec tez jakos sprawdzic jak formatuje tekst adobe). Da sie zrobic? ;-)

0

Zalezy od programu. Konkretny program sam decyduje co i jak zapisuje. Oczywiscie podstawowe kontrolki tekstowe na przyklad same wrzucaja tekst podczas ctrl+c, ale bardziej zaawansowane edytory musza obslugiwac takie sytuacje recznie. Np. gdy kopiujesz obrazek w wordzie to word decyduje co wyladuje w schowku.

Najlatwiej Ci bedzie skopiowac cos w wordzie i podgladnac schowek - dowiesz sie jak w tym wypadku to wyglada.

0

ale jak podgladnac schowek tak zebym wiedzial jak to jest zapisywane w pamieci? Za pomoca windowsowego podgladu schowka zobacze tylko tekst, nawet niesformatowany. W VB richtextboxy zapisywaly tekst do pliku cos w podobnym stylu do Latexa, podejrzewam ze tak moga byc zapisywane teksty w pamieci. Poza tym word potrafi wkleic tekst skopiowany z pagemakera ale niesformatowany wiec jakos musi rozdzielac tekst od formatowania ktorego uzyto w pagemakerze. Jak wiec sprobowac rozwiazac moj problem?

0

No to sobie napisz na szybko program podgladajacy co dokladnie jest w schowku, w formie bajtow chociazby i bedziesz wiedzial.

Word nie musi rozdzielac formatowania, a pagemaker zapisywac sam tekst. To zalezy. Jesli w schowku sa smieci to word pewnie pokaze smieci. Rzecz w tym, ze program docelowy, np. word nie ma pojecia co i jak zapisalo dane do schowka. Najbardziej oczywistym zalozeniem jest, ze tekst.

Ale dla przykladu - kiedys robilem aplikacje wyswietlajaca raport w htmlu, a klient zyczyl sobie, zeby dalo sie ten raport skopiowac i wkleic do excela. W tym wypadku wystarczylo podac informacje jako csv, zeby excel polapal sie co ma z tym zrobic. Ale nie dzialalo to do konca z open officem, bo zle interpretowal daty. Po poprawce (czyli wydumaniu jak excel i calc interpretuja daty) dzialalo na obu. Ale tylko dlatego, ze odpowiednio moj program zapisywal dane w schowku.

0

Mylisz się micki. Cała idea polega na tym, że w schowku może być zapisane coś w wielu formatach jednocześnie. Przykład: kopiujesz do schowka w programie Word tekst. Do schowka Word pakuje (Winapi: SetClipboardData) przykładowo:

  • tekst nieformatowany
  • tekst w formacie RTF
  • tekst w formacie DOC
  • tekst jako obrazek (to tylko założenie, bo Word tego nie robi, ale inne programy mogą - czemu nie?!).

Program, w których chcesz wkleić może wykonać sprawdzenie (Winapi: EnumClipboardFormats):

  • czy w schowku jest tekst w jego własnym formacie XYZ? Nie? Więc sprawdzamy dalej.
  • czy w schowku jest tekst w formacie LateX? Nie? Więc sprawdzamy dalej.
  • czy w schowku jest tekst w formacie DOC? Tak? Więc pobieramy (GetClipboardData), obrabiamy i wklejamy.

Idea jest taka, by najpierw sprawdzać obsługiwane formaty, niosące za sobą najwięcej informacji (jeśli aplikacja obsługuje i RTF, i TXT wygodniej użytkownikowi zapewnić wklejenie RTF, bo zachowuje formatowanie; ewentualnie udostępnić wybór, jak robi to Office opcją Wklej specjalne..).

0

problem w tym ze nie bardzo wiem jak odczytac dane ze schowka w formie bajtów. W javie ze schowkiem jedyne co robilem to odczytywalem tekst, (chyba obiektem typu Clipboard, albo cos z Toolkit) ale to juz sam obiekt wybral mi tekst, o formatowaniu nic nie moglem sie dowiedziec. W VB widze tez Clipboard ma oddzielone getText,getImage... wiec dostane rowniez informacje w jakis tam sposob wydzielone ze schowka. Jak odczytac wszystko? Moge to zrobic za pomoca winapi jak Szczawik napisal? Jesli tak to jak sie tego uzywa w javie?

0

ok, problem rozwiazany, dzieki za odpowiedzi

1 użytkowników online, w tym zalogowanych: 0, gości: 1