home  |  suche  |  kontakt/johner  |  institut 
studierende  |  tech-docs  |  mindmailer 

Grafiken mit JFreeChart

Um JFreeChart nutzen zu können müssen erst jfreechart-1.0.8.jar und jcommon-1.0.12.jar in das Projekt eingebunden werden ( download on: http://sourceforge.net/project/showfiles.php?group_id=15494). Mit JFreeChart können alle möglichen Diagramm schnell in Java dargestellt werden. JFreeChart ist auch in Kombination mit iText nützlich, so können Diagramm in einen pdf-Dokument generiert werden. Ein Beispiel mit JFreeChart ist unter Skripts und Fragen in Stunde 15 zu finden.

package pdf;

import java.awt.Color;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;

import com.lowagie.text.Chapter;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Font;
import com.lowagie.text.FontFactory;
import com.lowagie.text.List;
import com.lowagie.text.ListItem;
import com.lowagie.text.PageSize;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Section;
import com.lowagie.text.pdf.PdfWriter;

public class UnserErstesPdf {
  public static void main(String[] args) {
    try {
      // Document wird erstellt mit der Seitengröße und den gewünschten
      // Seitenrändern als Übergabeparamter
      Document document = new Document(PageSize.A4, 50505050);
      // PdfWriter wird generiert, mit dem Document, das geschrieben
      // werden soll und wohin geschrieben werden soll
      PdfWriter writer = PdfWriter.getInstance(document,
          new FileOutputStream("C:\\UnserPdf.pdf"));
      // um Informationen in das Document zu schreiben, muss es erst
      // geöffnet werden
      document.open();

      // Paragraph, Chapter, Section... sind Elemente um den Inhalt zu
      // strukturieren. Mit Hilfe der FontFactory kann ein Font erstellt
      // werden, den jedem Element für die Gestaltung der Schrifart
      // übergeben werden kann.
      // Aufbau des PDF-Dokuments: 
      // - Paragraph beschreibt immer ein Text
      // - Paragraph kann einem Chapter oder einer Section zugeordnet werden
      // - Chapter erzeugt Section
      // - einer Section kann Text(Paragraph) oder z.B. eine List aufnehmen
      
      // Kapitelüberschrift
      Font font1 = FontFactory.getFont(FontFactory.HELVETICA, 18,
          Font.BOLDITALIC, new Color(00255));
      Paragraph titel1 = new Paragraph("Kapitelüberschrift", font1);
      Chapter chapter1 = new Chapter(titel1, 1);

      // Normale Überschriften
      Font font2 = FontFactory.getFont(FontFactory.TIMES, 18, Font.BOLD,
          new Color(25500));
      Paragraph titel2 = new Paragraph("Hauptüberschrift", font2);
      Section section1 = chapter1.addSection(titel2);

      // Normaler Text
      Paragraph normalerText = new Paragraph(
          "Heute ist die 15. Stunde ProgStruct");
      section1.add(normalerText);

      // Liste
      // Verschiedene Konstruktoren möglich, hier:
      // 1.Übergabeparameter: die Auflistung soll nummeriert werden
      // 2.Übergabeparameter: für die Nummerierung sollen keine Buchstaben
      // verwendet werden
      // 3.Übergabeparameter: Wie weit der Text eingerückt werden soll
      List liste = new List(true, false, 10);
      liste.add(new ListItem("Erster Punkt"));
      liste.add(new ListItem("Zweiter Punkt"));
      section1.add(liste);

      document.add(chapter1);
      document.close();

    catch (FileNotFoundException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    catch (DocumentException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }

  }
}

PDF Generierung mit iText

Um iText nutzen zu können muss die Library iText-2.0.7.jar erst in das Projekt integriert werden (download on http://www.lowagie.com/iText/download.html). Diese jar ist auch im JFreeChart download im Order libs enthalten.

Einen ersten Einblick, wie iText verwendet wird, zeigt das kommentierte Beispiel.