Drukowanie w Javie co i jak.

Drukowanie w Javie co i jak.
SH
  • Rejestracja:ponad 16 lat
  • Ostatnio:ponad 4 lata
1

Oczywiście zapoznałem się z podstawami, jednak drukowanie w Javie wydaje mi się bardzo niewygodne, nie wspominając że zazwyczaj tutoriale opisują jak wydrukować np. całe JTable. Oczywiście zapoznałem się z : http://docs.oracle.com/javase/tutorial/2d/printing/index.html

Zobaczcie jednak jak wygląda przykładowy program podany przez oracla i przyjrzyjcie się szczególnie okolicom .addGroup Przecież to horror.

http://docs.oracle.com/javase/tutorial/displayCode.html?code=http://docs.oracle.com/javase/tutorial/uiswing/examples/misc/TextAreaPrintingDemoProject/src/misc/TextAreaPrintingDemo.java

Odkrył ktoś jakiś przyjaźniejszy sposób na drukowanie?

Dla mnie bardzo fajnie organizuje to C# w formsach. Mamy kontrolki takie jak: PageSetupDialog, PrintDialog, PrintDocument, PrintPrevievControl, PrintPrevievDialog.

Oczywiście w Javie mamy okienko z ustawieniami druku. Jednak w C# wszystko jest bardzo intuicyjne, a raczej w .NET, bo pisałem program drukujący nawet w F#. Łatwo narysować coś na obrazku, odpowiednio przekazać i łatwo ustawić. Potem można na wyspecjalizowanej kontrolce obejrzeć podgląd. Wszystko łatwo zrozumieć i kod tego jest krótki.


C++ to wyjątkowy język - wysokopoziomowy z niskopoziomowymi mechanizmami, którymi można rozwalić w drobny mak te wysokopoziomowe.
Olamagato
C# korzysta w pełni z API Windows, więc obsługa jest bogata i nie trzeba się niczym innym przejmować. Drukowanie w Javie musi być przenośne, to znaczy, że musi działać tak samo na zupełnie różnych systemach takich jak Ubuntu, MacOs czy Windows, z których każde ma zupełnie inne sterowniki, trochę inne API i nieco inne możliwości.
N4
  • Rejestracja:około 13 lat
  • Ostatnio:ponad 12 lat
  • Postów:193
0

Wiem, że nie związane z tematem, ale Oracle poszło na łatwiznę i wygenerowało sobie połowę kodu w NetBeans, nawet nie usunęli komentarzy "Do not modify this code" :D


...
SH
  • Rejestracja:ponad 16 lat
  • Ostatnio:ponad 4 lata
0

Niezbyt sympatyczny sposób do nauki. Nie znalazłem też książki, która dobrze by to omawiała. Nawet ludzie na blogach pokazują wycinek kodu od oracla i z dumą pokazują jak wydrukować komponent dokładnie taki jak widzimy na ekranie lub pokazują jak stringa wydrukować po prostu.

Wiadomo, że jak chcemy np. wydrukować jakieś zestawienie, to chcemy prostą tabelkę zrobić o swoim wyglądzie, która będzie dobrze się mieściła na stronie w odpowiednich miejscach przeskakiwać na kolejną stronę, a nie że połowę wyrazu mam na jednej str.

Jest chociażby jakiś odpowiednik PrintPrevievControl?


C++ to wyjątkowy język - wysokopoziomowy z niskopoziomowymi mechanizmami, którymi można rozwalić w drobny mak te wysokopoziomowe.
M7
  • Rejestracja:około 15 lat
  • Ostatnio:ponad 10 lat
0
shusty napisał(a):

Wiadomo, że jak chcemy np. wydrukować jakieś zestawienie, to chcemy prostą tabelkę zrobić o swoim wyglądzie, która będzie dobrze się mieściła na stronie w odpowiednich miejscach przeskakiwać na kolejną stronę, a nie że połowę wyrazu mam na jednej str.

A czy we wspomnianym i chwalonym .NET miałeś powyżej opisywane bajerki? Wydaje mi się, że nie ma znormalizowanego API do takich zadań. Nie wiem jak chciałbyś opisywać co i jak ma się stać z tą tabelką, jak się kończy dla niej miejsce wzdłuż lub w szerz, która kolumna jaką ma mieć szerokość. Szukając na siłę można użyć np. HTML albo wygenerować PDFa i tegoż puścić na drukarkę.

SH
  • Rejestracja:ponad 16 lat
  • Ostatnio:ponad 4 lata
0

Oczywiście, że taką tabelkę sam musiałbym zrobić. W C# tego nie ma też. Chciałbym natomiast jakąś pomoc w internecie o tym znaleźć. Wiadomo, że bardzo dużo programów coś takiego robi i jest to bardzo często stosowane, więc ktoś powinien w jakiejś książce to opisać.

Co do samego API to chciałbym bardziej intuicyjnego rozwiązania rodem z .NETa


C++ to wyjątkowy język - wysokopoziomowy z niskopoziomowymi mechanizmami, którymi można rozwalić w drobny mak te wysokopoziomowe.
Wibowit
  • Rejestracja:około 20 lat
  • Ostatnio:około 4 godziny
0

Nie wiem czy dokładnie ci o to chodziło, ale spróbuj JasperReports.

Zobaczcie jednak jak wygląda przykładowy program podany przez oracla i przyjrzyjcie się szczególnie okolicom .addGroup Przecież to horror.

Kodu wygenerowanego i oznaczonego "Generated code" nie warto czytać tak czy siak. Mógłbyś poczytać XMLa znajdującego się w pliku .form, ale to też ma mało sensu - to jest po prostu do edycji graficznym designerem.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
SH
Chcę coś takiego napisać, ale w uboższej wersji i dodać do mojej aplikacji.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.