import java.awt.Color; import java.io.File; import java.io.IOException; import com.gnostice.pdfone.PDFOne; import com.gnostice.pdfone.PdfAction; import com.gnostice.pdfone.PdfBookmark; import com.gnostice.pdfone.PdfDocument; import com.gnostice.pdfone.PdfException; import com.gnostice.pdfone.PdfImage; import com.gnostice.pdfone.PdfMeasurement; import com.gnostice.pdfone.PdfPage; import com.gnostice.pdfone.PdfPageMode; import com.gnostice.pdfone.PdfPageSize; import com.gnostice.pdfone.PdfPoint; import com.gnostice.pdfone.PdfRect; import com.gnostice.pdfone.PdfTextAnnot; import com.gnostice.pdfone.PdfTextFormatter; import com.gnostice.pdfone.PdfWriter; import com.gnostice.pdfone.encodings.PdfEncodings; import com.gnostice.pdfone.fonts.PdfFont; import com.gnostice.pdfone.graphics.PdfPen; public class PdfPage_Examples { // Activates the component PDFOne.jar static { PDFOne.activate("T95VZE:W8HBPVA:74VQ8QV:LO4V8", "9B1HRZAP:X5853ERNE:5EREMEGRQ:TX1R10"); } public static void main(String[] args) throws PdfException, IOException { PdfPage_Examples obj = new PdfPage_Examples(); // To try other examples, add the obj.<example_method> // accordingly. For example, try: // obj.PdfPage_Example1(); obj.drawLine_Example(); } // This code segment demonstrates methods used to specify pen and // brush settings public void penAndBrush_Example() throws IOException, PdfException { PdfWriter writer = PdfWriter.fileWriter( "PdfDocument_penAndBrush_example.pdf"); PdfDocument document = new PdfDocument(writer); document.setPageMode(PdfPageMode.USEOUTLINES); PdfPage page = new PdfPage(); page.setMeasurementUnit(PdfMeasurement.MU_INCHES); // Sets default brush color to green page.setBrushColor(Color.GREEN); // Sets default pen color to red page.setPenColor(Color.RED); // Sets default pen width to 10 times default page.setPenWidth(PdfPen.DEFAULT_WIDTH * 10); // Sets default shape of paths that are joined page.setPenJoinStyle(PdfPen.JOINSTYLE_ROUND); // Sets default miter limit to twice the default page.setPenMiterLimit(PdfPen.DEFAULT_MITERLIMIT * 2); // Creates two arrays of x and y coordinates double x[] = { 2, 3, 3.5, 4, 3.7 }; double y[] = { 1, 0.5, 1, 3, 1.5 }; // Creates a default page (1) and draws a polygon based on // the above arrays page.drawPolygon(x, y, 5, true, true); // Sets default shape of endpoints of paths that are stroked page.setPenCapStyle(PdfPen.CAPSTYLE_PROJECTING_SQUARE); // Draws a straight line page.drawLine(2, 5, 5, 6); // Sets gap length of the dash pattern page.setPenDashGap(2); // Sets dash length of the dash pattern page.setPenDashLength(6); // Sets phase of the dash pattern page.setPenDashPhase(8); PdfPen pen = page.getPen(); pen.strokeColor = Color.GREEN; page.setPen(pen); // Draws a dashed line page.drawLine(2, 5, 3, 6); // Identifies corners of the polygon page.writeText(". (2, 1)", 2, 1); page.writeText(". (3, 0.5)", 3, 0.5); page.writeText(". (3.5, 1)", 3.5, 1); page.writeText(". (4, 3)", 4, 3); page.writeText(". (3.7, 1.5)", 3.7, 1.5); page.writeText(". (3, 6)", 3, 6); document.add(page); // Creates and identifies bookmarks used to view specific // destinations in the document page.writeText( "Use the bookmarks to check the cap and join styles"); document.addBookmark("Page 1 with normal zoom", document.getBookmarkRoot(), 1, 0, PdfBookmark.FITH); PdfRect rectangle1 = new PdfRect(3.6 * 72, 2.6 * 72, 4.4 * 72, 3.4 * 72); document.addBookmark("Check the \"line join style\"", document.getBookmarkRoot(), 1, rectangle1); PdfRect rectangle2 = new PdfRect(1.65 * 72, 4.65 * 72, 2.35 * 72, 5.35 * 72); page.writeText(". (2, 5)", 2, 5); page.writeText(". (5, 6)", 5, 6); document.addBookmark("Check the \"line cap style\"", document.getBookmarkRoot(), 1, rectangle2); document.setOpenAfterSave(true); document.write(); writer.dispose(); } // This code segment demonstrates the use of AddAction overloaded // methods public void AddAction_Example() throws IOException, PdfException { PdfWriter writer = PdfWriter.fileWriter( "PdfPage_AddAction_example.pdf"); PdfDocument document = new PdfDocument(writer); PdfPage page; // Creates five pages and adds them to the document for (int i = 1; i <= 5; i++) { page = new PdfPage(); page.writeText("This is page #" + i); document.add(page); }
// Adds page 6, which resolves the Gnostice home page URI // when it is closed PdfPage url_page = new PdfPage(); url_page.writeText( "When you leave this page, a browser window will be " + "opened with the Gnostice website URL"); url_page.addAction(PdfAction.PdfEvent.ON_PAGE_CLOSE, PdfAction.URI, "http://www.gnostice.com/"); document.add(url_page); // Adds page 7, which executes a Javascript script when // it is opened PdfPage js_page = new PdfPage(); js_page.writeText( "When you display this page, a Javascript message " + "window will be displayed."); js_page.addAction( PdfAction.PdfEvent.ON_PAGE_OPEN, PdfAction.JAVASCRIPT, "app.alert('This is a Javascript message!')"); document.add(js_page); // Creates a test PDF file for use it with code segment below char pathSeparator = File.separatorChar; String testFile = "." + pathSeparator + "InputDocs" + pathSeparator + "test_pdf_file.pdf"; PdfWriter writer2 = PdfWriter.fileWriter(testFile); PdfDocument document2 = new PdfDocument(writer2); PdfPage page2; for (int i =1; i <=5; i++) { page2 = new PdfPage(); if (i == 2) { page2.writeText(". (200, 100)", 200, 100); page2.writeText(". (200, 50)", 200, 50); } page2.writeText( "This is page #" + i + " of " + testFile); document2.add(page2); } document2.write(); writer2.dispose();
// Adds page 8, which prints the above file when it is closed PdfPage app_page = new PdfPage(); app_page.writeText("When you leave this page, the " + testFile + " file will be printed"); app_page.addAction( PdfAction.PdfEvent.ON_PAGE_OPEN, PdfAction.LAUNCH, testFile, true); document.add(app_page);
// Adds page 9, which leads to page 1 when it is closed PdfPage switch_page = new PdfPage(); switch_page.writeText( "When you leave this page, you will be taken to the " + "first page"); switch_page.addAction(PdfAction.PdfEvent.ON_PAGE_CLOSE, PdfAction.NAMED_FIRSTPAGE); document.add(switch_page); // Sets the file to be opened after it is written to document.setOpenAfterSave(true); // Writes the document object to file document.write(); // Closes all I/O streams associated with this writer object writer.dispose(); } // This code segment draws several squares using overloaded // methods public void DrawSquare_Example() throws IOException, PdfException { PdfWriter writer = PdfWriter.fileWriter( "PdfPage_DrawSquare_example.pdf"); PdfDocument document = new PdfDocument(writer); // Creates a new page PdfPage page = new PdfPage(); // Sets default page measurement unit to inch page.setMeasurementUnit(PdfMeasurement.MU_INCHES); // Sets pen and brush colors page.setPenColor(Color.GREEN); page.setBrushColor(Color.ORANGE);
// Draws square at position (2, 1) with side length at 1 inch page.drawSquare(2, 1, 1);
// Draws square at position (5, 3) with side length at 1 // inch. The square is also stroked and filled. page.drawSquare(5, 3, 1, true, true); // Creates two PdfPoint objects PdfPoint point1 = new PdfPoint(5, 5); PdfPoint point2 = new PdfPoint(2, 7);
// Draws a square at the first of the above points. page.drawSquare(point1, 1);
// Draws a square at the second point. The square as a side // length of 1 inch. The square is filled but not stroked. page.drawSquare(point2, 1, true, false); // Writes text identifying the above squares page.writeText( "drawSquare(double x, double y, double length) ~ " + "drawSquare(2, 1, 1)", new PdfRect(2, 0.6, 3, 0.4)); page.writeText( "drawSquare(double x, double y, double length, boolean " + "isFill, boolean isStroke) ~ drawSquare(5, 3, 1, " + "true, true)", new PdfRect(4, 2.6, 4, 0.4)); page.writeText( "drawSquare(PdfPoint p, double length) ~ " + "drawSquare(point1, 1)", new PdfRect(4, 4.6, 4, 0.4)); page.writeText( "drawSquare(PdfPoint p, double length, boolean " + "isFill, boolean isStroke) ~ drawSquare(point2, " + "1, true, false)", new PdfRect(2, 6.6, 4, 0.4)); document.add(page); // Sets the file to be opened after it is written to document.setOpenAfterSave(true); // Writes the document object to file document.write(); // Closes all I/O streams associated with this writer object writer.dispose(); } // This code segment draws rectangles with rounded corners using // overloaded methods public void DrawRoundRect_Example() throws IOException, PdfException { PdfWriter writer = PdfWriter.fileWriter( "PdfPage_DrawRoundRect_example.pdf"); PdfDocument document = new PdfDocument(writer); // Creates a new page PdfPage page = new PdfPage(); page.setMeasurementUnit(PdfMeasurement.MU_PIXELS); // Sets pen and brush colors page.setPenColor(Color.RED); page.setBrushColor(Color.GREEN);
// Creates a default page (1) and draws a rectangle with // rounded corners page.drawRoundRect(100, 100, // x and y 300, 300, // width and height 50, 100, // arcWidth and arcHeight true, // isFill true); // isStroke // Writes content identifying the above rectangle page.drawLine(100, 410, 150, 410); page.drawLine(100, 407, 100, 413); page.drawLine(150, 407, 150, 413); page.writeText("arcWidth = 50", 80, 420); page.drawLine(413, 100, 419, 100); page.drawLine(413, 200, 419, 200); page.drawLine(416, 100, 416, 200); page.writeText("arcHeight = 100", 430, 140); page.writeText(".", 100, 100); page.writeText("(x,y) = (100, 100)", 70, 80); page.writeText( "drawRoundRect(double x, double y, double width, " + "double height, double arcWidth, double " + "arcHeight, boolean isFill, boolean isStroke) " + "~ drawRoundRect(100, 100, 300, 300, 50, 100, " + "true, true)", new PdfRect(400, 350, 200, 200)); // Creates a rectangle PdfRect rectangle = new PdfRect(200, 550, 300, 300);
// Draws a rectangle with rounded corners inside the // above rectangle page.drawRoundRect(rectangle, 50, 100, true, true); page.writeText( "drawRoundRect(PdfRect rect, double arcWidth, double " + "arcHeight, boolean isFill, boolean isStroke) ~ " + "drawRoundRect(rectangle, 50, 100, true, true)", new PdfRect(510, 800, 200, 200)); document.add(page); // Sets the file to be opened after it is written to document.setOpenAfterSave(true); // Writes the document object to file document.write(); // Closes all I/O streams associated with this writer object writer.dispose(); } // This code segment draws several Bézier curves using // overloaded methods public void drawBezierCurve_Example2() throws IOException, PdfException { PdfWriter writer = PdfWriter.fileWriter( "PdfPage_drawBezier_example2.pdf"); PdfDocument document = new PdfDocument(writer); PdfPage page = new PdfPage(); // Sets pen and brush colors page.setPenColor(Color.RED); page.setBrushColor(Color.GREEN); // Create starting, control, and end points for Bézier curves PdfPoint s_point1 = new PdfPoint(150, 100); PdfPoint c_point1 = new PdfPoint(200, 50); PdfPoint e_point1 = new PdfPoint(250, 150); PdfPoint s_point2 = new PdfPoint(250, 100); PdfPoint c_point2 = new PdfPoint(300, 50); PdfPoint e_point2 = new PdfPoint(350, 150); PdfPoint s_point3 = new PdfPoint(350, 100); PdfPoint c_point3 = new PdfPoint(400, 50); PdfPoint e_point3 = new PdfPoint(450, 150);
// Draws Bézier curves that require just one control point page.drawBezierCurve(s_point1, // starting point c_point1, // control point e_point1, // end point false, // fill setting true); // stroke setting page.drawBezierCurve(s_point2, c_point2, e_point2, true, true); page.drawBezierCurve(s_point3, c_point3, e_point3, true, false); // Writes text identifying the above Bézier curves page.writeText("isFill = false", 160, 185); page.writeText("isStroke = true", 160, 195); page.writeText("isFill = true", 260, 185); page.writeText("isStroke = true", 260, 195); page.writeText("isFill = true", 360, 185); page.writeText("isStroke = false", 360, 195); page.writeText(". (150, 100) starting point ", 150, 100); page.writeText(". (200, 50) control point", 200, 50); page.writeText(". (250, 150) end point", 250, 150); PdfPoint s_point4 = new PdfPoint(150, 400); PdfPoint c1_point4 = new PdfPoint(200, 650); PdfPoint c2_point4 = new PdfPoint(250, 330); PdfPoint e_point4 = new PdfPoint(300, 550);
// Draws a Bézier curve with two control points page.drawBezierCurve(s_point4, // starting point c1_point4, // first control point c2_point4, // second control point e_point4, // end point false, // fill setting true); // stroke setting // Writes text identifying the above curve page.writeText(". (150, 400) starting point", s_point4); page.writeText( ". (200, 650) first control point", c1_point4); page.writeText( ". (250, 330) second control point", c2_point4); page.writeText(". (300, 550) end point", e_point4); page.writeText("isFill = false", 150, 550); page.writeText("isStroke = true", 150, 560); document.add(page); // Sets the file to be opened after it is written to document.setOpenAfterSave(true); // Writes the document object to file document.write(); // Closes all I/O streams associated with this writer object writer.dispose(); } // This code segment draws several Bézier curves using // overloaded methods public void drawBezierCurve_Example1() throws IOException, PdfException { PdfWriter writer = PdfWriter.fileWriter( "PdfPage_drawBezier_example1.pdf"); PdfDocument document = new PdfDocument(writer); PdfPage page = new PdfPage(); // Sets pen and brush colors page.setPenColor(Color.RED); page.setBrushColor(Color.GREEN);
// Draws Bézier curves that require just one control point page.drawBezierCurve(150, 100, // starting point 200, 50, // control point 250, 150, // end point false, // fill setting true); // stroke setting page.drawBezierCurve(250, 100, 300, 50, 350, 150, true, true); page.drawBezierCurve(350, 100, 400, 50, 450, 150, true, false); // Writes text identifying the above Bézier curves page.writeText("isFill = false", 160, 185); page.writeText("isStroke = true", 160, 195); page.writeText("isFill = true", 260, 185); page.writeText("isStroke = true", 260, 195); page.writeText("isFill = true", 360, 185); page.writeText("isStroke = false", 360, 195); page.writeText(". (150, 100) starting point ", 150, 100); page.writeText(". (200, 50) control point", 200, 50); page.writeText(". (250, 150) end point", 250, 150);
// Draws a Bézier curve with two control points page.drawBezierCurve(150, 400, // starting point 200, 650, // first control point 250, 330, // second control point 300, 550, // end point false, // fill setting true); // stroke setting // Writes text identifying the above curve page.writeText(". (150, 400) starting point", 150, 400); page.writeText(". (200, 650) first control point", 200, 650); page.writeText(". (250, 330) second control point",250, 330); page.writeText(". (300, 550) end point", 300, 550); page.writeText("isFill = false", 150, 550); page.writeText("isStroke = true", 150, 560); document.add(page); // Sets the file to be opened after it is written to document.setOpenAfterSave(true); // Writes the document object to file document.write(); // Closes all I/O streams associated with this writer object writer.dispose(); }
// This code segment demonstrates how to retrieve and set the // default measurement unit of a page public void MeasurementUnit_Example() throws IOException, PdfException { PdfWriter writer = PdfWriter.fileWriter( "PdfPage_MeasurementUnit_example.pdf"); PdfDocument document = new PdfDocument(writer); // Creates a new page PdfPage page = new PdfPage(); // Writes text at position (100, 100), which is expressed in // points, the default measurement unit page.writeText(". (100, 100) points", 100, 100); // Checks and sets measurement unit to inches if (page.getMeasurementUnit() != PdfMeasurement.MU_INCHES) { page.setMeasurementUnit(PdfMeasurement.MU_INCHES); } // Writes text at position (2, 1), which is now expressed in // inches page.writeText(". (2, 3) inches", 2, 3); document.add(page); // Sets the file to be opened after it is written to document.setOpenAfterSave(true); // Writes the document object to file document.write(); // Closes all I/O streams associated with this writer object writer.dispose(); } // This code segment demonstrates retrieving and specifying text // formatting settings of a page public void TextFormatter_Example() throws IOException, PdfException { PdfWriter writer = PdfWriter.fileWriter( "PdfPage_TextFormatter_example.pdf"); PdfDocument document = new PdfDocument(writer); // Creates a page PdfPage page = new PdfPage(); String s = "Four score and seven years ago our fathers " + "brought forth on this continent a new " + "nation conceived in liberty and dedicated " + "to the proposition that all men are created " + "equal. "; // Writes text on the page using default formatting settings page.writeText(s, 100, 100);
// Retrieves current text formatting settings of the page // to a PdfTextFormatter object PdfTextFormatter format = page.getTextFormatter(); // Changes text alignment of the PdfTextFormatter object to // centered text if (format.getAlignment() != PdfTextFormatter.CENTER) format.setAlignment(PdfTextFormatter.CENTER);
// Specifies new text formatting settings using the // PdfTextFormatter object page.setTextFormatter(format); // Writes text on the page using the new text formatting // settings page.writeText(s, 0, 200); document.add(page); // Sets the file to be opened after it is written to document.setOpenAfterSave(true); // Writes the document object to file document.write(); // Closes all I/O streams associated with this writer object writer.dispose(); } // This code segment draws rectangles on a page with several // overloaded methods public void drawRect_Example() throws IOException, PdfException { PdfWriter writer = PdfWriter.fileWriter( "PdfPage_drawRect_example.pdf"); PdfDocument document = new PdfDocument(writer); // Creates a page PdfPage page = new PdfPage(); // Creates two points PdfPoint point1 = new PdfPoint(100, 500); PdfPoint point2 = new PdfPoint(100, 650); // Creates a rectangle PdfRect rectangle = new PdfRect(250, 625, 250, 100); // Sets pen and brush colors for the page page.setBrushColor(Color.ORANGE); page.setPenColor(Color.RED);
// Draws a rectangle on the page at position (100, 100) with // width 400 and height 75 page.drawRect(100, 100, 400, 75);
// Draws a rectangle on the page at position (200, 300) with // width 400 and height 100. The fill and brush settings are // enabled. page.drawRect(200, 300, 400, 100, true, true);
// Draws a rectangle at point 1 with width 300 and height 75 page.drawRect(point1, 300, 75);
// Draws a rectangle at point 2 with width 50 and height 50 page.drawRect(point2, 125, 125, true, false);
// Draws a rectangle on the specified rectangle page.drawRect(rectangle); // Writes text identifying the above rectangles page.writeText( "drawRect(double x, double y, double width, " + "double height) ~ drawRect(100, 100, 400, 75)", new PdfRect(100, 100, 400, 75)); page.writeText( "drawRect(double x, double y, double width, " + "double height, boolean isFill, boolean " + "isStroke) ~ drawRect(200, 300, 400, 100, true, " + "true)", new PdfRect(200, 300, 400, 100)); page.writeText( "drawRect(PdfPoint p, double width, double " + "height) ~ drawRect(point1, 300, 75)", new PdfRect(100, 500, 300, 75)); page.writeText( "drawRect(PdfPoint p, double width, double " + "height, boolean isFill, boolean isStroke) " + "~ drawRect(point2, 125, 125, true, false)", new PdfRect(100, 650, 125, 125)); page.writeText("drawRect(PdfRect r) ~ drawRect(rectangle)", rectangle); document.add(page); // Sets the file to be opened after it is written to document.setOpenAfterSave(true); // Writes the document object to file document.write(); // Closes all I/O streams associated with this writer object writer.dispose(); } // This code segment draws a polygon and a polyline public void drawPolygon_drawPolyline_Example() throws IOException, PdfException { PdfWriter writer = PdfWriter.fileWriter( "PdfPage_drawPolygon_drawPolyline_example.pdf"); PdfDocument document = new PdfDocument(writer); // Create two pages PdfPage page1 = new PdfPage(); PdfPage page2 = new PdfPage(); // Creates two arrays of x and y coordinates double x[] = { 100, 200, 300, 400, 100 }; double y[] = { 100, 50, 100, 300, 100 }; // Sets pen and brush colors for the two pages page1.setBrushColor(Color.ORANGE); page1.setPenColor(Color.RED); page2.setBrushColor(Color.ORANGE); page2.setPenColor(Color.RED);
// Draws a polygon using the five coordinates page1.drawPolygon(x, y, 5, true, true);
// Draws a polyline using the first four coordinates page2.drawPolyline(x, y, 4); document.add(page1); document.add(page2); // Writes text identifying the coordinates on pages 1 & 2 document.writeText(". (100, 100)", 100, 100, "1,2"); document.writeText(". (200, 50)", 200, 50, "1,2"); document.writeText(". (300, 100)", 300, 100, "1,2"); document.writeText(". (400, 300)", 400, 300, "1,2"); // Sets the file to be opened after it is written to document.setOpenAfterSave(true); // Writes the document object to file document.write(); // Closes all I/O streams associated with this writer object writer.dispose(); } // This code segment draws a pie public void drawPie_Example() throws IOException, PdfException { PdfWriter writer = PdfWriter.fileWriter( "PdfPage_drawPie_example.pdf"); PdfDocument document = new PdfDocument(writer); PdfPage page = new PdfPage(); // Draws a full pie (from 0 degree to 360 degrees) for // reference page.drawPie(100, 200, 300, 100, 0.0, 360.0, false, true); // Draws the bounding box page.drawRect(100, 200, 300, 100); // Sets pen and brush colors page.setBrushColor(Color.ORANGE); page.setPenColor(Color.RED);
// Draws a pie segment from 0 degree to 45 degrees. // It is 300 points wide and 100 points tall. // Its bounding box is at position (100, 200). page.drawPie(100, 200, 300, 100, 0.0, 45.0, true, true); // Writes text identifying the top-left corner of bounding box // of the full pie containing the above pie segment page.writeText(". (100, 200)", 100, 200); document.add(page); // Sets the file to be opened after it is written to document.setOpenAfterSave(true); // Writes the document object to file document.write(); // Closes all I/O streams associated with this writer object writer.dispose(); } // This code segment draws lines using two overloaded methods public void drawLine_Example() throws IOException, PdfException { PdfWriter writer = PdfWriter.fileWriter( "PdfPage_drawLine_example.pdf"); PdfDocument document = new PdfDocument(writer); PdfPage page = new PdfPage(); // Creates two points PdfPoint point1 = new PdfPoint(100, 500); PdfPoint point2 = new PdfPoint(400, 100);
// Draws a line from position (100, 100) to // position (400, 500) page.drawLine(100, 100, 400, 500);
// Draws a line from the first point (100, 500) to second // point (400, 100) page.drawLine(point1, point2); // Writes text identifying the above lines page.writeText(". (100, 100)", 100, 100); page.writeText(". (400, 500)", 400, 500); page.writeText(". (100, 500)", point1); page.writeText(". (400, 100)", point2); document.add(page); // Sets the file to be opened after it is written to document.setOpenAfterSave(true); // Writes the document object to file document.write(); // Closes all I/O streams associated with this writer object writer.dispose(); } // This code segments draws images using several overloaded // methods public void drawImage_Example2() throws IOException, PdfException { PdfWriter writer = PdfWriter.fileWriter( "PdfPage_drawImage_example2.pdf"); PdfDocument document = new PdfDocument(writer); // Creates three pages PdfPage page1 = new PdfPage(); PdfPage page2 = new PdfPage(); PdfPage page3 = new PdfPage(); // Sets measurement unit for the pages page1.setMeasurementUnit(PdfMeasurement.MU_PIXELS); page2.setMeasurementUnit(PdfMeasurement.MU_PIXELS); char pathSeparator = File.separatorChar; // Creates an image object with an image file pathname. // Assumes that this image exists inside a directory // "InputDocs" under the current directory. PdfImage image = PdfImage.create( "." + pathSeparator + "InputDocs" + pathSeparator + "banner_img_468_60.jpg");
// Draws image at position (100, 100) page1.drawImage(image, 100, 100);
// Draws image, rotated by 5 degrees, at position (100, 300) page1.drawImage(image, 100, 300, 5.0);
// Draws image, resized to 234 x 30 pixels, at position // (100, 500) page1.drawImage(image, 100, 500, 234, 30);
// Draws image, resized to 117 x 15 pixels and rotated by // 355 degrees, at position (100, 700) page1.drawImage(image, 100, 700, 117, 15, 355.0); // Writes text identifying the above images page1.writeText( "drawImage(PdfImage img, double x, double y) ~ " + "drawImage(image, 100, 100)", 100, 70); page1.writeText( "drawImage(PdfImage img, double x, double y, " + "double rotation) ~ drawImage(image, 100, 300, " + "5.0)", 100, 260); page1.writeText( "drawImage(PdfImage img, double x, double y, " + "double width, double height) ~ drawImage(image, " + "100, 500, 234, 30)", 100, 460); page1.writeText( "drawImage(PdfImage img, double x, double y, " + "double width, double height, double rotation) " + "~ drawImage(image, 100, 700, 117, 15, 355.0)", 100, 660); // Creates four points PdfPoint point1 = new PdfPoint(100, 100); PdfPoint point2 = new PdfPoint(100, 300); PdfPoint point3 = new PdfPoint(100, 500); PdfPoint point4 = new PdfPoint(100, 700);
// Draws image at the first point page2.drawImage(image, point1);
// Draws image, rotated by 5 degrees, at the second point page2.drawImage(image, point2, 5.0);
// Draws image, resized to 234 x 30 pixels, at the third // point page2.drawImage(image, point3, 234, 30);
// Draws image, resized to 117 x 15 pixels and rotated by 5 // degrees, at the fourth point page2.drawImage(image, point4, 117, 15, 355.0); page2.writeText( "drawImage(PdfImage img, PdfPoint p) ~ drawImage" + "(image, point1)", 100, 70); page2.writeText( "drawImage(PdfImage img, PdfPoint p, double " + "rotation) ~ drawImage(image, point2, 5.0)", 100, 260); page2.writeText( "drawImage(PdfImage img, PdfPoint p, double width, " + "double height) ~ drawImage(image, point3, 234, " + "30)", 100, 460); page2.writeText( "drawImage(PdfImage img, PdfPoint p, double width, " + "double height, double rotation) ~ drawImage(" + "image, point4, 117, 15, 355.0)", 100, 660); // Creates two rectangles. // Rectangles are specified in points. // 1 pixel = 0.75 point PdfRect rect1 = new PdfRect(100 * 0.75, 100 * 0.75, 468 * 0.75, 60 * 0.75); PdfRect rect2 = new PdfRect(100 * 0.75, 300 * 0.75, 468 * 0.75, 60 * 0.75); // Draws only the second rectangle. // Drawing the first rectangle would be a waste, as it // will be obscured by the image drawn in it. page3.drawRect(rect2);
// Draws image inside first rectangle page3.drawImage(image, rect1);
// Draws image, rotated by 5 degrees, inside second rectangle page3.drawImage(image, rect2, 5.0); page3.writeText("drawImage(PdfImage img, PdfRect rect) ~ " + "drawImage(image, rect1)", 100 * 0.75, 70 * 0.75); page3.writeText("drawImage(PdfImage img, PdfRect rect, " + "double rotation) ~ drawImage(image, rect2, " + "5.0)", 100 * 0.75, 270 * 0.75); document.add(page1); document.add(page2); document.add(page3); // Sets the file to be opened after it is written to document.setOpenAfterSave(true); // Writes the document object to file document.write(); // Closes all I/O streams associated with this writer object writer.dispose(); } // This code segments draws images using several overloaded // methods public void drawImage_Example1() throws IOException, PdfException { PdfWriter writer = PdfWriter.fileWriter( "PdfPage_drawImage_example1.pdf"); PdfDocument document = new PdfDocument(writer); // Creates three pages PdfPage page1 = new PdfPage(); PdfPage page2 = new PdfPage(); PdfPage page3 = new PdfPage(); // Sets measurement unit for the pages page1.setMeasurementUnit(PdfMeasurement.MU_PIXELS); page2.setMeasurementUnit(PdfMeasurement.MU_PIXELS); char pathSeparator = File.separatorChar; // Creates a string representing an image pathname. // Assumes that this images exists inside a directory // "InputDocs" under the current directory. String imagePathname = "." + pathSeparator + "InputDocs" + pathSeparator + "banner_img_468_60.jpg";
// Draws image at position (100, 100) page1.drawImage(imagePathname, 100, 100);
// Draws image, rotated by 5 degrees, at position (100, 300) page1.drawImage(imagePathname, 100, 300, 5.0);
// Draws image, resized to 234 x 30 pixels, at position // (100, 500) page1.drawImage(imagePathname, 100, 500, 234, 30);
// Draws image, resized to 117 x 15 pixels and rotated by // 355 degrees, at position (100, 700) page1.drawImage(imagePathname, 100, 700, 117, 15, 355.0); // Writes text identifying the above images page1.writeText( "drawImage(String path, double x, double y) ~ " + "drawImage(imagePath, 100, 100)", 100, 70); page1.writeText( "drawImage(String path, double x, double y, double " + "rotation) ~ drawImage(imagePath, 100, 300, 5.0)", 100, 260); page1.writeText( "drawImage(String path, double x, double y, double " + "width, double height) ~ drawImage(imagePath, " + "100, 500, 234, 30)", 100, 460); page1.writeText( "drawImage(String path, double x, double y, double " + "width, double height, double rotation) ~ " + "drawImage(imagePath, 100, 700, 117, 15, 355.0)", 100, 660); // Creates four points PdfPoint point1 = new PdfPoint(100, 100); PdfPoint point2 = new PdfPoint(100, 300); PdfPoint point3 = new PdfPoint(100, 500); PdfPoint point4 = new PdfPoint(100, 700);
// Draws image at the first point page2.drawImage(imagePathname, point1);
// Draws image, rotated by 5 degrees, at the second point page2.drawImage(imagePathname, point2, 5.0);
// Draws image, resized to 234 x 30 pixels, at the third // point page2.drawImage(imagePathname, point3, 234, 30);
// Draws image, resized to 117 x 15 pixels and rotated by 5 // degrees, at the fourth point page2.drawImage(imagePathname, point4, 117, 15, 355.0); page2.writeText( "drawImage(String path, PdfPoint p) ~ drawImage" + "(imagePath, point1)", 100, 70); page2.writeText( "drawImage(String path, PdfPoint p, double " + "rotation) ~ drawImage(imagePath, point2, 5.0)", 100, 260); page2.writeText( "drawImage(String path, PdfPoint p, double width, " + "double height) ~ drawImage(imagePath, point3, " + "234, 30)", 100, 460); page2.writeText( "drawImage(String path, PdfPoint p, double width, " + "double height, double rotation) ~ drawImage" + "(imagePath, point4, 117, 15, 355.0)", 100, 660); // Creates two rectangles. // Rectangles are specified in points. // 1 pixel = 0.75 point PdfRect rect1 = new PdfRect(100 * 0.75, 100 * 0.75, 468 * 0.75, 60 * 0.75); PdfRect rect2 = new PdfRect(100 * 0.75, 300 * 0.75, 468 * 0.75, 60 * 0.75); // Draws only the second rectangle. // Drawing the first rectangle would be a waste, as it // will be obscured by the image drawn in it. page3.drawRect(rect2);
// Draws image inside first rectangle page3.drawImage(imagePathname, rect1);
// Draws image, rotated by 5 degrees, inside second rectangle page3.drawImage(imagePathname, rect2, 5.0); page3.writeText("drawImage(String path, PdfRect rect) ~ " + "drawImage(imagePathname, rect1)", 100 * 0.75, 70 * 0.75); page3.writeText("drawImage(String path, PdfRect rect, " + "double rotation) ~ drawImage(" + "imagePathname, rect2, 5.0)", 100 * 0.75, 270 * 0.75); document.add(page1); document.add(page2); document.add(page3); // Sets the file to be opened after it is written to document.setOpenAfterSave(true); // Writes the document object to file document.write(); // Closes all I/O streams associated with this writer object writer.dispose(); } // This code segment draws ellipses using several overloaded // methods public void drawEllipse_Example() throws IOException, PdfException { PdfWriter writer = PdfWriter.fileWriter( "PdfPage_drawEllipse_example.pdf"); PdfDocument document = new PdfDocument(writer); // Creates a page PdfPage page = new PdfPage(); // Sets page measurement unit to inches page.setMeasurementUnit(PdfMeasurement.MU_INCHES); // Sets pen and brush colors page.setBrushColor(Color.ORANGE); page.setPenColor(Color.RED); // Creates two points PdfPoint point1 = new PdfPoint(2, 4); PdfPoint point2 = new PdfPoint(6, 5);
// Draws an ellipse whose bounding box has its top-left corner // at (2, 1) and bottom-right corner at (3.5, 3) page.drawEllipse(2, 1, 3.5, 3, true, true);
// Draws an ellipse whose bounding box has its top-left corner // at point1 and bottom-right corner at point2 page.drawEllipse(point1, point2, true, true); // Writes text identifying the above ellipses page.writeText(". (2, 1)", 2, 1); page.writeText(". (3.5, 3)", 3.5, 3); page.writeText(". (2, 4)", 2, 4); page.writeText(". (6, 5)", 6, 5); document.add(page); // Sets the file to be opened after it is written to document.setOpenAfterSave(true); // Writes the document object to file document.write(); // Closes all I/O streams associated with this writer object writer.dispose(); } // This code segment draw circles with several overloaded methods public void drawCircle_Example() throws IOException, PdfException { PdfWriter writer = PdfWriter.fileWriter( "PdfPage_drawCircle_example.pdf"); PdfDocument document = new PdfDocument(writer); // Creates a page PdfPage page = new PdfPage(); // Sets page measurement unit to inches page.setMeasurementUnit(PdfMeasurement.MU_INCHES); // Creates a point PdfPoint point = new PdfPoint(5, 7); // Sets pen and brush colors page.setBrushColor(Color.ORANGE); page.setPenColor(Color.RED);
// Draws a circle that will be filled and will have its // border drawn page.drawCircle(2, 2, 1, true, true); // Draws a circle that will not be filled but will have itsx // border drawn page.drawCircle(6, 2, 1, false, true); // Draws a circle that will be filled and will not have its // border drawn page.drawCircle(4, 5, 1, true, false);
// Draws a circle at the point (5, 7) page.drawCircle(point, 1, true, true); // Writes text identifying the above circles page.writeText("isFill = true", 1.5, 0.5); page.writeText("isStroke = true", 1.5, 0.7); page.writeText("isFill = false", 5.5, 0.5); page.writeText("isStroke = true", 5.5, 0.7); page.writeText("isFill = true", 3.5, 3.5); page.writeText("isStroke = false", 3.5, 3.7); document.add(page); // Sets the file to be opened after it is written to document.setOpenAfterSave(true); // Writes the document object to file document.write(); // Closes all I/O streams associated with this writer object writer.dispose(); } // This code segment demonstrates how margins can be disabled and // enabled on page. public void AllMargins_Example() throws IOException, PdfException { PdfWriter writer = PdfWriter.fileWriter( "PdfPage_AllMargins_example.pdf"); PdfDocument document = new PdfDocument(writer); // Creates a A4-size page with margins 50-points long PdfPage page = new PdfPage(PdfPageSize.A4, 50, 50, 50, 50, PdfMeasurement.MU_POINTS); String s = "Four score and seven years ago our fathers " + "brought forth on this continent a new " + "nation conceived in liberty and dedicated " + "to the proposition that all men are created " + "equal. "; // Disables all margins on the page page.disableAllMargins(); // Writes text to illustrate the effect of the above statement page.writeText("[AFTER disableAllMargins()] " + s); // Enables all margins on the page page.enableAllMargins(); // Writes text to illustrate the effect of the above statement page.writeText("[AFTER enableAllMargins()] " + s); document.add(page); // Sets the file to be opened after it is written to document.setOpenAfterSave(true); // Writes the document object to file document.write(); // Closes all I/O streams associated with this writer object writer.dispose(); } // This code segment adds watermarks using overloaded methods public void AddWatermark_Example() throws IOException, PdfException { PdfWriter writer = PdfWriter.fileWriter( "PdfPage_AddWatermark_example.pdf"); PdfDocument document = new PdfDocument(writer); // Creates a PdfImage object for use in watermarks PdfImage image = PdfImage.create( ".\\InputDocs\\banner_img_468_60.jpg"); // Creates pages with specific margins PdfPage page1 = new PdfPage( PdfPageSize.A5, 25, 25, 25, 25, PdfMeasurement.MU_PIXELS); PdfPage page2 = new PdfPage( PdfPageSize.A5, 25, 25, 25, 25, PdfMeasurement.MU_PIXELS); PdfPage page3 = new PdfPage( PdfPageSize.A5, 25, 25, 25, 25, PdfMeasurement.MU_PIXELS); PdfPage page4 = new PdfPage( PdfPageSize.A5, 25, 25, 25, 25, PdfMeasurement.MU_PIXELS); PdfPage page5 = new PdfPage( PdfPageSize.A5, 25, 25, 25, 25, PdfMeasurement.MU_PIXELS); PdfPage page6 = new PdfPage( PdfPageSize.A5, 25, 25, 25, 25, PdfMeasurement.MU_PIXELS); // Creates two font objects on which will be used to // write the watermark PdfFont fontCourier = PdfFont.create("Courier", PdfFont.BOLD, 32, PdfEncodings.WINANSI); PdfFont fontArial = PdfFont.create("Arial", PdfFont.ITALIC, 18, PdfEncodings.WINANSI); // Adds PdfImage object as a watermark. It by default // attempts to write and align the watermark on the whole of // the page. page1.addWatermarkImage( image, PdfPage.HP_MIDDLE | PdfPage.VP_CENTRE, 45.0, true); // Writes text identifying the above watermark page1.writeText( "addWatermarkImage(PdfImage image, int position, double " + "angle, boolean underlay) ~ addWatermarkImage(image, " + "PdfPage.HP_MIDDLE | PdfPage.VP_CENTRE, 45.0, true)", fontArial); // Adds PdfImage object as a watermark. It attempts to write // and align the watermark within the margins on the page. page2.addWatermarkImage( image, PdfPage.HP_MIDDLE | PdfPage.VP_CENTRE, true, // applyMargins 45.0, true); page2.writeText( "addWatermarkImage(PdfImage image, int position, " + "boolean applyMargins, double angle, boolean " + "underlay) ~ addWatermarkImage(image, PdfPage.HP_" + "MIDDLE | PdfPage.VP_CENTRE, true, 45.0, true)", fontArial); // Adds image, specified by its pathname, as watermark. It by // default attempts to write and align the watermark on the // whole of the page. page3.addWatermarkImage( ".\\InputDocs\\banner_img_468_60.jpg", PdfPage.HP_MIDDLE | PdfPage.VP_CENTRE, 45.0, true); page3.writeText( "addWatermarkImage(String path, int position, " + "double angle, boolean underlay) ~ " + "addWatermarkImage(\".\\InputDocs\\banner_img_" + "468_60.jpg\", PdfPage.HP_MIDDLE | " + "PdfPage.VP_CENTRE, true,45.0, true)", fontArial); // Adds image, specified by its pathname, as watermark. // It attempts to write and align the watermark within // the margins on the page. page4.addWatermarkImage( ".\\InputDocs\\banner_img_468_60.jpg", PdfPage.HP_MIDDLE | PdfPage.VP_CENTRE, true, // applyMargins 45.0, true); page4.writeText( "addWatermarkImage(String path, int position, " + "boolean applyMargins, double angle, boolean " + "underlay) ~ .addWatermarkImage(\".\\InputDocs" + "\\banner_img_468_60.jpg\", PdfPage.HP_MIDDLE | " + "PdfPage.VP_CENTRE, true, 45.0, true)", fontArial); // Adds text as watermark. It writes and attempts to align // the watermark within the margins of the page. page5.addWatermarkText( "CONFIDENTIAL: For Eyes Only", fontCourier, PdfPage.HP_MIDDLE | PdfPage.VP_CENTRE, true, // applyMargins 45.0, true); page5.writeText( "addWatermarkText(String text, PdfFont font, int " + "position, boolean applyMargins, double angle, " + "boolean underlay) ~ addWatermarkText(\"CONFIDENTIAL:" + "For Eyes Only\", fontCourier, PdfPage.HP_MIDDLE | " + "PdfPage.VP_CENTRE, true, 45.0, true)", fontArial); // Adds text as watermark. It by default attempts to // write and align the watermark on the whole of the page page6.addWatermarkText("CONFIDENTIAL: For Eyes Only", fontCourier, PdfPage.HP_MIDDLE | PdfPage.VP_CENTRE, 45.0, true); page6.writeText( "addWatermarkText(String text, PdfFont font, int " + "position, double angle, boolean underlay) ~ " + "addWatermarkText(\"CONFIDENTIAL: For Eyes Only\", " + "fontCourier, PdfPage.HP_MIDDLE | PdfPage.VP_CENTRE, " + "45.0, true)", fontArial); document.add(page1); document.add(page2); document.add(page3); document.add(page4); document.add(page5); document.add(page6); // Sets the file to be opened after it is written to document.setOpenAfterSave(true); // Writes the document object to file document.write(); // Closes all I/O streams associated with this writer object writer.dispose(); } // This code segments adds images, specified by their pathnames, // to a page's header and footer public void HeaderNFooter_Example2() throws IOException, PdfException { PdfWriter writer = PdfWriter.fileWriter( "PdfPage_HeaderNFooter_example2.pdf"); PdfDocument document = new PdfDocument(writer); // Creates a A4-size page with 100-pixel-long header and // footer PdfPage page = new PdfPage(PdfPageSize.A4, 100, 100, 50, 50, 50, 50, PdfMeasurement.MU_PIXELS);
// Adds the first image to top-left corner of the header. // Assumes that a file with the specified pathname exists. page.addHeaderImage(".\\InputDocs\\banner_img_160_50.jpg", PdfPage.HP_LEFT | PdfPage.VP_TOP, true);
// Adds the second image on the top-left corner of the // footer. Assumes that a file with the specified pathname // exists. page.addFooterImage(".\\InputDocs\\banner_img_468_60.jpg", PdfPage.HP_LEFT | PdfPage.VP_TOP, true); document.add(page); // Sets the file to be opened after it is written to document.setOpenAfterSave(true); // Writes the document object to file document.write(); // Closes all I/O streams associated with this writer object writer.dispose(); } // This code segment adds text and images to a pages' // header and footer public void HeaderNFooter_Example1() throws IOException, PdfException { PdfWriter writer = PdfWriter.fileWriter( "PdfPage_HeaderNFooter_example1.pdf"); PdfDocument document = new PdfDocument(writer); // Creates a A4-size page with 100-pixel-long header and // footer PdfPage page = new PdfPage(PdfPageSize.A4, 100, 100, 50, 50, 50, 50, PdfMeasurement.MU_PIXELS); // Creates PdfImage objects for use in header and footer PdfImage image1 = PdfImage.create( ".\\InputDocs\\banner_img_160_50.jpg"); PdfImage image2 = PdfImage.create( ".\\InputDocs\\banner_img_468_60.jpg"); // Creates a PdfFont object PdfFont fontArial = PdfFont.create("Arial", PdfFont.ITALIC, 14, PdfEncodings.WINANSI);
// Adds the first image on the top-left corner of the header page.addHeaderImage(image1, PdfPage.HP_LEFT | PdfPage.VP_TOP, true);
// Adds the second image on the top-left corner of the footer page.addFooterImage(image2, PdfPage.HP_LEFT | PdfPage.VP_TOP, true);
// Adds text in the bottom-right corner of the header page.addHeaderText( "Gnostice Information Technologies Private Limited", fontArial, PdfPage.HP_RIGHT | PdfPage.VP_BOTTOM, true);
// Adds text in the bottom-right corner of the footer page.addFooterText( "Bangalore, India", fontArial, PdfPage.HP_RIGHT | PdfPage.VP_BOTTOM, true); document.add(page); // Sets the file to be opened after it is written to document.setOpenAfterSave(true); // Writes the document object to file document.write(); // Closes all I/O streams associated with this writer object writer.dispose(); } // This code segment demonstrates how to add an annotation to a // page public void AddAnnotation_Example() throws IOException, PdfException { PdfWriter writer = PdfWriter.fileWriter( "PdfPage_AddAnnotation_example.pdf"); PdfDocument document = new PdfDocument(writer); // Creates a text annotation PdfTextAnnot tAnnot = new PdfTextAnnot( 100, 100, PdfTextAnnot.ICON_NOTE, false); // Sets properties of the annotation tAnnot.setColor(Color.ORANGE); tAnnot.setContents( "This is to demonstrate how to add a text " + "annotation to a page"); tAnnot.setTitle("Adding a Text Annotation to a Page"); tAnnot.setSubject("A demonstration"); PdfPage page = new PdfPage();
// Adds the annotation to the page page.addAnnotation(tAnnot); page.writeText("Check this out!", 120, 100); document.add(page); // Sets the file to be opened after it is written to document.setOpenAfterSave(true); // Writes the document object to file document.write(); // Closes all I/O streams associated with this writer object writer.dispose(); }
// This code segment draws an arc public void drawArc_Example() throws IOException, PdfException { PdfWriter writer = PdfWriter.fileWriter( "PdfPage_drawArc_example.pdf"); PdfDocument document = new PdfDocument(writer); PdfPage page = new PdfPage(); // Creates a rectangle PdfRect rectangle = new PdfRect(150, 200, 300, 300); // Draws an arc page.drawArc(rectangle, 22.5, 235); // Draws a rectangle to identify the bounding box of the // imaginary circle that completes the arc page.drawRect(rectangle); document.add(page); // Sets the file to be opened after it is written to document.setOpenAfterSave(true); // Writes the document object to file document.write(); // Closes all I/O streams associated with this writer object writer.dispose(); } // This code segment writes text on pages using several // overloaded methods public void writeText_Example4() throws IOException, PdfException { // Creates a PdfWriter instance PdfWriter writer = PdfWriter.fileWriter( "PdfPage_writeText_example4.pdf"); // Creates a PdfDocument instance with the PdfWriter instance PdfDocument document = new PdfDocument(writer);
PdfPage page1 = new PdfPage(); String s1 = "1. writeText(String str) ~ writeText(s1)"; // Writes specified text page1.writeText(s1);
PdfPage page2 = new PdfPage(300, 300); String s2 = "2. writeText(String str, boolean wrap) ~ writeText(s2, " + "PdfTextFormatter.WRAP)"; // Writes wrapped text page2.writeText(s2, PdfTextFormatter.WRAP);
PdfPage page3 = new PdfPage(); String s3 = "3. writeText(String str, int alignment) ~ " + "writeText(s3, PdfTextFormatter.CENTER)"; // Writes right-aligned text page3.writeText(s3, PdfTextFormatter.RIGHT);
PdfPage page4 = new PdfPage(500, 500); String s4 = "4. writeText(String str, int alignment, boolean " + "wrap) ~ writeText(s4, PdfTextFormatter.LEFT, " + "PdfTextFormatter.WRAP)"; // Writes left-aligned and wrapped page4.writeText(s4, PdfTextFormatter.LEFT, PdfTextFormatter.WRAP);
String s5 = "5. writeText(String str, double x, double y) ~ " + "writeText(s5, 100, 100)"; // Writes text at position (100, 100) page4.writeText(s5, 100, 100);
String s6 = "6. writeText(String str, double x, double y, boolean " + "wrap) ~ writeText(s6, 100, 400, " + "PdfTextFormatter.NO_WRAP)"; // Writes wrapped text at position (100, 200) page4.writeText(s6, 100, 200, PdfTextFormatter.NO_WRAP);
String s7 = "7. writeText(String s, double x, double y, double " + "rotation) ~ writeText(s7, 100, 200, 5.0)"; // Writes text rotated by 5 degrees at position (100, 300) page4.writeText(s7, 100, 300, 5.0);
String s8 = "8. writeText(String str, double x, double y, int " + "alignment) ~ writeText(s8, 400, 300, " + "PdfTextFormatter.CENTER)"; // Writes center-aligned text at position (400, 400) page4.writeText(s8, 400, 400, PdfTextFormatter.CENTER);
String s9 = "9. writeText(String str, double x, double y, int " + "alignment, boolean wrap) ~ writeText(s9, 400, 400, " + "PdfTextFormatter.CENTER, PdfTextFormatter.NO_WRAP)"; // Writes center-aligned and non-wrapped text at position // (100, 500) page4.writeText(s9, 100, 500, PdfTextFormatter.CENTER, PdfTextFormatter.NO_WRAP); document.add(page1); document.add(page2); document.add(page3); document.add(page4); // Sets the file to be opened after it is written to document.setOpenAfterSave(true); // Writes the document object to file document.write(); // Closes all I/O streams associated with this writer object writer.dispose(); } // This code segment writes text on pages using several // overloaded methods public void writeText_Example3() throws IOException, PdfException { // Creates a PdfWriter instance PdfWriter writer = PdfWriter.fileWriter( "PdfPage_writeText_example3.pdf"); // Creates a PdfDocument instance with the PdfWriter instance PdfDocument document = new PdfDocument(writer); // Creates an Arial font object PdfFont fontArial = PdfFont.create( "Arial", PdfFont.ITALIC | PdfFont.STROKE_AND_FILL, 16, PdfEncodings.WINANSI);
PdfPage page1 = new PdfPage(); String s1 = "1. writeText(String str, PdfFont f) ~ writeText(s1, " + "fontArial)"; // Writes text with Arial font page1.writeText(s1, fontArial);
PdfPage page2 = new PdfPage(); String s2 = "2. writeText(String str, PdfFont f, boolean wrap) ~ " + "writeText(s2, fontArial, PdfTextFormatter.WRAP);"; // Writes wrapped text with Arial font page2.writeText(s2, fontArial, PdfTextFormatter.WRAP);
PdfPage page3 = new PdfPage(); String s3 = "3. writeText(String str, PdfFont f, double x, double " + "y) ~ writeText(s3, fontArial, 100, 100)"; // Writes text with Arial font at position (100, 100) page3.writeText(s3, fontArial, 100, 100);
PdfPage page4 = new PdfPage(); String s4 = "4. writeText(String str, PdfFont f, double x, double " + "y, boolean wrap) ~ writeText(s4, fontArial, 100, " + "100, PdfTextFormatter.NO_WRAP)"; // Writes non-wrapped text with Arial font at position // (100, 100) page4.writeText(s4, fontArial, 100, 100, PdfTextFormatter.NO_WRAP);
PdfPage page5 = new PdfPage(); String s5 = "5. writeText(String s, PdfFont f, double x, double " + "y, double rotation) ~ writeText(s5, fontArial, " + "100.0, 100.0, 5.0)"; // Writes text, rotated by 5 degrees, with Arial font at x // position (100, 100) page5.writeText(s5, fontArial, 100.0, 100.0, 5.0);
PdfPage page6 = new PdfPage(); String s6 = "6. writeText(String str, PdfFont f, int alignment) ~ " + "writeText(s6, fontArial, PdfTextFormatter.RIGHT)"; // Writes right-aligned text with Arial font page6.writeText(s6, fontArial, PdfTextFormatter.RIGHT);
PdfPage page7 = new PdfPage(); String s7 = "7. writeText(String str, PdfFont f, int alignment, " + "boolean wrap) ~ writeText(s7, fontArial, " + "PdfTextFormatter.RIGHT, PdfTextFormatter.WRAP)"; // Writes right-aligned wrapped text with Arial font page7.writeText(s7, fontArial, PdfTextFormatter.RIGHT, PdfTextFormatter.WRAP);
PdfPage page8 = new PdfPage(); String s8 = "8. writeText(String str, PdfFont f, int alignment, " + "double x, double y) ~ writeText(s8, fontArial, " + "PdfTextFormatter.RIGHT, 100.0, 100.0)"; // Writes right-aligned text with Arial font at position // (100, 100) page8.writeText(s8, fontArial, PdfTextFormatter.RIGHT, 100.0, 100.0);
PdfPage page9 = new PdfPage(); String s9 = "9. writeText(String str, PdfFont f, int alignment, " + "double x, double y, boolean wrap) ~ writeText(s9, " + "fontArial, PdfTextFormatter.CENTER, 100.0, 100.0, " + "PdfTextFormatter.WRAP)"; // Writes right-aligned text with Arial font at position // (100, 100) page9.writeText(s9, fontArial, PdfTextFormatter.CENTER, 100.0, 100.0, PdfTextFormatter.WRAP); document.add(page1); document.add(page2); document.add(page3); document.add(page4); document.add(page5); document.add(page6); document.add(page7); document.add(page8); document.add(page9); // Sets the file to be opened after it is written to document.setOpenAfterSave(true); // Writes the document object to file document.write(); // Closes all I/O streams associated with this writer object writer.dispose(); } // This code segment writes text on pages using several // overloaded method public void writeText_Example2() throws IOException, PdfException { // Creates a PdfWriter instance PdfWriter writer = PdfWriter.fileWriter( "PdfPage_writeText_example2.pdf"); // Creates a PdfDocument instance with the PdfWriter instance PdfDocument document = new PdfDocument(writer); // Creates two pages PdfPage page1 = new PdfPage(); PdfPage page2 = new PdfPage(); // Creates some PdfPoint objects PdfPoint point1 = new PdfPoint(100, 100); PdfPoint point2 = new PdfPoint(200, 200); PdfPoint point3 = new PdfPoint(300, 300); PdfPoint point4 = new PdfPoint(100, 400); PdfPoint point5 = new PdfPoint(100, 500);
String s1 = ". (100, 100) point1 [writeText(String str, PdfPoint p) " + "~ writeText(s1, point1)]"; // Writes text at a specified point page1.writeText(s1, point1);
String s2 = ". (200, 200) point2 [writeText(String str, PdfPoint p, " + "boolean wrap) ~ writeText(s2, point2, " + "PdfTextFormatter.WRAP)]"; // Writes wrapped text at a specified point page1.writeText(s2, point2, PdfTextFormatter.WRAP);
String s3 = ". (300, 300) point3 [writeText(String str, PdfPoint p, " + "int alignment) ~ writeText(s3, point3, " + "PdfTextFormatter.RIGHT)]"; // Writes right-aligned text a specified point page1.writeText(s3, point3, PdfTextFormatter.RIGHT);
// String s4 = // ". (100, 400) point4 [writeText(String s, PdfPoint p, " // + "double rotation) ~ writeText(s4, point4, 355.0)]"; // String kept deliberately small as the following method // requires single-line text String s4 = ". (100, 400) point4 "; // Writes text tilted by 355 degrees at specified point page1.writeText(s4, point4, 355.0);
String s5 = ". (100, 500) point5 [writeText(String str, PdfPoint p, " + "int alignment, boolean wrap) ~ writeText(s5, point5, " + "PdfTextFormatter.LEFT, PdfTextFormatter.NO_WRAP)]"; // Writes text left-aligned and wrapped text at specified // point page1.writeText(s5, point5, PdfTextFormatter.LEFT, PdfTextFormatter.NO_WRAP); // Creates a Helvetica font object PdfFont fontHelvetica = PdfFont.create("Helvetica", PdfFont.ITALIC | PdfFont.STROKE_AND_FILL, 16, PdfEncodings.WINANSI); // Creates a Courier font object PdfFont fontCourier = PdfFont.create("Courier", PdfFont.ITALIC | PdfFont.STROKE_AND_FILL, 16, PdfEncodings.WINANSI);
String s6 = ". (100, 100) point1 [writeText(String str, PdfFont f, " + "PdfPoint p) ~ writeText(s1, fontHelvetica, point1)]"; // Writes text in Helvetica font at specified point page2.writeText(s6, fontHelvetica, point1);
String s7 = ". (200, 200) point2 [writeText(String str, PdfFont f, " + "PdfPoint p, boolean wrap) ~ writeText(s2, " + "fontCourier, point2, PdfTextFormatter.WRAP)]"; // Writes wrapped text in Courier font at specified point page2.writeText(s7, fontCourier, point2, PdfTextFormatter.WRAP);
String s8 = ". (300, 300) point3 [writeText(String str, PdfFont f, " + "int alignment, PdfPoint p) ~ writeText(s8, " + "fontHelvetica, PdfTextFormatter.RIGHT, point3)]"; // Writes right-aligned text with Helvetica font at specified // point page2.writeText(s8, fontHelvetica, PdfTextFormatter.RIGHT, point3);
String s9 = ". (100, 400) point4 [writeText(String s, " + "PdfFont f, PdfPoint p, double rotation) ~ " + "writeText(s9, fontCourier, point4, 355.0)]"; // Writes text, tilted by 355 degrees, with Courier font at // specified point page2.writeText(s9, fontCourier, point4, 355.0);
String s10 = ". (100, 500) [writeText(String str, PdfFont f, int " + "alignment, PdfPoint p, boolean wrap) ~ " + "writeText(s10, fontHelvetica, PdfTextFormatter.LEFT, " + "point5, PdfTextFormatter.NO_WRAP)]"; // Writes left-aligned non-wrapped text with Helvetica font at // specified point page2.writeText(s10, fontHelvetica, PdfTextFormatter.LEFT, point5, PdfTextFormatter.NO_WRAP); // Adds the two pages document.add(page1); document.add(page2); // Sets the file to be opened after it is written to document.setOpenAfterSave(true); // Writes the document object to file document.write(); // Closes all I/O streams associated with this writer object writer.dispose(); } // This code segment creates pages using several constructors public void WriteText_Example1() throws IOException, PdfException { // Creates a PdfWriter instance PdfWriter writer = PdfWriter.fileWriter( "PdfPage_writeText_example1.pdf"); // Creates a PdfDocument instance with the PdfWriter instance PdfDocument document = new PdfDocument(writer); // Creates two pages PdfPage page1 = new PdfPage(); PdfPage page2 = new PdfPage(); // Creates four rectangles PdfRect rectangle1 = new PdfRect(100, 100, 400, 50); PdfRect rectangle2 = new PdfRect(100, 175, 500, 75); PdfRect rectangle3 = new PdfRect(200, 300, 300, 100); PdfRect rectangle4 = new PdfRect(100, 450, 500, 75); // Draws the rectangles on the pages page1.drawRect(rectangle1); page1.drawRect(rectangle2); page1.drawRect(rectangle3); page1.drawRect(rectangle4); page2.drawRect(rectangle1); page2.drawRect(rectangle2); page2.drawRect(rectangle3); page2.drawRect(rectangle4); // Creates a Helvetica font PdfFont fontHelvetica = PdfFont.create( "Helvetica", PdfFont.ITALIC | PdfFont.STROKE_AND_FILL, 16, PdfEncodings.WINANSI);
String s1 = "1. writeText(String str, PdfRect rect) ~ " + "writeText(s1, rectangle1)"; // Writes text inside the specified rectangle on page 1 page1.writeText(s1, rectangle1);
String s2 = "2. writeText(String str, PdfRect rect, int " + "alignment) ~ writeText(s2, rectangle2, " + "PdfTextFormatter.CENTER)"; // Writes center-aligned text inside specified rectangle on // page 1 page1.writeText(s2, rectangle2, PdfTextFormatter.CENTER);
String s3 = "3. writeText(String str, PdfFont f, PdfRect " + "rect) ~ writeText(s3, fontHelvetica, " + "rectangle3)"; // Writes text with Helvetica font inside specified rectangle // on page 1 page1.writeText(s3, fontHelvetica, rectangle3);
String s4 = "4. writeText(String str, PdfFont f, PdfRect " + "rect, int alignment) ~ writeText(s4, " + "rectangle4, PdfTextFormatter.RIGHT)"; // Writes right-aligned text inside specified rectangle on // page 1 page1.writeText(s4, rectangle4, PdfTextFormatter.RIGHT);
String s5 = "5. writeText(String str, PdfRect rect, double " + "rotation, double firstLinePosition) ~ " + "writeText(s5, rectangle1, 5.0, 100)"; // Writes text rotated by 5.0 degrees and with its first line // offset by 100 points inside specified rectangle on page 2 page2.writeText(s5, rectangle1, 5.0, 100);
String s6 = "6. writeText(String str, PdfRect rect, int alignment, " + "double rotation, double firstLinePosition) ~ " + "writeText(s6, rectangle2, PdfTextFormatter.LEFT, " + "355.0, 50)"; // Writes left-aligned text rotated by 355 degrees and with // its first line offset by 50 points inside specified // rectangle on page 2 page2.writeText(s6, rectangle2, PdfTextFormatter.LEFT, 355.0, 50);
String s7 = "7. writeText(String str, PdfFont f, PdfRect rect, " + "double rotation, double firstLinePosition) ~ " + "writeText(s7, fontHelvetica, rectangle3, 5.0, 125)"; // Writes text rotated by 5 degrees with Helvetica font and // with its first line offset by 125 points inside specified // rectangle on page2 page2.writeText(s7, fontHelvetica, rectangle3, 5.0, 125);
String s8 = "8. writeText(String str, PdfFont f, PdfRect rect, " + "int alignment, double rotation, double " + "firstLinePosition) ~ writeText(s8, fontHelvetica, " + "rectangle4, PdfTextFormatter.LEFT, 355, 25.0)"; // Writes left-aligned text rotated by 355 degrees with // Helvetica font and with its first line offset by 25 points // inside specified rectangle on page 2 page2.writeText(s8, fontHelvetica, rectangle4, PdfTextFormatter.LEFT, 355, 25.0); document.add(page1); document.add(page2); // Sets the file to be opened after it is written to document.setOpenAfterSave(true); // Writes the document object to file document.write(); // Closes all I/O streams associated with this writer object writer.dispose(); } // This code segment creates pages using several constructors public void PdfPage_Example() throws IOException, PdfException { // Creates a PdfWriter instance PdfWriter writer = PdfWriter.fileWriter( "PdfPage_Example.pdf"); // Creates a PdfDocument instance with the PdfWriter instance PdfDocument document = new PdfDocument(writer); // Creates a page with the default constructor PdfPage page1 = new PdfPage(); // Creates a page with a standard page size PdfPage page2 = new PdfPage(PdfPageSize.A4); // Creates a page with a standard page size. Also, specifies // size of its margins in pixels. PdfPage page3 = new PdfPage( PdfPageSize.A3, // pageSize 100, // pageLeftMargin 100, // pageTopMargin 100, // pageRightMargin 100, // pageBottomMargin PdfMeasurement.MU_PIXELS // measurementUnit ); // Creates a page with a standard page size. Also, specifies // size of its header, footer, and margins in pixels. PdfPage page4 = new PdfPage( PdfPageSize.A3, // pageSize 150, // pageHeaderHeight 150, // pageFooterHeight 100, // pageLeftMargin 100, // pageTopMargin 100, // pageRightMargin 100, // pageBottomMargin PdfMeasurement.MU_PIXELS // measurementUnit ); // Creates a page with its width and height specified in // points PdfPage page5 = new PdfPage( 600, // width 800 // height ); // Creates a page with its width and height specified in // inches PdfPage page6 = new PdfPage( 600.0/72, // width 800.0/72, // height PdfMeasurement.MU_INCHES // measurementUnit ); // Creates a page with its width, height, and margins // specified in pixels PdfPage page7 = new PdfPage( 600, // width 800, // height 50, // pageLeftMargin 50, // pageTopMargin 50, // pageRightMargin 50, // pageBottomMargin PdfMeasurement.MU_PIXELS // measurementUnit ); // Creates a page with its width, height, header, footer, and // margins specified in pixels PdfPage page8 = new PdfPage( 600, // width 800, // height 150, // pageHeaderHeight 150, // pageFooterHeight 50, // pageLeftMargin 50, // pageTopMargin 50, // pageRightMargin 50, // pageBottomMargin PdfMeasurement.MU_PIXELS // measurementUnit ); // Sets text alignment to both side margins page3.getTextFormatter().setAlignment( PdfTextFormatter.JUSTIFIED); page4.getTextFormatter().setAlignment( PdfTextFormatter.JUSTIFIED); page7.getTextFormatter().setAlignment( PdfTextFormatter.JUSTIFIED); page8.getTextFormatter().setAlignment( PdfTextFormatter.JUSTIFIED); // Writes text identifying the pages page1.writeText("This page was created with default " + "constructor [PdfPage()]"); page2.writeText( "This A4-size page was created with constructor " + "[PdfPage(int pageSize) ~ " + "PdfPage(PdfPageSize.A4)]"); page3.writeText( "This A3-size page was created with constructor " + "[PdfPage(int pageSize, double pageLeftMargin, " + "double pageTopMargin, double pageRightMargin, " + "double pageBottomMargin, int measurementUnit) " + "~ PdfPage(PdfPageSize.A3, 100, 100, 100, 100, " + "PdfMeasurement.MU_PIXELS)]"); page4.writeText( "This B4-size page was created with constructor" + "[PdfPage(int pageSize, double pageHeaderHeight, " + "double pageFooterHeight, double pageLeftMargin, " + "double pageTopMargin, double pageRightMargin, " + "double pageBottomMargin, int measurementUnit) ~ " + "PdfPage(PdfPageSize.B4, 150, 150, 100, 100, 100, " + "100, PdfMeasurement.MU_PIXELS)]"); page5.writeText( "This page was created with constructor " + "[PdfPage(double width, double height) ~ " + "PdfPage(600, 800)]"); page6.writeText( "This page was created with constructor " + "[PdfPage(double width, double height, int " + "measurementUnit) ~ PdfPage(600.0/72, 800.0/72, " + "PdfMeasurement.MU_INCHES)]"); page7.writeText( "This page was created with constructor " + "[PdfPage(double width, double height, double " + "pageLeftMargin, double pageTopMargin, double " + "pageRightMargin, double pageBottomMargin, int " + "measurementUnit) ~ PdfPage(600, 800, 100, 100, " + "100, PdfMeasurement.MU_PIXELS)]"); page8.writeText( "This A4-size page was created with constructor " + "[PdfPage(double width, double height, double " + "pageHeaderHeight, double pageFooterHeight, double " + "pageLeftMargin, double pageTopMargin, double " + "pageRightMargin, double pageBottomMargin, int " + "measurementUnit) ~ PdfPage(600, 800, 150, 150, " + "50, 50, 50, 50, PdfMeasurement.MU_PIXELS)]"); // Creates a font (for use in headers and footers) PdfFont fontHelvetica = PdfFont.create( "Helvetica", PdfFont.ITALIC | PdfFont.STROKE_AND_FILL, 24, PdfEncodings.WINANSI); // Writes headers page4.addHeaderText( "This text goes to the header. This text goes to " + "the header. This text goes to the header. This " + "text goes to the header. This text goes to the " + "header.", fontHelvetica, PdfPage.HP_LEFT | PdfPage.VP_TOP, true); page8.addHeaderText( "This text goes to the header. This text goes to " + "the header. This text goes to the header. This " + "text goes to the header. This text goes to the " + "header.", fontHelvetica, PdfPage.HP_LEFT | PdfPage.VP_TOP, true); // Writes footers page4.addFooterText( "This text goes to the footer. This text goes to " + "the footer. This text goes to the footer. This " + "text goes to the footer. This text goes to the " + "footer.", fontHelvetica, PdfPage.HP_LEFT | PdfPage.VP_TOP, true); page8.addFooterText( "This text goes to the footer. This text goes to " + "the footer. This text goes to the footer. This " + "text goes to the footer. This text goes to the " + "footer.", fontHelvetica, PdfPage.HP_LEFT | PdfPage.VP_TOP, true); // Adds the pages to the document document.add(page1); document.add(page2); document.add(page3); document.add(page4); document.add(page5); document.add(page6); document.add(page7); document.add(page8); // Sets the file to be opened after it is written to document.setOpenAfterSave(true); // Writes the document object to file document.write(); // Closes all I/O streams associated with this writer object writer.dispose(); } }