package scrum.server.common; import ilarkesto.pdf.APdfBuilder; import ilarkesto.pdf.APdfContainerElement; import ilarkesto.pdf.FontStyle; import java.awt.Color; public abstract class APdfCreator { protected FontStyle defaultFont; protected FontStyle tableHeaderFont; protected FontStyle codeFont; protected FontStyle referenceFont; protected FontStyle fieldLabelFont; protected FontStyle[] headerFonts = new FontStyle[4]; protected Color tableHeaderBackground = Color.LIGHT_GRAY; protected abstract void build(APdfContainerElement pdf); protected abstract String getFilename(); public APdfCreator() { defaultFont = new FontStyle().setSize(3); tableHeaderFont = new FontStyle(defaultFont).setBold(true); codeFont = new FontStyle(defaultFont).setFont("Courier"); referenceFont = new FontStyle(defaultFont).setFont("Courier").setItalic(true); fieldLabelFont = new FontStyle(defaultFont).setItalic(true); headerFonts[3] = new FontStyle(defaultFont).setSize(defaultFont.getSize() + 0.2f).setBold(true); headerFonts[2] = new FontStyle(defaultFont).setSize(headerFonts[3].getSize() + 0.7f).setBold(true); headerFonts[1] = new FontStyle(defaultFont).setSize(headerFonts[2].getSize() + 0.7f).setBold(true); headerFonts[0] = new FontStyle(defaultFont).setSize(headerFonts[1].getSize() + 1.5f).setBold(true); } public void createPdf(APdfBuilder pdf) { pdf.setDefaultFontStyle(defaultFont); build(pdf); } // --- helper --- protected void wiki(APdfContainerElement parent, String wikiCode) { WikiToPdfConverter.buildPdf(parent, wikiCode, new ScrumPdfContext()); } }