|
Voor een klant ben ik een Rapportage database met een aantal weergaven die inzicht moeten geven in bepaalde gegevens aan het maken. De wens is om automatisch periodiek een afdruk te maken van deze overzichten in PDF formaat.
Hiervoor heb ik gekozen voor een gratis oplossing, namelijk het maken van een Java Agent die gebruik maakt van de iText java class, te vinden op www.lowagie.com
Dit is de code van een Notes Agent die gebruik maakt van een voorbeeld van bovengenoemde website:
import lotus.domino.*; import com.lowagie.text.*; import com.lowagie.text.pdf.PdfWriter; import java.io.FileOutputStream; import java.io.IOException;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try { Session session = getSession(); AgentContext agentContext = session.getAgentContext();
System.out.println("Hello World");
// step 1: creation of a document-object com.lowagie.text.Document document = new com.lowagie.text.Document(); try { // step 2: // we create a writer that listens to the document // and directs a PDF-stream to a file PdfWriter.getInstance(document, new FileOutputStream("c:\\HelloWorld.pdf"));
// step 3: we open the document document.open(); // step 4: we add a paragraph to the document //document.add(new Paragraph("Hello World")); // step 4: we add some paragraphs to the document document.add(new Paragraph("The default PageSize is DIN A4.")); document.setPageSize(PageSize.A3); document.newPage(); document.add(new Paragraph("This PageSize is DIN A3.")); document.setPageSize(PageSize.A2); document.newPage(); document.add(new Paragraph("This PageSize is DIN A2.")); document.setPageSize(PageSize.A1); document.newPage(); document.add(new Paragraph("This PageSize is DIN A1.")); document.setPageSize(PageSize.A0); document.newPage(); document.add(new Paragraph("This PageSize is DIN A0.")); document.setPageSize(PageSize.A5); document.newPage(); document.add(new Paragraph("This PageSize is DIN A5.")); document.setPageSize(PageSize.A6); document.newPage(); document.add(new Paragraph("This PageSize is DIN A6.")); document.setPageSize(PageSize.A7); document.newPage(); document.add(new Paragraph("This PageSize is DIN A7.")); document.setPageSize(PageSize.A8); document.newPage(); document.add(new Paragraph("This PageSize is DIN A8.")); document.setPageSize(PageSize.LETTER); document.newPage(); document.add(new Paragraph("This PageSize is LETTER.")); document.add(new Paragraph("A lot of other standard PageSizes are available."));
} catch (DocumentException de) { System.err.println(de.getMessage()); } catch (IOException ioe) { System.err.println(ioe.getMessage()); }
// step 5: we close the document document.close();
// (Your code goes here)
} catch(Exception e) { e.printStackTrace(); } } }
Voordat deze code werkt moet het iText.jar bestand gedownload worden, en via de Designer aan het project worden toegevoegd!
|