Example #1
0
 @Override
 public void draw(MyLayoutPageContext pageContext, double x, double y) throws IOException {
   x += posX;
   y += posY;
   boolean verticalWritingMode = font.isVertical();
   YiPdfPage page = pageContext.getPdfPage();
   if (lineTag != null) {
     page.beginTextTag(lineTag.makeChild("Span"));
   }
   page.setFont(font);
   page.setFontSize(fontSize);
   page.setCharSpace(letterSpacing);
   page.setTextColor(color);
   if (transparentFlag) {
     page.setTextRenderingMode(3);
   }
   page.drawText(
       !verticalWritingMode ? x + letterSpacing / 2 : x,
       !verticalWritingMode ? y : y + letterSpacing / 2,
       text);
   if (transparentFlag) {
     page.setTextRenderingMode(0);
   }
   if (decoration != null) {
     page.setLineWidth(1);
     page.setDashPattern(null, 0);
     page.setLineCap(0);
     page.setDrawColor(color);
     page.drawLine(
         x, y, x + (!verticalWritingMode ? travel : 0), y + (!verticalWritingMode ? 0 : travel));
   }
   if (lineTag != null) {
     page.endTextTag();
   }
   if (beforeRp != null) {
     if (!verticalWritingMode) {
       beforeRp.setPos(-beforeRp.getTravel(), -fontUpperPerpend + beforeRp.getLowerPerpend());
     } else {
       beforeRp.setPos(fontUpperPerpend - beforeRp.getLowerPerpend(), -beforeRp.getTravel());
     }
     pageContext.addRuby(beforeRp, x, y);
   }
   if (rubyList != null) {
     for (MyLayoutInlineText ruby : rubyList) {
       if (!verticalWritingMode) {
         ruby.setPos(ruby.getRubyTravelDiff(), -fontUpperPerpend + ruby.getLowerPerpend());
       } else {
         ruby.setPos(fontUpperPerpend - ruby.getLowerPerpend(), ruby.getRubyTravelDiff());
       }
       pageContext.addRuby(ruby, x, y);
     }
   }
   if (afterRp != null) {
     if (!verticalWritingMode) {
       afterRp.setPos(this.getTravel(), -fontUpperPerpend + afterRp.getLowerPerpend());
     } else {
       afterRp.setPos(fontUpperPerpend - afterRp.getLowerPerpend(), getTravel());
     }
     pageContext.addRuby(afterRp, x, y);
   }
   if (rubyLastFlag) {
     pageContext.invokeRuby();
   }
 }