Dlouho jsem hledal, jak uzivatelum snadno umoznit psat pluginy do me aplikace. Hodne se pouziva VBA (Visual Basic for Applications), Lisp a Lua. Me je nejblizsi JavaScript, navic v nem hodne lidi umi.
Archiv rubriky: java
Java: kompilace do nativniho kodu platformy
Programy v Jave, se na rozdil treba od C nekompiluji primo do nativniho kodu dane platformy, ale do bajt kodu (mezikodu). To muze velka (ne)vyhoda. zalezi na uhlu pohledu. Aplikace je pak multiplatformni, jde spustit na vsech OS, na ktere je portovana Java. Nevyhodnou je mozna trochu mensi rychlost (tohle tema nemam rad ;-)) a relativne snadna moznost dekompilovat zkompilovane class soubory. Malo se to vi a jeste min pouziva, ale i Java se do zkompilovat primo do nativniho kodu.
Skenovani DNS zony, hledani volnych domen
Pred tydnem jsem si chtel koupit 2 znakovou CZ domenu, nakonec se ukazalo, ze jsou vsechny obsazene. 3 znakovych CZ domen je ale volnych obrovske mnozstvi. Protoze nemam moznost prenosu zony pomoci AXFR dotazu (RFC 5936), musel jsem si napsat skenovaciho „robota“.
Jednoduchy Jabber klient v Jave za 5 minut
Celý příspěvek
Java generovani PDF: vytvoreni stitku na obalky z MS Excelu
Nedavno jsem si hral s generovanim PDF v Jave. Napsal jsem jednoduchy kod, ktery vygeneruje seznam adres na obalky do PDF. Data jsou pripavena v MS Excelu. Kod je priserne zpraseny, ale treba se nekomu pro inspiraci bude hodit 😉
Soubor s daty v MS Excelu musi mit presne stejne nadpisy bunek, jako je na obrazku. Tato slova jsou napevne zadratovana v kodu, samozrejme by nebyl problem udelat jednoduche GUI, ve kterem by si uzivatel naklikal, co chce. Data v Excelu je nutne ulozit do formatu CSV.
Vysledny CSV soubor vypada nasledovne:
Jmeno;Ulice;Mesto;Pohlavi Karel Smolny;Nadrazni 123;Hradec Kralové III;muz Marek Jurda;Studentska 95;Pardubice 2;muz Pavla Novakova;Zerotinovo nam. 617/9;Brno;zena Martin Pavlasek;17.listopadu 2172/15;Ostrava-Poruba;muz Pavel Jirasek;Technicka 1902/2;Praha 6;muz
V Jave vyuzivam knihovnu JavaCSV z CSVReader.com pod LGPL 2 licenci na zpracovani CSV.
S knihovnou na praci s PDF je to mnohem horsi. ASi nejlepsi a nejznamejsi je iText. Jedna se o dualne licencovanou knihovnu. Prvni je licence AGPL 3 (GNU Affero General Public License) – ta je skoro nepouzitelna. Druha je placena, prave pro pripady, kdy nelze pouzit AGPL.
Pred nekolika lety byla open source verze iText dostupna pod mnohem mene restriktivni licenci LGPL 2. Tato verze je uz dost obtizne k sehnani (prekvapive). Nastasti si mi ji podarilo najit na GitHubu. Pro kompatibilitu s novou knihovnou je urcena tato. Knihovna pod LGPL je uz nekolik let neudrzovana a neumi vsechno, co jeji aktualni verze!
Knihovny jako Apache PDFBox jsou jen pekne hracky bez dokumentace a tutorialu – ztrata casu se jimi vubec zabyvat…
Tady je ta prasarna:
import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; import com.csvreader.CsvReader; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Font; import com.itextpdf.text.PageSize; import com.itextpdf.text.Paragraph; import com.itextpdf.text.Rectangle; import com.itextpdf.text.pdf.PdfPCell; import com.itextpdf.text.pdf.PdfPTable; import com.itextpdf.text.pdf.PdfWriter; public class AdresyNaObalky { public static void main(String[] args) { Listadresy = new ArrayList (); try { // ############### zpracovani CSV CsvReader adresa = new CsvReader("data.csv", ';'); // oddelovac je strednik adresa.readHeaders(); while (adresa.readRecord()) { String jmeno = adresa.get("Jmeno"); // *musi* odpovidat nadpisum v excel tabulce String ulice = adresa.get("Ulice"); String mesto = adresa.get("Mesto"); String pohlavi = adresa.get("Pohlavi"); if (pohlavi.equals("muz")) { pohlavi = "Pan"; } else if (pohlavi.equals("zena")) { pohlavi = "Pani"; } System.out.println(pohlavi + ":" + jmeno + ":" + ulice + ":" + mesto); adresy.add(pohlavi + "\n" + jmeno + "\n" + ulice + "\n" + mesto); // pridame adresu } adresa.close(); } catch (FileNotFoundException e1) { e1.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } // ############### zpracovani CSV // ############### generovani PDF Document document = new Document(PageSize.A4, 50, 20, 20, 20); // format papiru a okraje document.addAuthor("Martin Vancl"); // autor PDF document.addCreationDate(); // datum vytvoreni document.addTitle("Seznam adres pro tisk"); // nazev PDF dokumentu try { PdfWriter.getInstance(document, new FileOutputStream("adresy.pdf")); document.open(); Font font1 = new Font(Font.TIMES_ROMAN, 15, Font.BOLD); // (family, size, style) - http://goo.gl/tm5DG int pocet = adresy.size(); System.out.println(adresy.size()); if ((pocet % 2) != 0) { pocet++; } PdfPTable table = new PdfPTable(2); table.setWidthPercentage(100); table.getDefaultCell().setBorder(Rectangle.NO_BORDER); for (String a : adresy) { System.out.println(a); PdfPCell bunka = new PdfPCell(new Paragraph(a, font1)); bunka.setBorder(Rectangle.NO_BORDER); bunka.setPadding(20); table.addCell(bunka); } if (pocet > adresy.size()) { table.addCell(""); } document.add(table); document.close(); } catch (DocumentException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } // ############### generovani PDF } }
Po spusteni vyplivne takovyto PDF soubor. JAR soubor ke stazeni. Komplet vse ke stazeni (tabulka v Excelu, zdrojak, knihovny, jar).
Instalace Java her na Samsung S5230
K Vanocum jsem dostal novy mobil – Samsung S5230. Jsem s nim celkem spokojeny az na jedno: JAVA . S instalaci jakychkoli programu a her do mobilu jsou neskonale problemy. Pokud nahraju JAR soubor do telefonu pres USB kabel, nebo pokud ho tam poslu pres pres bluetooth, tak telefon pri pokusu o otevreni souboru hlasi "Neznamy typ souboru". Jedina moznosti, jak tam neco nainstalovat, je stahnout to z Internetu.