iText - knihovna na tvorbu PDF

1. 6. 2007 17:26 (aktualizováno) Martin Hassman

Nedávno jsem hledal nástroj pro on-line generování PDF dokumentů. Ačkoliv jsem byl upozorňován, že určitě skončím u nějaké komerční knihovny, hledal jsem Open Source řešení (v mém případě pro .NET) a našel jsem knihovnu iTextSharp.

iTextSharp je portem původní knihovny iText, která je v Javě. Nejedná se o fork, podle všeho se vývoj stále odehrává v Javovské větvi a k jednotlivým verzím se vydávají jejich dotnetí porty. Předpokládám, že se používá nějaký konvertor Java2C# a ručně se jen dolaďují problémy. Soudím i podle toho, že před pár dny vyšel iText 2.0 a dva dny po té (včera) vyšel na něm postavený iTextSharp 4.0 (to verzování jsem si nevymyslel), ale ruku do ohně za to nedám.

Před pár lety jsem zkoušel generátor PDF, který je součástí PHP, ale nesedl mi, tak jsem tiše doufal v něco lepšího. Nezklamal jsem se. Stačilo pročtení tutoriálu a příkladů a věděl jsem, ze iText mi sedne. API mi připadlo intuitivní, příliš jsem nemusel tápat. Ještě jsem si provedl malý výkonnostní test. Vygenerování PDF telefonního seznamu celé školy (téměř 60 stran) trvá 3–5 vteřin včetně natažení dat z databáze. Pro mě rychlost dostatečná 8-)

Navíc iText umí generovat nejen PDF. Jakmile si vytvoříte objektovou strukturu dokumentu, můžete z ní vytvářet jak PDF, tak RTF (přiznám se, že nepoužívám) nebo HTML. Strukturu programem vytvořeného dokumentu lze exportovat do XML jako šablonu, upravit a následně znovu načíst a zpracovat. Při zapojení HTML parseru můžete generovat PDF přímo z HTML. Přál bych si, aby se do budoucna objevila i tvorba ODF, to by pak byl opravdu univerzální nástroj.

Tohle vše mi stačilo natolik, že jsem už ani nezkoušel další PDF knihovny a prohlásil iTextSharp za náš pracovní nástroj. Na cestě ke mě je čerstvě (v prosinci) vydaná knížka iText in Action, možná se dočkáte i nějaké recenze. Zatím jsem se ještě pořádně nepustil do složitěji strukturovaných dokumentů, tak doufám, že mě iText nezklame.

Pokud máte s iTextem nějaké zkušenosti, rád si je poslechnu. Případně chválu či hanu na další knihovny pro generování PDF nejen v .NETu či Javě.

Sdílet