private void encodeKnacks( SheetGraphics graphics, ReportSession session, float distanceFromTop, int height) throws DocumentException { Bounds bounds = pageConfiguration.getColumnRectangle( distanceFromTop, (float) height, 1, PageConfiguration.Offset(0)); ContentEncoder encoder = new KnackEncoder(); boxEncoder.encodeBox(session, graphics, encoder, bounds); }
private void encodeAnimalForms( SheetGraphics graphics, ReportSession session, float distanceFromTop, float height) throws DocumentException { Bounds bounds = pageConfiguration.getColumnRectangle( distanceFromTop, height, 2, PageConfiguration.Offset(1)); ContentEncoder encoder = new SecondEditionLunarHeartsBloodEncoder(resources); boxEncoder.encodeBox(session, graphics, encoder, bounds); }
private float encodeMovementAndHealth( SheetGraphics graphics, ReportSession session, float distanceFromTop, float height) throws DocumentException { Bounds bounds = pageConfiguration.getColumnRectangle( distanceFromTop, height, 2, PageConfiguration.Offset(0)); ContentEncoder encoder = new SecondEditionLunarHealthAndMovementEncoder(resources); boxEncoder.encodeBox(session, graphics, encoder, bounds); return height; }
private float encodeCombatStats( SheetGraphics graphics, ReportSession session, float distanceFromTop) throws DocumentException { int height = 64; Bounds bounds = pageConfiguration.getColumnRectangle( distanceFromTop, (float) height, 1, PageConfiguration.Offset(2)); SecondEditionDBTCombatEncoder encoder = new SecondEditionDBTCombatEncoder(resources); boxEncoder.encodeBox(session, graphics, encoder, bounds); return height; }
private float encodePanoply( SheetGraphics graphics, ReportSession session, float distanceFromTop, float height) throws DocumentException { Bounds bounds = pageConfiguration.getColumnRectangle( distanceFromTop, height, 2, PageConfiguration.Offset(0)); ITableEncoder armourTableEncoder = new ArmourTableEncoder(LunarArmourContent.class); ContentEncoder contentEncoder = new ArmourEncoder(resources, armourTableEncoder); boxEncoder.encodeBox(session, graphics, contentEncoder, bounds); return height; }
private float encodeArsenal(SheetGraphics graphics, ReportSession session, float distanceFromTop) throws DocumentException { EncodingMetrics metrics = EncodingMetrics.From(graphics, session); float contentWidth = BoxBoundsFactory.getContentWidth(pageConfiguration, 2); float height = encoderRegistry.getPreferredHeight(metrics, contentWidth, ARSENAL_LUNAR); ContentEncoder weaponryEncoder = encoderRegistry.createEncoder(resources, session, ARSENAL_LUNAR); Bounds bounds = pageConfiguration.getColumnRectangle( distanceFromTop, height, 2, PageConfiguration.Offset(0)); boxEncoder.encodeBox(session, graphics, weaponryEncoder, bounds); return height; }
private void encodeWhiteWolfColumn(SheetGraphics graphics) { Bounds bounds = pageConfiguration.getColumnRectangle(contentHeight, getCopyrightHeight(), 1, Offset(2)); String text = induceYear("Exalted \u00A92007-{0} by CCP hf\nhttp://www.white-wolf.com"); Anchor phrase = createAnchor(graphics, text, "http://www.white-wolf.com"); encoderLine(graphics, phrase, Right, bounds); }
private void encodeAnathemaColumn(SheetGraphics graphics) { Bounds bounds = pageConfiguration.getColumnRectangle(contentHeight, getCopyrightHeight(), 1, Offset(1)); String text = induceYear("Created with Anathema \u00A92007-{0}\nhttp://anathema.sf.net"); Anchor phrase = createAnchor(graphics, text, "http://anathema.sf.net"); encoderLine(graphics, phrase, Center, bounds); }
private void encodeVoidStateColumn(SheetGraphics graphics) { Bounds bounds = pageConfiguration.getColumnRectangle(contentHeight, getCopyrightHeight(), 1, Offset(0)); String text = "Inspired by Voidstate\nhttp://www.voidstate.com"; Anchor phrase = createAnchor(graphics, text, "http://www.voidstate.com"); encoderLine(graphics, phrase, Left, bounds); }
@Override public void encode(Sheet sheet, SheetGraphics graphics, ReportSession session) throws DocumentException { sheet.startPortraitPage(graphics, session); int firstSet = 0, secondSet = 0; boolean DBT = hasDBT(session.getCharacter()); firstSet += encodeSpiritForms(graphics, session, firstSet, DBT); if (DBT) { firstSet += PADDING; secondSet = firstSet; firstSet += encodeArsenal(graphics, session, firstSet) + PADDING; firstSet += encodePanoply(graphics, session, firstSet, 80) + PADDING; firstSet += encodeMovementAndHealth(graphics, session, firstSet, 99); secondSet += encodeCombatStats(graphics, session, secondSet) + PADDING; encodePowers(graphics, session, secondSet, firstSet - secondSet, false); } else { encodePowers(graphics, session, secondSet, firstSet, true); } firstSet += PADDING; int remaining = (int) (pageConfiguration.getContentHeight() - firstSet); encodeKnacks(graphics, session, firstSet, remaining); encodeAnimalForms(graphics, session, firstSet, remaining); }
public LunarAdditionalPageEncoder( EncoderRegistry encoderRegistry, Resources resources, PageSize pageSize) { this.encoderRegistry = encoderRegistry; this.resources = resources; this.pageConfiguration = PageConfiguration.ForPortrait(pageSize); this.boxEncoder = new PdfBoxEncoder(); }
private void encodePowers( SheetGraphics graphics, ReportSession session, float distanceFromTop, float height, boolean isHorizontal) throws DocumentException { Bounds bounds = isHorizontal ? pageConfiguration.getColumnRectangle( distanceFromTop, height, 2, PageConfiguration.Offset(1)) : pageConfiguration.getColumnRectangle( distanceFromTop, height, 1, PageConfiguration.Offset(2)); SecondEditionPowersEncoder encoder = new SecondEditionPowersEncoder(resources, isHorizontal); boxEncoder.encodeBox(session, graphics, encoder, bounds); }
private int encodeSpiritForms( SheetGraphics graphics, ReportSession session, int distanceFromTop, boolean DBT) throws DocumentException { int attributeHeight = 80; Bounds spiritBounds = pageConfiguration.getColumnRectangle( (float) distanceFromTop, (float) attributeHeight, 1, PageConfiguration.Offset(0)); Bounds beastBounds = pageConfiguration.getColumnRectangle( (float) distanceFromTop, (float) attributeHeight, 2, PageConfiguration.Offset(1)); SecondEditionLunarSpiritFormEncoder spiritEncoder = new SecondEditionLunarSpiritFormEncoder(resources); SecondEditionLunarDBTFormEncoder beastEncoder = new SecondEditionLunarDBTFormEncoder(resources); boxEncoder.encodeBox(session, graphics, spiritEncoder, spiritBounds); if (DBT) { boxEncoder.encodeBox(session, graphics, beastEncoder, beastBounds); } return attributeHeight; }
@Override public void performPrint(IItem item, Document document, PdfWriter writer) throws ReportException { PageSize pageSize = pageSizePreference.getPageSize(); ICharacter stattedCharacter = (ICharacter) item.getItemData(); PdfContentByte directContent = writer.getDirectContent(); PageConfiguration configuration = PageConfiguration.ForPortrait(pageSize); SheetGraphics graphics = SheetGraphics.WithHelvetica(directContent); try { IGenericCharacter character = GenericCharacterUtilities.createGenericCharacter(stattedCharacter); ReportSession session = new ReportSession(getContentRegistry(), character); List<PageEncoder> encoderList = new ArrayList<>(); encoderList.add(new ExtendedFirstPageEncoder(configuration)); encoderList.add(new ExtendedSecondPageEncoder(configuration)); Collections.addAll(encoderList, findAdditionalPages(pageSize, session)); encoderList.add(new ExtendedMagicPageEncoder(getEncoderRegistry(), configuration)); Sheet sheet = new Sheet(document, getEncoderRegistry(), resources, pageSize); for (PageEncoder encoder : encoderList) { encoder.encode(sheet, graphics, session); } } catch (Exception e) { throw new ReportException(e); } }
private float getCopyrightHeight() { return pageConfiguration.getPageHeight() - pageConfiguration.getContentHeight(); }
public CopyrightEncoder(PageConfiguration pageConfiguration) { this(pageConfiguration, pageConfiguration.getContentHeight()); }