Tags Posts tagged with "odf toolkit"

odf toolkit

przez -
10 958
Dokumenty, ODF, Open Document Format, OpenDocument

Z przekazaniem projektu OpenOffice.org do Fundacji Apache, było wiele zgrzytów i niezadowolenia społeczności. Emocji dodaje również coraz większe oddalanie się od siebie LibreOffice i OpenOffice.org. Tymczasem ciekawy projekt – ODF Toolkit, trafił pod skrzydła Fundacji Apache. Jest to zestaw narzędzi oraz bibliotek napisanych w Javie, które służą do pracy z dokumentami ODF. Oprogramowanie to przeznaczone jest głównie dla programistów, którzy potrzebują wykonać dowolne operacje na dokumencie ODF. Potrafi ono manipulować treścią dokumentu, generować raporty, wyciągać informacje, czy sprawdzać poprawność dokumentu. Idealnie nadaje się do uruchomienia na serwerze.

W przeciwieństwie do zamkniętych formatów, ODF jest otwartym standardem i korzystając z wielu aplikacji, możemy swobodnie zapisywać i odczytywać tego typu dokumenty. Niestety pisanie oprogramowania, które to wykona jest ciężkim zadaniem. Dlatego tę czynność może wykonać ODF Toolkit, który bardzo upraszcza sprawę.

Generowanie przykładowego dokumentu

Do rozpoczęcia pracy będzie nam potrzebna Java 1.5 lub wyższa w wydaniu SDK (Software Development Kit). Pozostałe pliki jakie musimy pobrać to:

  1. Simple ODF 0.6.6
  2. ODFDOM 0.8.7
  3. Apache Xerces2 Java

Po ściągnięciu i rozpakowaniu plików, kopiujemy je (odfdom-java-0.8.7.jar, simple-odf-0.6.6.jar, xercesImpl.jar) do katalogu lib w naszym projekcie. W katalogu z projektem tworzymy plik OSWorld.java i umieszczamy w nim kod:

// Importujemy potrzebne klasy
import java.net.URI;
import org.odftoolkit.simple.TextDocument;
import org.odftoolkit.simple.table.Cell;
import org.odftoolkit.simple.table.Table;
import org.odftoolkit.simple.text.list.List;
import org.odftoolkit.simple.text.Paragraph;
import org.odftoolkit.simple.draw.Frame;
import org.odftoolkit.simple.draw.Image;
import org.odftoolkit.simple.style.StyleTypeDefinitions.*;
import org.odftoolkit.simple.draw.FrameStyleHandler;
import org.odftoolkit.simple.style.Font;
import org.odftoolkit.simple.style.StyleTypeDefinitions;

public class OSWorld {
	public static void main(String[] args) {
		TextDocument outputOdt;
		try {
			// Tworzymy nowy dokument tekstowy
			outputOdt = TextDocument.newTextDocument();			
			// Dodajemy obrazek w pierwszym paragrafie
			Paragraph para = outputOdt.getParagraphByIndex(0, false);
			Image image = Image.newImage(para, new URI("osworld.png"));
			// Ustawiamy jego tytuł oraz opis
			image.setTitle("Lorem ipsum");
			image.setDescription("Praesent faucibus tempor ultricies. Maecenas aliquet cursus leo.");
			// Ustawiamy jego pozycję oraz zakotwiczenie na stronie
			image.setVerticalPosition(FrameVerticalPosition.TOP);
			FrameStyleHandler handler = image.getStyleHandler();
			handler.setAchorType(AnchorType.AS_CHARACTER);
			
			// Dodajemy kolejny paragraf
			outputOdt.addParagraph("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris congue neque eu tellus egestas fermentum. In magna libero, aliquet sagittis faucibus sed, malesuada vel odio. Donec consectetur volutpat pretium. Ut molestie iaculis rhoncus. Proin lobortis placerat ultricies. Etiam porttitor, justo at porttitor mattis, urna orci scelerisque dolor, non interdum dolor purus a neque. Nulla volutpat, dolor eu hendrerit venenatis, metus lectus tincidunt leo, mattis suscipit erat dui eu tortor. ");
			// Ustalamy jego pozycję, pogrubienie.
			Paragraph para1 = outputOdt.getParagraphByIndex(1, false);
			Font font = para1.getFont();
			font.setFontStyle(StyleTypeDefinitions.FontStyle.BOLD );
			para1.setFont(font);
			HorizontalAlignmentType align = para1.getHorizontalAlignment();
			para1.setHorizontalAlignment(HorizontalAlignmentType.JUSTIFY);
			outputOdt.addParagraph("");
			outputOdt.addParagraph("Praesent faucibus tempor ultricies. Maecenas aliquet cursus leo, viverra malesuada turpis volutpat sed. Nam et mauris turpis, vel cursus dolor. Praesent ut consectetur risus. Nunc venenatis aliquam egestas. Donec vel justo dolor. Proin nec vehicula nisl. Mauris pulvinar laoreet metus, vitae lacinia augue eleifend vel. Nam consequat, quam non pretium convallis, quam libero lacinia nibh, non consectetur tellus enim consectetur ante. Phasellus leo purus, rhoncus sit amet ultricies eu, ultrices eu lorem. Duis ac sapien sit amet massa consequat ornare scelerisque at mauris. Ut nulla nunc, auctor a commodo ac, blandit non nisi.");
			outputOdt.addParagraph("");

			// Dodajemy listę pod koniec dokumentu
			outputOdt.addParagraph("Lorem ipsum dolor sit amet:");
			List list = outputOdt.addList();
			String[] items = {"Suspendisse", "Phasellus", "Donec", "Quisque", "Praesent"};
			list.addItems(items);		

			// Dodajemy tablekę
			Table table = outputOdt.addTable(2, 2);
			Cell cell = table.getCellByPosition(0, 0);
			cell.setStringValue("Hello World!");
			
			// Zapisujemy do pliku
			outputOdt.save("OSWorld.odt");
		} catch (Exception e) {
			System.err.println("ERROR: unable to create output file.");
		}
	}
}

Teraz wystarczy skompilować i uruchomić projekt, a powinien zostać wygenerowany dokument OSWorld.odt:

javac -cp lib/odfdom-java-0.8.7.jar:lib/simple-odf-0.6.6.jar:lib/xercesImpl.jar:. OSWorld.java
java -cp lib/odfdom-java-0.8.7.jar:lib/simple-odf-0.6.6.jar:lib/xercesImpl.jar:. OSWorld

Wygenerowany dokument:
OSWorld - Dokument wygenerowany przez ODF Toolkit

Przykładowy kod oraz pliki z tego projektu dostępne są do pobrania z archiwum OSWorld-ODF.tar.gz.

Szczegółowe informacje na temat wykorzystania projektu dostępne są w oraz na stronie z przykładami.

Polecane

Mozilla Firefox

0 15
Mozilla wiedząc posiadają ulepszony produkt, zdecydowała się na wcześniejszą premierę Firefox Quantum. Nie tylko wydawał się szybszy na zewnątrz i na wykresach, ale był...
Fedora

0 147