Přeskočit na hlavní obsah

EBookME 2.5 a JSignPdf 0.7

Trocha reklamy po ránu

Mé open source Java projekty EBookME a JSignPdf se dočkaly nových verzí. Neváhejte je vyzkoušet a okomentovat.

EBookME je aplikace, která slouží k vytváření elektronických knih pro mobilní zařízení (mobily, PDA). Skládá se ze dvou modulů - packager a reader. Packager je Java SE aplikace (Swing/Console/Applet), která generuje ze vstupního textu aplikace pro mobily. Základ pro tyto mobilní aplikace (ebooky) tvoří modul Reader, což je Java ME MIDlet pracující nad MIDP-1.0, CLDC-1.0.

Novinkami ve verzi EBookME 2.5 jsou uživatelem definované bookmarky v Readeru, možnost ukládání projektu v Packageru, lepší integraci do Windows a experimentální podporu Tamilštiny (chuťovka v Javě).

JSignPdf je Swingove GUI pro digitální podepisování PDF dokumentů. Využívá knihovnu iText a zvládá pracovat i s kódovanými dokumenty. Verze 0.7 přidává podporu viditelných podpisů (text nebo ikona na některé stránce PDF). Do další verze je plánováno i ověřování podpisů v PDF.

Obě aplikace jsou lokalizovatelné a samozřejmě nechybí verze v češtině a angličtině.

Komentáře

Unknown píše…
Pěkné! Jen nevím, co znamená "pracovat s kódovanými dokumenty".
Josef Cacek píše…
Cracknout PDF to bohužel neumí, na to používám jiné nástroje (nejradši Google). :-) Umí to při znalosti "owner password" číst a zapisovat encrypted PDF a případně nastavovat oprávnění v dokumentu.

Kódovat se dá i nechráněný vstupní PDF dokument. Podepsaný výsledek je pak "encrypted".

Populární příspěvky z tohoto blogu

Acegi - logujeme loginy

Používáte-li pro správu přístupu k vaší webové aplikaci framework Acegi, možná se vám bude hodit zaznamenávat uživatelské přístupy (platné loginy) někam do databáze. Zde je jeden ze způsobů jak se s tímto problémem vypořádat. Následující přiklad používá Hibernate a databázi Oracle. Nejdříve si připravím vlastní metodu pro zápis do databáze v DAO . Umístím ji do třídy cz.mujpackage.dao.UserDao , která rozšiřuje org.springframework.orm.hibernate3.support.HibernateDaoSupport a poskytuje metody pro správu uživatelů, rolí, apod. Pro zvýšení výkonu použiji v Hibernate SQLQuery namísto vytváření instance třídy modelu a jejího ukládání pomocí metody save(...) . /** * Adds log entry to table AUTH_LOG (Oracle database form - pk_sequence has to be configured) * @param aName username * @param aRemoteAddress remote address of request */ public void logAuthenticationSuccess(final String aName, final String aRemoteAddress) { final HibernateCallback callback = new HibernateCallback() { publ...

Three ways to redirect HTTP requests to HTTPs in WildFly and JBoss EAP

WildFly application server (and JBoss EAP) supports several simple ways how to redirect the communication from plain HTTP to TLS protected HTTPs. This article presents 3 ways. Two are on the application level and the last one is on the server level valid for requests to all deployments. 1. Request confidentiality in the deployment descriptor The first way is based on the Servlet specification. You need to specify which URLs should be protected in the web.xml deployment descriptor. It's the same approach as the one used for specifying which URLs require authentication/authorization. Just instead of requesting an assigned role, you request a transport-guarantee . Sample content of the WEB-INF/web.xml <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1...

Zipujeme efektivně

Jedna ze základních vlastností Javy je práce se ZIP archívy, ať už jsou to knihovny tříd a spustitelné JARy, webové aplikace (war), nebo třeba JEE bumbrlíčci (ear). Není tedy divu, že i přímo v základním API je implementována práce s těmito archívy. Slouží k tomu třídy v balíku java.util.zip a nejzajímavější z nich jsou ZipOutputStream a ZipInputStream. Příkladem budiž vytvoření zipu: //Vytvorime Zip ZipOutputStream zos = new ZipOutputStream(new FileOutputStream("javlog.zip")); //V Zipu chceme mit jeden textovy soubor zos.putNextEntry(new ZipEntry("priznani.txt")); //naplnime obsah textoveho souboru zos.write("Máme rádi Javu!".getBytes()); //zavrem entry (priznani.txt) zos.closeEntry(); //zavrem stream zos.close(); a jeho rozbalení: ZipInputStream zis = new ZipInputStream(new FileInputStream("javlog.zip")); ZipEntry zipEntry; //budem predpokladat, ze v ZIPu mame jen textove soubory a tak je vypisem do konzole while ((zipEntry =...