public static void main(String[] args) { Font font = new Font("Helvetica", Font.BOLD, 24); FontFactory ff = new FontFactory(Alphabet.getDefaultAlphabet(), font); AssemblyLine line = ff.getAssemblyLine(); Paint redYellowPaint = new GradientPaint(0, 0, Color.RED, 15, 15, Color.YELLOW, true); Paint greenWhitePaint = new GradientPaint(0, 0, Color.BLACK, 15, 0, Color.GREEN, true); line.addStage(new Clear()); line.addStage(new DrawCharacter(Color.WHITE, false)); // ff.addRenderer(); // ff.addRenderer(new DrawCharacterOutline(Color.GREEN)); line.addStage(new BinaryDilation(Color.WHITE, 3)); // line.addStage(new BinaryErosion(Color.WHITE,3)); // ff.addRenderer(new Convolution(Kernel.createGaussianKernel(3, 1.5), true)); // line.addStage(new DrawCharacter(Color.WHITE, false)); line.addStage(new PixelReplacer(redYellowPaint, Color.WHITE)); line.addStage(new DrawCharacter(Color.CYAN, false)); line.addStage(new PixelReplacer(greenWhitePaint, Color.CYAN)); // ff.addRenderer(new Convolution(Kernel.createGaussianKernel(3, 1.4), true)); // ff.addRenderer(new BinaryDilation(Color.RED, 3)); // ff.addRenderer(new AWTFontRenderer()); // line.addStage(new DrawCharacter(Color.BLACK, true)); ff.createFont(); }
@Override public Font loadFont(String path, double size) { FontFactory factory = getFontFactoryFromPipeline(); PGFont font = factory.loadEmbeddedFont(null, path, (float) size, true); if (font != null) return createFont(font); return null; }
public PdfPCell getPdfPCellAligned(String chunk, int font, int val) { PdfPCell pdfPCell = new PdfPCell(new Phrase(chunk, FontFactory.getFont(FontFactory.TIMES_ROMAN, 16, font))); pdfPCell.setBorder(pdfPCell.NO_BORDER); pdfPCell.setPaddingLeft(val); return pdfPCell; }
public Font getDefaultFont() { Font font = FontFactory.getFont( getFontFilePath("org/kuali/ole/deliver/batch/fonts/ARIALUNI.TTF"), BaseFont.IDENTITY_H, 10); return font; }
public void print(String filename) throws IOException, DocumentException { EventTree tree = app.getTimelines().getCurrentTree(); if (tree == null || tree.isEmpty()) return; ComplexEvent parent = tree.getTopSelectionParent(); if (parent == null) return; // Instantiation of document object Document document = new Document(PageSize.A4, 50, 50, 50, 50); // Creation of PdfWriter object PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(filename)); document.open(); // Creation of table Paragraph title = new Paragraph( "A sample output from Zeitline:", FontFactory.getFont(FontFactory.TIMES_BOLD, 14, BaseColor.BLUE)); title.setSpacingAfter(20); document.add(title); // Setting width rations PdfPTable table = new PdfPTable(3); float[] tableWidth = {(float) 0.2, (float) 0.12, (float) 0.68}; table.setWidths(tableWidth); // Setting the header java.util.List<PdfPCell> headerCells = asList(getHeaderCell("Date"), getHeaderCell("MACB"), getHeaderCell("Short Description")); for (PdfPCell cell : headerCells) table.addCell(cell); // Setting the body int max = parent.countChildren(); for (int i = 0; i < max; i++) { AbstractTimeEvent entry = parent.getEventByIndex(i); table.addCell(getBodyCell(entry.getStartTime().toString())); String name = entry.getName(); if (name != null && name.length() > 5) { String macb = name.substring(0, 4); String desc = name.substring(5); table.addCell(getBodyCell(macb)); table.addCell(getBodyCell(desc)); } else { table.addCell(""); table.addCell(""); } } document.add(table); // Closure document.close(); writer.close(); }
private PdfPCell getHeaderCell(String name) { PdfPCell cell = new PdfPCell( new Phrase(name, FontFactory.getFont(FontFactory.TIMES_BOLD, 10, BaseColor.BLACK))); cell.setBorderColor(BaseColor.GRAY); cell.setBorderWidth(1); cell.setPadding(5); return cell; }
// --- CREATE TITLE ---------------------------------------------------------------------------- protected PdfPCell createTitle(String msg, int colspan) { cell = new PdfPCell( new Paragraph(msg, FontFactory.getFont(FontFactory.HELVETICA, 10, Font.UNDERLINE))); cell.setColspan(colspan); cell.setBorder(PdfPCell.NO_BORDER); cell.setVerticalAlignment(PdfPCell.ALIGN_MIDDLE); cell.setHorizontalAlignment(PdfPCell.ALIGN_CENTER); return cell; }
// --- CREATE TITLE ---------------------------------------------------------------------------- protected PdfPCell createLabel(String msg, int fontsize, int colspan, int style) { cell = new PdfPCell( new Paragraph(msg, FontFactory.getFont(FontFactory.HELVETICA, fontsize, style))); cell.setColspan(colspan); cell.setBorder(PdfPCell.NO_BORDER); cell.setVerticalAlignment(PdfPCell.ALIGN_MIDDLE); cell.setHorizontalAlignment(PdfPCell.ALIGN_CENTER); return cell; }
public ScreenText(final String fontName, final int style, final int size) { super(); this.m_textRenderer = null; final Font font = FontFactory.createFont(fontName, style, size); if (font != null) { if (font instanceof BMFTexturedFont) { ((BMFTexturedFont) font).setMonospaced(); } this.m_textRenderer = TexturedFontRendererFactory.createTextRenderer(font); } this.m_textRenderer.setColor(0.8f, 0.8f, 0.8f, 1.0f); }
/** @param font */ @Override public void loadFont(Font font) { FontFactory fontFactory = getFontFactoryFromPipeline(); String fullName = font.getName(); if (!embeddedFontsLoaded && !fontFactory.isPlatformFont(fullName)) { loadEmbeddedFonts(); } // find the native Prism Font object based on this JavaFX font. At the // conclusion of this method, be sure to set the name, family, and // style on the Font object via the setNativeFont method. // the Prism font we're trying to find PGFont prismFont = fontFactory.createFont(fullName, (float) font.getSize()); // update the name variable to match what was actually loaded String name = prismFont.getName(); String family = prismFont.getFamilyName(); String style = prismFont.getStyleName(); font.impl_setNativeFont(prismFont, name, family, style); }
// --- CREATE NUMBER VALUE CELL ---------------------------------------------------------------- protected PdfPCell createNumberCell(String value, int colspan) { cell = new PdfPCell( new Paragraph(value, FontFactory.getFont(FontFactory.HELVETICA, 7, Font.NORMAL))); cell.setColspan(colspan); cell.setBorder(PdfPCell.BOX); cell.setBorderColor(innerBorderColor); cell.setVerticalAlignment(PdfPCell.ALIGN_TOP); cell.setHorizontalAlignment(PdfPCell.ALIGN_RIGHT); return cell; }
// --- CREATE BORDERLESS CELL ------------------------------------------------------------------ protected PdfPCell createBorderlessCell(String value, int height, int colspan) { cell = new PdfPCell( new Paragraph(value, FontFactory.getFont(FontFactory.HELVETICA, 7, Font.NORMAL))); cell.setPaddingTop(height); // cell.setColspan(colspan); cell.setBorder(PdfPCell.NO_BORDER); cell.setVerticalAlignment(PdfPCell.ALIGN_TOP); cell.setHorizontalAlignment(PdfPCell.ALIGN_LEFT); return cell; }
// --- CREATE PADDED VALUE CELL ---------------------------------------------------------------- protected PdfPCell createPaddedValueCell(String value, int colspan) { cell = new PdfPCell( new Paragraph(value, FontFactory.getFont(FontFactory.HELVETICA, 7, Font.NORMAL))); cell.setColspan(colspan); cell.setBorder(PdfPCell.BOX); cell.setBorderColor(innerBorderColor); cell.setVerticalAlignment(PdfPCell.ALIGN_TOP); cell.setHorizontalAlignment(PdfPCell.ALIGN_LEFT); cell.setPaddingRight(5); // difference return cell; }
// --- CREATE UNDERLINED CELL ------------------------------------------------------------------ protected PdfPCell createUnderlinedCell(String value, int colspan) { cell = new PdfPCell( new Paragraph( value, FontFactory.getFont(FontFactory.HELVETICA, 7, Font.UNDERLINE))); // underlined cell.setColspan(colspan); cell.setBorder(PdfPCell.NO_BORDER); cell.setVerticalAlignment(PdfPCell.ALIGN_TOP); cell.setHorizontalAlignment(PdfPCell.ALIGN_LEFT); return cell; }
// --- CREATE ITEMNAME CELL -------------------------------------------------------------------- protected PdfPCell createItemNameCell(String itemName, int colspan) { cell = new PdfPCell( new Paragraph( itemName, FontFactory.getFont(FontFactory.HELVETICA, 7, Font.NORMAL))); // no uppercase cell.setColspan(colspan); cell.setBorder(PdfPCell.BOX); cell.setBorderColor(innerBorderColor); cell.setVerticalAlignment(PdfPCell.ALIGN_MIDDLE); cell.setHorizontalAlignment(PdfPCell.ALIGN_LEFT); return cell; }
private void loadEmbeddedFonts() { if (!embeddedFontsLoaded) { FontFactory fontFactory = getFontFactoryFromPipeline(); if (!fontFactory.hasPermission()) { embeddedFontsLoaded = true; return; } Properties map = loadEmbeddedFontDefinitions(); Enumeration<?> names = map.keys(); ClassLoader loader = Thread.currentThread().getContextClassLoader(); while (names.hasMoreElements()) { String n = (String) names.nextElement(); String p = map.getProperty(n); if (p.startsWith("/")) { p = p.substring(1); try (InputStream in = loader.getResourceAsStream(p)) { fontFactory.loadEmbeddedFont(n, in, 0, true); } catch (Exception e) { } } } embeddedFontsLoaded = true; } }
/** * Searches for an appropriate font based on the font family name and weight and posture style. * This method is not guaranteed to return a specific font, but does its best to find one that * fits the specified requirements. * * <p>For SDK/runtime fonts, we will attempt to match properties to a SDK/runtime fonts. If a * specific SDK font is not found in the runtime JAR, the font loading will revert to FontFactory * default font, rather then finding closest matching available SDK font. This is how SDK font * loading was handled in the past. * * @param family The family of the font * @param weight The weight of the font * @param posture The posture or posture of the font * @param size The point size of the font. This can be a fractional value * @profile desktop */ @Override public Font font(String family, FontWeight weight, FontPosture posture, float size) { FontFactory fontFactory = getFontFactoryFromPipeline(); if (!embeddedFontsLoaded && !fontFactory.isPlatformFont(family)) { loadEmbeddedFonts(); } // REMIND. Some day need to have better granularity. boolean bold = weight != null && weight.ordinal() >= FontWeight.BOLD.ordinal(); boolean italic = posture == FontPosture.ITALIC; PGFont prismFont = fontFactory.createFont(family, bold, italic, size); // Create Font and set implementation Font fxFont = Font.impl_NativeFont( prismFont, prismFont.getName(), prismFont.getFamilyName(), prismFont.getStyleName(), size); return fxFont; }
public void populateFontMap() { fontMap.put("COURIER", new Font(FontFactory.getFont("Times-Roman", Font.BOLD).getBaseFont())); fontMap.put( "COURIER", new Font(FontFactory.getFont("Times-Roman", Font.BOLDITALIC).getBaseFont())); fontMap.put( "COURIER", new Font(FontFactory.getFont("Times-Roman", Font.DEFAULTSIZE).getBaseFont())); fontMap.put( "COURIER", new Font(FontFactory.getFont("Times-Roman", Font.STRIKETHRU).getBaseFont())); fontMap.put("COURIER", new Font(FontFactory.getFont("Times-Roman", Font.NORMAL).getBaseFont())); fontMap.put( "COURIER", new Font(FontFactory.getFont("Times-Roman", Font.UNDEFINED).getBaseFont())); fontMap.put( "COURIER", new Font(FontFactory.getFont("Times-Roman", Font.UNDERLINE).getBaseFont())); }
public Font getFont(String data) { String myData = new String(data); List<Character.UnicodeBlock> unicodeBlocks = new ArrayList<>(); if (StringUtils.isNotBlank(myData)) { unicodeBlocks = getListOfLanguage(myData); } if (unicodeBlocks.contains(Character.UnicodeBlock.ARABIC)) { Font font = FontFactory.getFont( getFontFilePath("org/kuali/ole/deliver/batch/fonts/arial.ttf"), BaseFont.IDENTITY_H, BaseFont.EMBEDDED); return font; } else { return getDefaultFont(); } }
@Override protected Label.LabelStyle createStyle() { Label.LabelStyle style = new Label.LabelStyle(); style.font = FontFactory.font24(); return style; }
private Phrase getBodyCell(String name) { return new Phrase(name, FontFactory.getFont(FontFactory.TIMES, 8, BaseColor.BLACK)); }
@Override public boolean isPrintableChar(char c) { return FontFactory.isPrintableChar(c); }
private static boolean createSingleAccounting( Document accountingDocument, PdfWriter writer, ArrayList<ShiftInstance> shifts, int pageNr) { boolean success = false; PersonalData personalData; float timeSumAsFloat = 0; DecimalFormat euroFormat = new DecimalFormat("#0.00"); float salarySum = 0; try { personalData = PersonalData.getInstance(); Font helveticaFont5 = FontFactory.getFont(FontFactory.HELVETICA, 5); Font helveticaFont6 = FontFactory.getFont(FontFactory.HELVETICA, 6); Font helveticaFont7 = FontFactory.getFont(FontFactory.HELVETICA, 7); Font helveticaFont7Bold = FontFactory.getFont(FontFactory.HELVETICA_BOLD, 7); Font helveticaFont8 = FontFactory.getFont(FontFactory.HELVETICA, 8); Font helveticaFont8Bold = FontFactory.getFont(FontFactory.HELVETICA_BOLD, 8); Font helveticaFont9 = FontFactory.getFont(FontFactory.HELVETICA, 9); Font helveticaFont10 = FontFactory.getFont(FontFactory.HELVETICA, 10); Font helveticaFont9Bold = FontFactory.getFont(FontFactory.HELVETICA_BOLD, 9); Font helveticaFont10Bold = FontFactory.getFont(FontFactory.HELVETICA_BOLD, 10); Font helveticaFont11Bold = FontFactory.getFont(FontFactory.HELVETICA_BOLD, 11); Font helveticaFont18Bold = FontFactory.getFont(FontFactory.HELVETICA_BOLD, 18); PdfPTable table1 = new PdfPTable(3); table1.setWidthPercentage(100); float[] table1CellWidth = new float[] {18f, 48f, 20f}; table1.setWidths(table1CellWidth); PdfPCell cell1 = new PdfPCell(); cell1.addElement(new Paragraph("DRK Freiburg\nRettungsdienst Freiburg", helveticaFont8)); cell1.setVerticalAlignment(Element.ALIGN_TOP); cell1.setFixedHeight(27f); cell1.setPaddingTop(0); cell1.setBorderWidth(1); Image drkLogo = Image.getInstance(MainWindow.class.getResource("logo_Abrechnung.jpg")); drkLogo.scaleAbsolute(115f, 14f); drkLogo.setAbsolutePosition(441f, 784f); PdfPCell cell2 = new PdfPCell(new Paragraph("Abrechnung AK-RD/Aushilfen", helveticaFont18Bold)); cell2.setHorizontalAlignment(Element.ALIGN_CENTER); cell2.setVerticalAlignment(Element.ALIGN_MIDDLE); cell2.setPaddingBottom(6); cell2.setBorderWidth(1); cell2.setRowspan(2); PdfPCell cell3 = new PdfPCell(); cell3.setBorderWidth(1); PdfPCell cell1p1 = new PdfPCell(); cell1p1.setFixedHeight(10f); cell1p1.setPaddingTop(0); cell1p1.addElement(new Paragraph("Gültig ab: 01.06.2013", helveticaFont8)); cell1p1.setHorizontalAlignment(Element.ALIGN_LEFT); cell1p1.setVerticalAlignment(Element.ALIGN_TOP); cell1p1.setBorderWidth(1); PdfPCell cell2p1 = new PdfPCell(); cell2p1.setPaddingTop(0); cell2p1.addElement(new Paragraph("Ablage: Personalservice", helveticaFont8)); cell2p1.setHorizontalAlignment(Element.ALIGN_RIGHT); cell2p1.setVerticalAlignment(Element.ALIGN_TOP); cell2p1.setBorderWidth(1); table1.addCell(cell1); table1.addCell(cell2); table1.addCell(cell3); table1.addCell(cell1p1); table1.addCell(cell2p1); // table1.addCell(cell1p1); // create empty line PdfPTable table2 = new PdfPTable(1); table2.setWidthPercentage(100); PdfPCell cellEmpty = new PdfPCell(); cellEmpty.setMinimumHeight(6f); cellEmpty.setBorder(Rectangle.NO_BORDER); table2.addCell(cellEmpty); // set headlines for checkboxes PdfPTable table3 = new PdfPTable(5); table3.setWidthPercentage(100); PdfPCell cell4 = new PdfPCell(new Paragraph(" RD Freiburg", helveticaFont9Bold)); cell4.setVerticalAlignment(Element.ALIGN_MIDDLE); cell4.setMinimumHeight(18f); cell4.setUseBorderPadding(true); PdfPCell cell5 = new PdfPCell(new Paragraph(" KTP Freiburg", helveticaFont9Bold)); cell5.setVerticalAlignment(Element.ALIGN_MIDDLE); cell5.setUseBorderPadding(true); PdfPCell cell6 = new PdfPCell(new Paragraph(" RD Aussenwache", helveticaFont9Bold)); cell6.setVerticalAlignment(Element.ALIGN_MIDDLE); cell6.setUseBorderPadding(true); PdfPCell cell7 = new PdfPCell(new Paragraph(" Sanitätsdienste", helveticaFont9Bold)); cell7.setVerticalAlignment(Element.ALIGN_MIDDLE); cell7.setUseBorderPadding(true); PdfPCell cell8 = new PdfPCell(new Paragraph(" KVS Freiburg", helveticaFont9Bold)); cell8.setVerticalAlignment(Element.ALIGN_MIDDLE); cell8.setUseBorderPadding(true); // set checkboxcells PdfPCell cell9 = new PdfPCell(); cell9.setMinimumHeight(92f); PdfPCell cell10 = new PdfPCell(); PdfPCell cell11 = new PdfPCell(); PdfPCell cell12 = new PdfPCell(); PdfPCell cell13 = new PdfPCell(); PdfPCell cell14 = new PdfPCell(new Paragraph("KoSt.: 964001", helveticaFont9Bold)); cell14.setFixedHeight(18f); PdfPCell cell15 = new PdfPCell(new Paragraph("KoSt.: 962100", helveticaFont9Bold)); PdfPCell cell16 = new PdfPCell(new Paragraph("KoSt.: 9640 - X", helveticaFont9Bold)); PdfPCell cell17 = new PdfPCell(new Paragraph("KoSt.: 3653 - X", helveticaFont9Bold)); PdfPCell cell18 = new PdfPCell(new Paragraph("KoSt.: 973100", helveticaFont9Bold)); table3.addCell(cell4); table3.addCell(cell5); table3.addCell(cell6); table3.addCell(cell7); table3.addCell(cell8); table3.addCell(cell9); table3.addCell(cell10); table3.addCell(cell11); table3.addCell(cell12); table3.addCell(cell13); table3.addCell(cell14); table3.addCell(cell15); table3.addCell(cell16); table3.addCell(cell17); table3.addCell(cell18); // checkboxes String[][] KoSt = new String[5][]; // RD Freiburg KoSt[0] = new String[] { "RH (" + UtilityBox.salaryPerHourString( ShiftContainer.ShiftType.RTW, PersonalData.Qualification.RH) + " €/h)", "RS (" + UtilityBox.salaryPerHourString( ShiftContainer.ShiftType.RTW, PersonalData.Qualification.RS) + " €/h)", "RA (" + UtilityBox.salaryPerHourString( ShiftContainer.ShiftType.RTW, PersonalData.Qualification.RA) + " €/h)" }; // KTP Freiburg KoSt[1] = KoSt[0]; // RD Aussenwache KoSt[2] = new String[] { /*"Baby-NAW - 01", */ "Breisach - 03", "Kirchzarten - 10", "RH (" + UtilityBox.salaryPerHourString( ShiftContainer.ShiftType.BREISACH, PersonalData.Qualification.RH) + " €/h)", "RS (" + UtilityBox.salaryPerHourString( ShiftContainer.ShiftType.BREISACH, PersonalData.Qualification.RS) + " €/h)", "RA (" + UtilityBox.salaryPerHourString( ShiftContainer.ShiftType.BREISACH, PersonalData.Qualification.RA) + " €/h)" }; // Sanitätsdienste KoSt[3] = new String[] { "Veranstaltung - 01", "SC-Freiburg - 02", "Konzerthaus - 03", "RH (" + UtilityBox.salaryPerHourString( ShiftContainer.ShiftType.EVENT, PersonalData.Qualification.RH) + " €/h)", "RS (" + UtilityBox.salaryPerHourString( ShiftContainer.ShiftType.EVENT, PersonalData.Qualification.RS) + " €/h)", "RA (" + UtilityBox.salaryPerHourString( ShiftContainer.ShiftType.EVENT, PersonalData.Qualification.RA) + " €/h)" }; // KVS Freiburg KoSt[4] = new String[] { "RH-RA (" + UtilityBox.salaryPerHourString( ShiftContainer.ShiftType.KVS, PersonalData.Qualification.RH) + " €/h)" }; boolean[] boolArray = new boolean[] {false, false, false, false, false, false}; int checkboxSetter; switch (PersonalData.getInstance().getQualification()) { case RH: checkboxSetter = 0; break; case RS: checkboxSetter = 1; break; case RA: checkboxSetter = 2; break; default: checkboxSetter = 0; } int accountType; String costUnit; switch (shifts.get(0).getType()) { case RTW: case HINTERGRUND: accountType = 0; costUnit = "964001"; break; case ELW: accountType = 0; costUnit = "964001"; break; case KTW: accountType = 1; costUnit = "962100"; break; case EVENT: accountType = 3; costUnit = "3653"; break; case SC: accountType = 3; costUnit = "3653"; break; case CONCERT_HALL: accountType = 3; costUnit = "3653"; break; case KVS: accountType = 4; checkboxSetter = 0; costUnit = "973100"; break; default: // Außenwache accountType = 2; costUnit = "9640"; } int xPosition = 46; for (int i = 0; i < KoSt.length; i++) { if (accountType == i) { if (i == 2) { // Außenwache switch (shifts.get(0).getType()) { case BREISACH: boolArray[0] = true; costUnit = costUnit + "03 (RD Breisach)"; break; default: boolArray[1] = true; costUnit = costUnit + "10 (RD Kirchzarten)"; } boolArray[checkboxSetter + 2] = true; } else if (i == 3) { // Sandienst etc. switch (shifts.get(0).getType()) { case SC: boolArray[1] = true; boolArray[checkboxSetter + 3] = true; costUnit = costUnit + "02 (SC-Freiburg)"; break; case EVENT: boolArray[0] = true; boolArray[checkboxSetter + 3] = true; costUnit = costUnit + "01 (Veranstaltung)"; break; default: // CONCERT_HALL boolArray[2] = true; costUnit = costUnit + "03 (Konzerthaus, 8,50 €/h)"; break; } } else { boolArray[checkboxSetter] = true; } } createCheckbox( writer, accountingDocument, helveticaFont9, KoSt[i], xPosition, 736, boolArray, pageNr); boolArray = new boolean[] {false, false, false, false, false, false}; xPosition += 105; } // create another empty line PdfPTable table4 = new PdfPTable(1); table4.setWidthPercentage(100); PdfPCell cellEmpty2 = new PdfPCell(); cellEmpty2.setFixedHeight(5f); cellEmpty2.setBorder(Rectangle.NO_BORDER); table4.addCell(cellEmpty2); // create personal-data-table float personalDataCellHeight = 18f; Font personalDataFont = helveticaFont10Bold; PdfPTable table5 = new PdfPTable(5); table5.setWidthPercentage(100); table5.setWidths(new float[] {137f, 4f, 192f, 30f, 115f}); String address = "Bekannt"; // if address is not known put it into the form if (!personalData.addressKnown()) { address = personalData.getAddress(); } String bankNameAndCity = "Bekannt"; String accountNumber = "Bekannt"; String blz = "Bekannt"; if (!personalData.isDataKnown()) { bankNameAndCity = personalData.getBankNameAndCity(); accountNumber = personalData.getAccountNumber(); blz = Integer.toString(personalData.getBlz()); } // name PdfPCell cell20 = new PdfPCell(new Paragraph("Name", personalDataFont)); cell20.setFixedHeight(personalDataCellHeight); cell20.disableBorderSide(Rectangle.RIGHT); PdfPCell cell21 = new PdfPCell(new Paragraph(":", personalDataFont)); cell21.disableBorderSide(Rectangle.LEFT); cell21.disableBorderSide(Rectangle.RIGHT); PdfPCell cell22 = new PdfPCell( new Paragraph(" " + personalData.getFirstName() + " " + personalData.getLastName())); cell22.setColspan(3); cell22.disableBorderSide(Rectangle.LEFT); // adress PdfPCell cell22p1 = new PdfPCell(new Paragraph("Adresse*", personalDataFont)); cell22p1.setFixedHeight(personalDataCellHeight); cell22p1.disableBorderSide(Rectangle.RIGHT); PdfPCell cell22p2 = new PdfPCell(new Paragraph(":", personalDataFont)); cell22p2.disableBorderSide(Rectangle.LEFT); cell22p2.disableBorderSide(Rectangle.RIGHT); PdfPCell cell22p3 = new PdfPCell(new Paragraph(" " + address)); cell22p3.disableBorderSide(Rectangle.LEFT); cell22p3.setColspan(3); // bankname PdfPCell cell23 = new PdfPCell(new Paragraph("Bankname und Ort*", personalDataFont)); cell23.setFixedHeight(personalDataCellHeight); cell23.disableBorderSide(Rectangle.RIGHT); PdfPCell cell24 = new PdfPCell(new Paragraph(":", personalDataFont)); cell24.disableBorderSide(Rectangle.LEFT); cell24.disableBorderSide(Rectangle.RIGHT); PdfPCell cell25 = new PdfPCell(new Paragraph(" " + bankNameAndCity)); cell25.disableBorderSide(Rectangle.LEFT); cell25.setColspan(3); // accountnr PdfPCell cell26 = new PdfPCell(new Paragraph("Kontonummer*", personalDataFont)); cell26.setFixedHeight(personalDataCellHeight); cell26.disableBorderSide(Rectangle.RIGHT); PdfPCell cell27 = new PdfPCell(new Paragraph(":", personalDataFont)); cell27.disableBorderSide(Rectangle.LEFT); cell27.disableBorderSide(Rectangle.RIGHT); PdfPCell cell28 = new PdfPCell(new Paragraph(" " + accountNumber)); cell28.disableBorderSide(Rectangle.LEFT); cell28.disableBorderSide(Rectangle.RIGHT); PdfPCell cell29 = new PdfPCell(new Paragraph("BLZ :", personalDataFont)); cell29.disableBorderSide(Rectangle.LEFT); cell29.disableBorderSide(Rectangle.RIGHT); PdfPCell cell2930 = new PdfPCell(new Paragraph(blz)); cell2930.disableBorderSide(Rectangle.LEFT); PdfPCell cell30 = new PdfPCell(new Paragraph("zu belastende Kostenstelle", personalDataFont)); cell30.setFixedHeight(personalDataCellHeight); cell30.disableBorderSide(Rectangle.RIGHT); PdfPCell cell3031 = new PdfPCell(new Paragraph(":", personalDataFont)); cell3031.disableBorderSide(Rectangle.LEFT); cell3031.disableBorderSide(Rectangle.RIGHT); PdfPCell cell3032 = new PdfPCell(new Paragraph(" " + costUnit)); cell3032.disableBorderSide(Rectangle.LEFT); cell3032.setColspan(3); table5.addCell(cell20); table5.addCell(cell21); table5.addCell(cell22); table5.addCell(cell22p1); table5.addCell(cell22p2); table5.addCell(cell22p3); table5.addCell(cell23); table5.addCell(cell24); table5.addCell(cell25); table5.addCell(cell26); table5.addCell(cell27); table5.addCell(cell28); table5.addCell(cell29); table5.addCell(cell2930); table5.addCell(cell30); table5.addCell(cell3031); table5.addCell(cell3032); // set textline PdfPTable table6 = new PdfPTable(1); table6.setWidthPercentage(100); PdfPCell cell31 = new PdfPCell( new Paragraph("* Angabe nur bei Neueinstellung oder Veränderungen", helveticaFont8)); cell31.setFixedHeight(12f); cell31.setBorder(Rectangle.NO_BORDER); table6.addCell(cell31); // set the shift table PdfPTable table7 = new PdfPTable(10); table7.setWidthPercentage(100); table7.setWidths( new float[] {1.96f, 0.9f, 1.8f, 1.8f, 2.9f, 1.96f, 1.96f, 1.85f, 1.85f, 2.2f}); // headlines Font shiftTableHeadlineFont = helveticaFont8Bold; PdfPCell cell32 = new PdfPCell(new Paragraph("Datum", shiftTableHeadlineFont)); cell32.setFixedHeight(50f); cell32.setVerticalAlignment(Rectangle.ALIGN_MIDDLE); cell32.setHorizontalAlignment(Rectangle.ALIGN_CENTER); PdfPCell cell33 = new PdfPCell(new Paragraph("Tag", shiftTableHeadlineFont)); cell33.setVerticalAlignment(Rectangle.ALIGN_MIDDLE); cell33.setHorizontalAlignment(Rectangle.ALIGN_CENTER); PdfPCell cell34 = new PdfPCell(new Paragraph("Uhrzeit\nvon", shiftTableHeadlineFont)); cell34.setVerticalAlignment(Rectangle.ALIGN_MIDDLE); cell34.setHorizontalAlignment(Rectangle.ALIGN_CENTER); PdfPCell cell35 = new PdfPCell(new Paragraph("Uhrzeit\nbis", shiftTableHeadlineFont)); cell35.setVerticalAlignment(Rectangle.ALIGN_MIDDLE); cell35.setHorizontalAlignment(Rectangle.ALIGN_CENTER); PdfPCell cell36 = new PdfPCell(new Paragraph("Besatzung", shiftTableHeadlineFont)); cell36.setVerticalAlignment(Rectangle.ALIGN_MIDDLE); cell36.setHorizontalAlignment(Rectangle.ALIGN_CENTER); PdfPCell cell37 = new PdfPCell(new Paragraph("Anzahl geleisteter Stunden (Zeit)", shiftTableHeadlineFont)); cell37.setVerticalAlignment(Rectangle.ALIGN_MIDDLE); cell37.setHorizontalAlignment(Rectangle.ALIGN_CENTER); PdfPCell cell38 = new PdfPCell( new Paragraph("Anzahl geleisteter Stunden (Dezimal)", shiftTableHeadlineFont)); cell38.setVerticalAlignment(Rectangle.ALIGN_MIDDLE); cell38.setHorizontalAlignment(Rectangle.ALIGN_CENTER); PdfPCell cell39 = new PdfPCell(new Paragraph("€ pro\nStunde", shiftTableHeadlineFont)); cell39.setVerticalAlignment(Rectangle.ALIGN_MIDDLE); cell39.setHorizontalAlignment(Rectangle.ALIGN_CENTER); PdfPCell cell40 = new PdfPCell(new Paragraph("€\ngesamt", shiftTableHeadlineFont)); cell40.setVerticalAlignment(Rectangle.ALIGN_MIDDLE); cell40.setHorizontalAlignment(Rectangle.ALIGN_CENTER); PdfPCell cell41 = new PdfPCell(new Paragraph("Kommentar", shiftTableHeadlineFont)); cell41.setVerticalAlignment(Rectangle.ALIGN_MIDDLE); cell41.setHorizontalAlignment(Rectangle.ALIGN_CENTER); table7.addCell(cell32); table7.addCell(cell33); table7.addCell(cell34); table7.addCell(cell35); table7.addCell(cell36); table7.addCell(cell37); table7.addCell(cell38); table7.addCell(cell39); table7.addCell(cell40); table7.addCell(cell41); float salary = UtilityBox.getInstance() .calculateSalaryPerHour(shifts.get(0), PersonalData.getInstance().getQualification()); // begin shifttable for (int i = 0; i <= 12; i++) { ShiftInstance currentShift = null; String weekDay = ""; String date = ""; String startTimeAsString = ""; String endTimeAsString = ""; String partner = ""; Font partnerFont = helveticaFont9; String timeInHours = ""; String timeasFloat = ""; String salaryPerHour = ""; String shiftSalary = ""; String commuteExpenses = ""; String comment = ""; Font commentFont = helveticaFont9; SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy"); Calendar cal = Calendar.getInstance(); if (shifts.size() > i) { currentShift = shifts.get(i); date = currentShift.getDateString(); try { cal.setTime(sdf.parse(date)); weekDay = UtilityBox.getDayOfWeekString(cal.get(Calendar.DAY_OF_WEEK)); } catch (ParseException ex) { System.out.println( "Exception in PdfCreator.createAccounting " + "(parsing date failed): " + ex.getMessage()); } int startTime = currentShift.getActualStartingTimeWithPrepTime(); int endTime = currentShift.getActualEndTime(); int breakTime = currentShift.getActualBreakTime(); startTimeAsString = UtilityBox.createTimeStringFromInt(startTime); endTimeAsString = UtilityBox.createTimeStringFromInt(endTime); partner = currentShift.getPartner(); if (partner.length() > 14) { if (partner.length() > 18) { partner = partner.substring(0, 18); } partnerFont = helveticaFont7; } timeInHours = UtilityBox.getInstance().calculateTimeInHours(startTime, endTime, breakTime); timeasFloat = euroFormat.format(currentShift.getTimeAsFloat()); timeSumAsFloat += currentShift.getTimeAsFloat(); salaryPerHour = euroFormat.format(salary) + " €"; shiftSalary = euroFormat.format(currentShift.getTimeAsFloat() * salary) + " €"; comment = currentShift.getComment(); int commentLength = comment.length(); if (commentLength > 10) { if (commentLength > 13) { if (commentLength > 36) { comment = comment.substring(0, 36); } commentFont = helveticaFont5; } else { commentFont = helveticaFont7; } } } PdfPCell tempCell = emptyPdfPCell(); Paragraph content = new Paragraph(date, helveticaFont9); tempCell.addElement(content); tempCell.setFixedHeight(19f); table7.addCell(tempCell); tempCell = emptyPdfPCell(); content = new Paragraph(weekDay, helveticaFont9); tempCell.addElement(content); table7.addCell(tempCell); tempCell = emptyPdfPCell(); content = new Paragraph(startTimeAsString, helveticaFont9); tempCell.addElement(content); table7.addCell(tempCell); tempCell = emptyPdfPCell(); content = new Paragraph(endTimeAsString, helveticaFont9); tempCell.addElement(content); table7.addCell(tempCell); tempCell = emptyPdfPCell(); content = new Paragraph(partner, partnerFont); tempCell.addElement(content); table7.addCell(tempCell); tempCell = emptyPdfPCell(); content = new Paragraph(timeInHours, helveticaFont9); tempCell.addElement(content); table7.addCell(tempCell); tempCell = emptyPdfPCell(); content = new Paragraph(timeasFloat, helveticaFont9); tempCell.addElement(content); table7.addCell(tempCell); tempCell = emptyPdfPCell(); content = new Paragraph(salaryPerHour, helveticaFont9); tempCell.addElement(content); table7.addCell(tempCell); tempCell = emptyPdfPCell(); content = new Paragraph(shiftSalary, helveticaFont9); tempCell.addElement(content); table7.addCell(tempCell); tempCell = emptyPdfPCell(); content = new Paragraph(comment, commentFont); tempCell.addElement(content); table7.addCell(tempCell); } // end of shift table // calculate the complete salary salarySum = timeSumAsFloat * salary; PdfPCell cell42 = emptyPdfPCell(); cell42.setFixedHeight(20); cell42.setBorderWidth(2); cell42.setColspan(6); cell42.addElement( new Paragraph("Summe der geleisteten Stunden / Auszahlungsbetrag:", helveticaFont8Bold)); cell42.setVerticalAlignment(Rectangle.ALIGN_MIDDLE); cell42.setPaddingBottom(6); PdfPCell cell43 = new PdfPCell(new Paragraph(euroFormat.format(timeSumAsFloat), helveticaFont9Bold)); cell43.setVerticalAlignment(Rectangle.ALIGN_MIDDLE); cell43.setBorderWidthBottom(2); cell43.setBorderWidthTop(2); cell43.setBorderWidthLeft(2); PdfPCell cell44 = new PdfPCell(new Paragraph(euroFormat.format(salary) + " €", helveticaFont9Bold)); cell44.setVerticalAlignment(Rectangle.ALIGN_MIDDLE); cell44.setBorderWidthBottom(2); cell44.setBorderWidthTop(2); PdfPCell cell45 = new PdfPCell(new Paragraph(euroFormat.format(salarySum) + " €", helveticaFont9Bold)); cell45.setVerticalAlignment(Rectangle.ALIGN_MIDDLE); cell45.setColspan(1); cell45.setBorderWidthBottom(2); cell45.setBorderWidthTop(2); // commentcell PdfPCell cell461 = emptyPdfPCell(); cell461.setColspan(2); cell461.setBorderWidthBottom(2); cell461.setBorderWidthTop(2); cell461.setBorderWidthRight(2); table7.addCell(cell42); table7.addCell(cell43); table7.addCell(cell44); table7.addCell(cell45); // table7.addCell(cell46); table7.addCell(cell461); // another empty line PdfPTable table8 = new PdfPTable(1); table8.setWidthPercentage(100); PdfPCell cell47 = new PdfPCell(); cell47.setFixedHeight(8); cell47.setBorder(Rectangle.NO_BORDER); table8.addCell(cell47); // sign-field PdfPTable table9 = new PdfPTable(1); table9.setWidthPercentage(100); String signatureString = "Unterschrift Mitarbeiter/in:"; if (false) { // TODO: wenn version veraltet signatureString += " NICHT FREIGEGEBENE VERSION. NICHT ABGEBEN."; } PdfPCell cell48 = new PdfPCell(new Paragraph(signatureString, helveticaFont11Bold)); cell48.setVerticalAlignment(Rectangle.ALIGN_MIDDLE); cell48.setFixedHeight(25); cell48.setBorderWidth(2); table9.addCell(cell48); // another empty line. We use table8 again. // PdfPTable table10 = new PdfPTable(3); table10.setWidthPercentage(100); table10.setWidths(new int[] {5, 6, 8}); PdfPCell cell49 = new PdfPCell(new Paragraph("Eingang RDL", helveticaFont10)); cell49.setVerticalAlignment(Rectangle.ALIGN_TOP); cell49.setHorizontalAlignment(Rectangle.ALIGN_LEFT); cell49.setBorderWidthBottom(0); cell49.setFixedHeight(48); PdfPCell cell50 = new PdfPCell(new Paragraph("Eingang Personalservice", helveticaFont10)); cell50.setVerticalAlignment(Rectangle.ALIGN_TOP); cell50.setHorizontalAlignment(Rectangle.ALIGN_LEFT); cell50.setBorderWidthBottom(0); PdfPCell cell51 = new PdfPCell(new Paragraph("geprüft:", helveticaFont10)); cell51.setVerticalAlignment(Rectangle.ALIGN_TOP); cell51.setHorizontalAlignment(Rectangle.ALIGN_LEFT); PdfPCell cell52 = new PdfPCell(); cell52.setBorderWidthTop(0); cell52.setFixedHeight(48); PdfPCell cell53 = new PdfPCell(); cell53.setBorderWidthTop(0); PdfPCell cell54 = new PdfPCell(new Paragraph("zur Zahlung angewiesen:", helveticaFont10)); cell54.setVerticalAlignment(Rectangle.ALIGN_TOP); cell54.setHorizontalAlignment(Rectangle.ALIGN_LEFT); cell54.setFixedHeight(48); table10.addCell(cell49); table10.addCell(cell50); table10.addCell(cell51); table10.addCell(cell52); table10.addCell(cell53); table10.addCell(cell54); // add department-box float departmentBoxX = 345; float departmentBoxY = 123; float departmentBoxWidth = 103; float departmentBoxHeight = 28; float departmentBoxTextY = departmentBoxY + 20; PdfContentByte contentByte = writer.getDirectContent(); contentByte.setLineWidth(.7f); contentByte.rectangle( departmentBoxX, departmentBoxY, departmentBoxWidth, departmentBoxHeight); contentByte.rectangle( departmentBoxX + departmentBoxWidth, departmentBoxY, departmentBoxWidth, departmentBoxHeight); contentByte.beginText(); contentByte.setFontAndSize(BaseFont.createFont("Helvetica", "", false), 8); contentByte.showTextAligned( PdfContentByte.ALIGN_CENTER, "Dienstplanung", (int) (departmentBoxX + (departmentBoxWidth / 2)), departmentBoxTextY, 0); contentByte.setFontAndSize(BaseFont.createFont("Helvetica", "", false), 8); contentByte.showTextAligned( PdfContentByte.ALIGN_CENTER, "bei SAN-Diensten Abt.RK", (int) (departmentBoxX + (departmentBoxWidth * 1.5)), departmentBoxTextY, 0); contentByte.endText(); // add payment order-box float paymentOrderBoxY = 75; float paymentOrderBoxTextY = paymentOrderBoxY + 20; contentByte.rectangle( departmentBoxX, paymentOrderBoxY, 2 * departmentBoxWidth, departmentBoxHeight); // use table8 for a empty line again // Version/Author PdfPTable table11 = new PdfPTable(4); table11.setWidthPercentage(100); table11.addCell(new PdfPCell(new Paragraph("Version 4.2", helveticaFont9))); table11.addCell(new PdfPCell(new Paragraph("geändert:", helveticaFont9))); table11.addCell(new PdfPCell(new Paragraph("Freigegeben:", helveticaFont9))); table11.addCell(new PdfPCell(new Paragraph("Seite 1 von 1", helveticaFont9))); table11.addCell(new PdfPCell(new Paragraph("Stand: 26.01.2015", helveticaFont9))); table11.addCell(new PdfPCell(new Paragraph("E. Willaredt, J. Güttler", helveticaFont9))); table11.addCell(new PdfPCell(new Paragraph("Karin Müller", helveticaFont9))); table11.addCell(new PdfPCell(new Paragraph("Personalservice", helveticaFont9))); // add tables to document accountingDocument.add(table1); accountingDocument.add(drkLogo); accountingDocument.add(table2); accountingDocument.add(table3); accountingDocument.add(table4); accountingDocument.add(table5); accountingDocument.add(table6); accountingDocument.add(table7); accountingDocument.add(table8); accountingDocument.add(table9); accountingDocument.add(table8); accountingDocument.add(table10); accountingDocument.add(table8); accountingDocument.add(table11); success = true; // TODO: for JDK7 use Multicatch } catch (Exception e) { // DocumentException | IOException | NullPointerException e) { success = false; UtilityBox.getInstance() .displayErrorPopup( "Abrechnung", "Fehler beim Erstellen der Abrechnung:\n" + e.getMessage()); } return success; }
public Font getBoldFont() { Font boldFont = FontFactory.getFont("Times-Roman", 15, Font.BOLD); return boldFont; }