Example usage for com.lowagie.text.pdf PdfContentByte lineTo

List of usage examples for com.lowagie.text.pdf PdfContentByte lineTo

Introduction

In this page you can find the example usage for com.lowagie.text.pdf PdfContentByte lineTo.

Prototype


public void lineTo(float x, float y) 

Source Link

Document

Appends a straight line segment from the current point (x, y).

Usage

From source file:questions.importpages.NameCards.java

public static void createSheet(int p) throws DocumentException, IOException {
    Rectangle rect = new Rectangle(PageSize.A4);
    Document document = new Document(rect);
    PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(SHEET[p - 1]));
    document.open();/*from  w  w w .ja  v  a2  s.c  o  m*/
    PdfContentByte canvas = writer.getDirectContentUnder();
    PdfReader reader = new PdfReader(NameCard.CARD);
    PdfImportedPage front = writer.getImportedPage(reader, p);
    float x = rect.getWidth() / 2 - front.getWidth();
    float y = (rect.getHeight() - (front.getHeight() * 5)) / 2;
    canvas.setLineWidth(0.5f);
    canvas.moveTo(x, y - 15);
    canvas.lineTo(x, y);
    canvas.lineTo(x - 15, y);
    canvas.moveTo(x + front.getWidth(), y - 15);
    canvas.lineTo(x + front.getWidth(), y);
    canvas.moveTo(x + front.getWidth() * 2, y - 15);
    canvas.lineTo(x + front.getWidth() * 2, y);
    canvas.lineTo(x + front.getWidth() * 2 + 15, y);
    canvas.stroke();
    for (int i = 0; i < 5; i++) {
        for (int j = 0; j < 2; j++) {
            canvas.addTemplate(front, x, y);
            x += front.getWidth();
        }
        x = rect.getWidth() / 2 - front.getWidth();
        y += front.getHeight();
        canvas.moveTo(x, y);
        canvas.lineTo(x - 15, y);
        canvas.moveTo(x + front.getWidth() * 2, y);
        canvas.lineTo(x + front.getWidth() * 2 + 15, y);
        canvas.stroke();
    }
    canvas.moveTo(x, y + 15);
    canvas.lineTo(x, y);
    canvas.moveTo(x + front.getWidth(), y + 15);
    canvas.lineTo(x + front.getWidth(), y);
    canvas.moveTo(x + front.getWidth() * 2, y + 15);
    canvas.lineTo(x + front.getWidth() * 2, y);
    canvas.stroke();
    document.close();
}

From source file:questions.ocg.AddOptionalContentToExistingPdf.java

public static void main(String[] args) throws IOException, DocumentException {
    // creating an empty document
    Document document = new Document();
    PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(RESULT01));
    writer.setPdfVersion(PdfWriter.VERSION_1_5);
    document.open();//www.  j  av  a2 s .c  om
    writer.setPageEmpty(false);
    document.close();

    PdfReader reader = new PdfReader(RESULT01);
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(RESULT02));
    PdfContentByte cb = stamper.getOverContent(1);
    writer = stamper.getWriter();
    PdfLayer nested = new PdfLayer("Nested Layers", writer);
    PdfLayer nested_1 = new PdfLayer("Nested Layer 1", writer);
    PdfLayer nested_2 = new PdfLayer("Nested Layer 2", writer);
    PdfLayer layer21 = new PdfLayer("Layer 2", writer);
    PdfLayer layer22 = new PdfLayer("Layer 2", writer);
    nested_2.addChild(layer21);
    nested_2.addChild(layer22);
    nested.addChild(nested_1);
    nested.addChild(nested_2);
    cb.beginLayer(nested);
    ColumnText.showTextAligned(cb, Element.ALIGN_LEFT, new Phrase("nested layers"), 50, 775, 0);
    cb.endLayer();
    cb.beginLayer(nested_1);
    ColumnText.showTextAligned(cb, Element.ALIGN_LEFT, new Phrase("nested layer 1"), 100, 800, 0);
    cb.endLayer();
    cb.beginLayer(nested_2);
    ColumnText.showTextAligned(cb, Element.ALIGN_LEFT, new Phrase("nested layer 2"), 100, 750, 0);
    cb.endLayer();
    cb.beginLayer(layer21);
    ColumnText.showTextAligned(cb, Element.ALIGN_LEFT, new Phrase("layer 2.1 in the group"), 150, 775, 0);
    cb.endLayer();
    cb.beginLayer(layer22);
    ColumnText.showTextAligned(cb, Element.ALIGN_LEFT, new Phrase("layer 2.2 in the group"), 150, 725, 0);
    cb.endLayer();
    PdfLayer group = PdfLayer.createTitle("Grouped layers", writer);
    PdfLayer layer1 = new PdfLayer("Group: layer 1", writer);
    PdfLayer layer2 = new PdfLayer("Group: layer 2", writer);
    group.addChild(layer1);
    group.addChild(layer2);
    cb.beginLayer(layer1);
    ColumnText.showTextAligned(cb, Element.ALIGN_LEFT, new Phrase("layer 1 in the group"), 50, 700, 0);
    cb.endLayer();
    cb.beginLayer(layer2);
    ColumnText.showTextAligned(cb, Element.ALIGN_LEFT, new Phrase("layer 2 in the group"), 50, 675, 0);
    cb.endLayer();
    PdfLayer radiogroup = PdfLayer.createTitle("Radio Group", writer);
    PdfLayer radio1 = new PdfLayer("Radiogroup: layer 1", writer);
    radio1.setOn(true);
    PdfLayer radio2 = new PdfLayer("Radiogroup: layer 2", writer);
    radio2.setOn(false);
    PdfLayer radio3 = new PdfLayer("Radiogroup: layer 3", writer);
    radio3.setOn(false);
    radiogroup.addChild(radio1);
    radiogroup.addChild(radio2);
    radiogroup.addChild(radio3);
    ArrayList<PdfLayer> options = new ArrayList<PdfLayer>();
    options.add(radio1);
    options.add(radio2);
    options.add(radio3);
    writer.addOCGRadioGroup(options);
    cb.beginLayer(radio1);
    ColumnText.showTextAligned(cb, Element.ALIGN_LEFT, new Phrase("option 1"), 50, 600, 0);
    cb.endLayer();
    cb.beginLayer(radio2);
    ColumnText.showTextAligned(cb, Element.ALIGN_LEFT, new Phrase("option 2"), 50, 575, 0);
    cb.endLayer();
    cb.beginLayer(radio3);
    ColumnText.showTextAligned(cb, Element.ALIGN_LEFT, new Phrase("option 3"), 50, 550, 0);
    cb.endLayer();
    PdfLayer not_printed = new PdfLayer("not printed", writer);
    not_printed.setOnPanel(false);
    not_printed.setPrint("Print", false);
    cb.beginLayer(not_printed);
    ColumnText.showTextAligned(cb, Element.ALIGN_CENTER, new Phrase("PRINT THIS PAGE"), 300, 700, 90);
    cb.endLayer();
    PdfLayer zoom = new PdfLayer("Zoom 0.75-1.25", writer);
    zoom.setOnPanel(false);
    zoom.setZoom(0.75f, 1.25f);
    cb.beginLayer(zoom);
    ColumnText.showTextAligned(cb, Element.ALIGN_LEFT,
            new Phrase("Only visible if the zoomfactor is between 75 and 125%"), 30, 530, 90);
    cb.endLayer();
    stamper.close();

    reader = new PdfReader(RESULT02);
    stamper = new PdfStamper(reader, new FileOutputStream(RESULT03));
    Map ocg = stamper.getPdfLayers();
    for (Iterator i = ocg.keySet().iterator(); i.hasNext();) {
        System.out.println(i.next());
    }
    PdfLayer layer = (PdfLayer) ocg.get("Layer 2");
    layer.setOn(false);
    cb = stamper.getOverContent(1);
    cb.beginLayer(layer);
    cb.moveTo(0, 0);
    cb.lineTo(500, 500);
    cb.stroke();
    cb.endLayer();
    PdfLayer parent = (PdfLayer) ocg.get("Layer 2(2)");
    PdfLayer newLayer = new PdfLayer("Child layer", stamper.getWriter());
    newLayer.setOn(false);
    parent.addChild(newLayer);
    cb.beginLayer(newLayer);
    cb.moveTo(0, 500);
    cb.lineTo(500, 0);
    cb.stroke();
    cb.endLayer();
    stamper.close();
}

From source file:questions.separators.DottedGlue.java

public static void main(String[] args) {
    Document document = new Document();
    try {//from  w  ww  .j av a 2  s  .  c om
        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(RESULT));
        document.open();

        PdfContentByte canvas = writer.getDirectContent();
        canvas.moveTo(document.left(), document.top());
        canvas.lineTo(document.left(), 550);
        canvas.moveTo(document.right(), document.top());
        canvas.lineTo(document.right(), 550);
        canvas.stroke();

        Chunk separator = new Chunk(new DottedLineSeparator());

        // two parts
        Paragraph p1 = new Paragraph();
        p1.add(new Chunk("Chapter 1"));
        p1.add(separator);
        p1.add(new Chunk("p 10"));

        // 3 parts
        Paragraph p2 = new Paragraph();
        p2.add(new Chunk("Chapter 2"));
        p2.add(separator);
        p2.add(new Chunk("x"));
        p2.add(separator);
        p2.add(new Chunk("y"));

        // line ends with separator
        Paragraph p3 = new Paragraph();
        p3.add(new Chunk("Chapter 3"));
        p3.add(separator);

        // line starts with a separator
        Paragraph p4 = new Paragraph();
        p4.add(separator);
        p4.add(new Chunk("chapter 4"));

        // line IS a separator
        Paragraph p5 = new Paragraph();
        p5.add(separator);

        // line IS a separator + leading
        Paragraph p6 = new Paragraph(40);
        p6.add(separator);

        // separator galore
        Paragraph p7 = new Paragraph();
        p7.setAlignment(Element.ALIGN_JUSTIFIED);
        for (int i = 0; i < 10; i++) {
            p7.add(new Chunk("This is a test hippopotamus hippopotamus"));
            if (i % 4 == 0)
                p7.add(" hippopotamus hippopotamus hippopotamus hippopotamus");
            p7.add(separator);
        }

        document.add(p1);
        document.add(p1);
        document.add(p2);
        document.add(p3);
        document.add(p4);
        document.add(p5);
        document.add(p6);
        document.add(p7);

        ColumnText ct = new ColumnText(writer.getDirectContent());
        ct.addElement(p1);
        ct.addElement(p1);
        ct.addElement(p2);
        ct.addElement(p3);
        ct.addElement(p4);
        ct.addElement(p5);
        ct.addElement(p6);
        ct.addElement(p7);
        ct.setSimpleColumn(36, 36, 436, 536);
        ct.go();
        canvas.rectangle(36, 36, 400, 500);
        canvas.stroke();
        document.close();
    } catch (Exception de) {
        de.printStackTrace();
    }
}

From source file:questions.separators.TabbedWords1.java

public static void main(String[] args) {
    Document document = new Document();
    try {/*w ww . ja v a  2  s .co m*/
        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(RESULT));
        document.open();

        Paragraph p;
        Chunk tab1 = new Chunk(new VerticalPositionMark(), 100);
        Chunk tab2 = new Chunk(new LineSeparator(), 120);
        Chunk tab3 = new Chunk(new DottedLineSeparator(), 200);
        Chunk tab4 = new Chunk(new VerticalPositionMark(), 250);
        Chunk tab5 = new Chunk(new VerticalPositionMark(), 300);

        PdfContentByte canvas = writer.getDirectContent();
        ColumnText column = new ColumnText(canvas);
        for (int i = 0; i < 40; i++) {
            p = new Paragraph("TEST");
            p.add(tab1);
            p.add(new Chunk(String.valueOf(i)));
            p.add(tab2);
            p.add(new Chunk(String.valueOf(i * 2)));
            p.add(tab3);
            p.add(new Chunk(SeparatedWords2.WORDS[39 - i]));
            p.add(tab4);
            p.add(new Chunk(String.valueOf(i * 4)));
            p.add(tab5);
            p.add(new Chunk(SeparatedWords2.WORDS[i]));
            column.addElement(p);
        }
        column.setSimpleColumn(60, 36, 400, 806);
        canvas.moveTo(60, 36);
        canvas.lineTo(60, 806);
        canvas.moveTo(160, 36);
        canvas.lineTo(160, 806);
        canvas.moveTo(180, 36);
        canvas.lineTo(180, 806);
        canvas.moveTo(260, 36);
        canvas.lineTo(260, 806);
        canvas.moveTo(310, 36);
        canvas.lineTo(310, 806);
        canvas.moveTo(360, 36);
        canvas.lineTo(360, 806);
        canvas.moveTo(400, 36);
        canvas.lineTo(400, 806);
        canvas.stroke();
        column.go();

        document.setMargins(60, 195, 36, 36);
        document.newPage();

        for (int i = 0; i < 40; i++) {
            p = new Paragraph("TEST");
            p.add(tab1);
            p.add(new Chunk(String.valueOf(i)));
            p.add(tab2);
            p.add(new Chunk(String.valueOf(i * 2)));
            p.add(tab3);
            p.add(new Chunk(SeparatedWords2.WORDS[39 - i]));
            p.add(tab4);
            p.add(new Chunk(String.valueOf(i * 4)));
            p.add(tab5);
            p.add(new Chunk(SeparatedWords2.WORDS[i]));
            document.add(p);
        }
        document.close();
    } catch (Exception de) {
        de.printStackTrace();
    }
}

From source file:questions.separators.TabbedWords2.java

public static void main(String[] args) {
    Document document = new Document();
    try {/*from  w ww.ja  va 2s  . com*/
        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(RESULT));
        document.open();

        Paragraph p;
        Chunk tab1 = new Chunk(new VerticalPositionMark(), 100, true);
        Chunk tab2 = new Chunk(new LineSeparator(), 120, true);
        Chunk tab3 = new Chunk(new DottedLineSeparator(), 200, true);
        Chunk tab4 = new Chunk(new VerticalPositionMark(), 240, true);
        Chunk tab5 = new Chunk(new VerticalPositionMark(), 300, true);

        PdfContentByte canvas = writer.getDirectContent();
        ColumnText column = new ColumnText(canvas);
        for (int i = 0; i < 40; i++) {
            p = new Paragraph("TEST");
            p.add(tab1);
            p.add(new Chunk(String.valueOf(i)));
            p.add(tab2);
            p.add(new Chunk(String.valueOf(i * 2)));
            p.add(tab3);
            p.add(new Chunk(SeparatedWords2.WORDS[39 - i]));
            p.add(tab4);
            p.add(new Chunk(String.valueOf(i * 4)));
            p.add(tab5);
            p.add(new Chunk(SeparatedWords2.WORDS[i]));
            column.addElement(p);
        }
        column.setSimpleColumn(60, 36, 400, 806);
        canvas.moveTo(60, 36);
        canvas.lineTo(60, 806);
        canvas.moveTo(160, 36);
        canvas.lineTo(160, 806);
        canvas.moveTo(180, 36);
        canvas.lineTo(180, 806);
        canvas.moveTo(260, 36);
        canvas.lineTo(260, 806);
        canvas.moveTo(300, 36);
        canvas.lineTo(300, 806);
        canvas.moveTo(360, 36);
        canvas.lineTo(360, 806);
        canvas.moveTo(400, 36);
        canvas.lineTo(400, 806);
        canvas.stroke();
        column.go();

        document.setMargins(60, 195, 36, 36);
        document.newPage();

        canvas.moveTo(document.left(), document.bottom());
        canvas.lineTo(document.left(), document.top());
        canvas.moveTo(document.right(), document.bottom());
        canvas.lineTo(document.right(), document.top());
        canvas.stroke();
        for (int i = 0; i < 40; i++) {
            p = new Paragraph("TEST");
            p.add(tab1);
            p.add(new Chunk(String.valueOf(i)));
            p.add(tab2);
            p.add(new Chunk(String.valueOf(i * 2)));
            p.add(tab3);
            p.add(new Chunk(SeparatedWords2.WORDS[39 - i]));
            p.add(tab4);
            p.add(new Chunk(String.valueOf(i * 4)));
            p.add(tab5);
            p.add(new Chunk(SeparatedWords2.WORDS[i]));
            document.add(p);
        }
        document.close();
    } catch (Exception de) {
        de.printStackTrace();
    }
}

From source file:uk.ac.bbsrc.tgac.miso.core.data.decorator.itext.ITextProjectDecorator.java

License:Open Source License

public void buildReport() throws DocumentException {
    report = new Document();
    PdfWriter writer = PdfWriter.getInstance(report, stream);
    report.open();/*from www .  j  a v  a  2 s .c  o  m*/
    report.add(new Paragraph("Project Summary"));
    PdfContentByte cb = writer.getDirectContent();
    cb.setLineWidth(2.0f); // Make a bit thicker than 1.0 default
    cb.setGrayStroke(0.9f); // 1 = black, 0 = white
    float x = 72f;
    float y = 200f;
    cb.moveTo(x, y);
    cb.lineTo(x + 72f * 6, y);
    cb.stroke();

    report.add(new Paragraph(project.getAlias()));
    report.add(new Paragraph(project.getDescription()));

    PdfPTable t = new PdfPTable(1);
    t.setHorizontalAlignment(Element.ALIGN_CENTER);
    t.setWidthPercentage(100f); // this would be the 100 from setHorizontalLine
    t.setSpacingAfter(5f);
    t.setSpacingBefore(0f);
    t.getDefaultCell().setUseVariableBorders(true);
    t.getDefaultCell().setVerticalAlignment(Element.ALIGN_MIDDLE);
    t.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
    t.getDefaultCell().setBorder(Rectangle.BOTTOM); // This generates the line
    t.getDefaultCell().setBorderWidth(1f); // this would be the 1 from setHorizontalLine
    t.getDefaultCell().setPadding(0);
    t.addCell("");
    report.add(t);

    x = 72f;
    y = 100f;
    cb.moveTo(x, y);
    cb.lineTo(x + 72f * 6, y);
    cb.stroke();

    if (project.getSamples().size() > 0) {
        report.add(new Paragraph("Samples"));
        for (Sample sample : project.getSamples()) {
            Paragraph sPara = new Paragraph(sample.getAlias(), FontFactory.getFont("Helvetica", 12, Font.BOLD));
            sPara.setIndentationLeft(20);
            report.add(sPara);
            report.add(new Paragraph(sample.getDescription()));
        }
    }

    report.close();
}