Ejemplo n.º 1
0
  /**
   * This method creat Mark whit proporshin
   *
   * @param content - where we write
   * @param x - lower left x
   * @param y - lower left y
   * @param size - size of mark
   */
  public static void markCircle(PdfContentByte content, int x, int y, int size) {
    // Proportion 1:1:3:1:1
    int sizeStep = size / 7;
    int center = size / 2;
    if (sizeStep < 1) {
      try {
        throw new IllegalArgumentException("Marker must be aliquot 7");
      } catch (Exception e) {
        e.printStackTrace();
      }
    } else {

      content.circle(x, y, center);
      content.fill();
      // content.setRGBColorFill(0x00, 0x00, 0x00);
      content.setRGBColorStroke(0xFF, 0xFF, 0xFF);
      content.setLineWidth(sizeStep);
      content.circle(x, y, (float) (center - (sizeStep * 1.5)));

      //            content.setRGBColorFill(0xFF, 0xFF, 0xFF);
      //            content.setLineWidth(10f);
      //            content.circle(350.0f, 300.0f, 50.0f);

      content.fillStroke();
    }
  }
 /**
  * Writing vertical text.
  *
  * @param args no arguments needed
  */
 public static void main(String[] args) {
   Document document = new Document(PageSize.A4, 50, 50, 50, 50);
   try {
     texts[3] = convertCid(texts[0]);
     texts[4] = convertCid(texts[1]);
     texts[5] = convertCid(texts[2]);
     PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("vertical.pdf"));
     int idx = 0;
     document.open();
     PdfContentByte cb = writer.getDirectContent();
     for (int j = 0; j < 2; ++j) {
       BaseFont bf = BaseFont.createFont("KozMinPro-Regular", encs[j], false);
       cb.setRGBColorStroke(255, 0, 0);
       cb.setLineWidth(0);
       float x = 400;
       float y = 700;
       float height = 400;
       float leading = 30;
       int maxLines = 6;
       for (int k = 0; k < maxLines; ++k) {
         cb.moveTo(x - k * leading, y);
         cb.lineTo(x - k * leading, y - height);
       }
       cb.rectangle(x, y, -leading * (maxLines - 1), -height);
       cb.stroke();
       int status;
       VerticalText vt = new VerticalText(cb);
       vt.setVerticalLayout(x, y, height, maxLines, leading);
       vt.addText(new Chunk(texts[idx++], new Font(bf, 20)));
       vt.addText(new Chunk(texts[idx++], new Font(bf, 20, 0, Color.blue)));
       status = vt.go();
       System.out.println(status);
       vt.setAlignment(Element.ALIGN_RIGHT);
       vt.addText(new Chunk(texts[idx++], new Font(bf, 20, 0, Color.orange)));
       status = vt.go();
       System.out.println(status);
       document.newPage();
     }
     document.close();
   } catch (Exception de) {
     de.printStackTrace();
   }
 }