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;
 }
Example #7
0
 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);
 }
Example #8
0
 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);
 }
Example #9
0
 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;
 }
Example #14
0
 @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);
   }
 }
Example #15
0
 private float getCopyrightHeight() {
   return pageConfiguration.getPageHeight() - pageConfiguration.getContentHeight();
 }
Example #16
0
 public CopyrightEncoder(PageConfiguration pageConfiguration) {
   this(pageConfiguration, pageConfiguration.getContentHeight());
 }