Java Code Examples for org.apache.pdfbox.pdmodel.PDPageContentStream#stroke()
The following examples show how to use
org.apache.pdfbox.pdmodel.PDPageContentStream#stroke() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: RotatedTextOnLine.java From testarea-pdfbox2 with Apache License 2.0 | 6 votes |
/** * <a href="https://stackoverflow.com/questions/52054396/rotate-text-in-pdfbox-with-java"> * Rotate text in pdfbox with java * </a> * <p> * This test shows how to show rotated text above a line. * </p> */ @Test public void testRotatedTextOnLineForCedrickKapema() throws IOException { PDDocument doc = new PDDocument(); PDPage page = new PDPage(); doc.addPage(page); PDPageContentStream cos = new PDPageContentStream(doc, page); cos.transform(Matrix.getRotateInstance(-Math.PI / 6, 100, 650)); cos.moveTo(0, 0); cos.lineTo(125, 0); cos.stroke(); cos.beginText(); String text = "0.72"; cos.newLineAtOffset(50, 5); cos.setFont(PDType1Font.HELVETICA_BOLD, 12); cos.showText(text); cos.endText(); cos.close(); doc.save(new File(RESULT_FOLDER, "TextOnLine.pdf")); doc.close(); }
Example 2
Source File: DrawingUtil.java From easytable with MIT License | 5 votes |
public static void drawLine(PDPageContentStream contentStream, PositionedLine line) throws IOException { contentStream.moveTo(line.getStartX(), line.getStartY()); contentStream.setLineWidth(line.getWidth()); contentStream.lineTo(line.getEndX(), line.getEndY()); contentStream.setStrokingColor(line.getColor()); contentStream.stroke(); contentStream.setStrokingColor(line.getResetColor()); }
Example 3
Source File: PDFCreator.java From Knowage-Server with GNU Affero General Public License v3.0 | 5 votes |
private static void drawRect(PDPageContentStream contentStream, Color color, Rectangle rect, boolean fill) throws IOException { contentStream.addRect(rect.x, rect.y, rect.width, rect.height); if (fill) { contentStream.setNonStrokingColor(color); contentStream.fill(); } else { contentStream.setStrokingColor(color); contentStream.stroke(); } }
Example 4
Source File: PdfBoxHelper.java From cat-boot with Apache License 2.0 | 5 votes |
public static void addTextSimpleUnderlined(PDPageContentStream stream, PdfTextStyle textConfig, float textX, float textY, String text) { addTextSimple(stream, textConfig, textX, textY, text); try { float lineOffset = textConfig.getFontSize() / 8F; stream.setStrokingColor(textConfig.getColor()); stream.setLineWidth(0.5F); stream.moveTo(textX, textY - lineOffset); stream.lineTo(textX + getTextWidth(textConfig.getCurrentFontStyle(), textConfig.getFontSize(), text), textY - lineOffset); stream.stroke(); } catch (IOException e) { e.printStackTrace(); } }
Example 5
Source File: AddImage.java From testarea-pdfbox2 with Apache License 2.0 | 5 votes |
/** * <a href="https://stackoverflow.com/questions/50988007/clip-an-image-with-pdfbox"> * Clip an image with PDFBOX * </a> * <p> * This test demonstrates how to clip an image and frame the clipping area. * </p> */ @SuppressWarnings("deprecation") @Test public void testImageAddClipped() throws IOException { try ( InputStream imageResource = getClass().getResourceAsStream("Willi-1.jpg") ) { PDDocument doc = new PDDocument(); PDImageXObject pdImage = PDImageXObject.createFromByteArray(doc, ByteStreams.toByteArray(imageResource), "Willi"); int w = pdImage.getWidth(); int h = pdImage.getHeight(); PDPage page = new PDPage(); doc.addPage(page); PDRectangle cropBox = page.getCropBox(); PDPageContentStream contentStream = new PDPageContentStream(doc, page); contentStream.setStrokingColor(25, 200, 25); contentStream.setLineWidth(4); contentStream.moveTo(cropBox.getLowerLeftX(), cropBox.getLowerLeftY() + h/2); contentStream.lineTo(cropBox.getLowerLeftX() + w/3, cropBox.getLowerLeftY() + 2*h/3); contentStream.lineTo(cropBox.getLowerLeftX() + w, cropBox.getLowerLeftY() + h/2); contentStream.lineTo(cropBox.getLowerLeftX() + w/3, cropBox.getLowerLeftY() + h/3); contentStream.closePath(); //contentStream.clip(); contentStream.appendRawCommands("W "); contentStream.stroke(); contentStream.drawImage(pdImage, cropBox.getLowerLeftX(), cropBox.getLowerLeftY(), w, h); contentStream.close(); doc.save(new File(RESULT_FOLDER, "image-clipped.pdf")); doc.close(); } }
Example 6
Source File: PdfManipulator.java From estatio with Apache License 2.0 | 5 votes |
private void addBox( final float x, final float y, final float height, final PDPageContentStream cs) throws IOException { cs.setLineWidth(BOX_LINE_WIDTH); cs.setStrokingColor(Color.DARK_GRAY); cs.addRect( x - (float) BOX_LINE_WIDTH, y - (float) BOX_LINE_WIDTH, BOX_WIDTH + 2* (float) BOX_LINE_WIDTH, height + 2* (float) BOX_LINE_WIDTH); cs.stroke(); cs.setNonStrokingColor(BOX_FILL); cs.addRect(x, y, BOX_WIDTH, height); cs.fill(); }
Example 7
Source File: ReportTableWithVerticalLines.java From cat-boot with Apache License 2.0 | 4 votes |
private void placeBorders(PDPageContentStream stream, float startY, float endY, float x, float allowedWidth) throws IOException { if (border) { stream.setStrokingColor(0, 0, 0); stream.setLineWidth(0.3f); float y0 = startY - BORDER_Y_DELTA; float y1 = endY - (BORDER_Y_DELTA + 1); if (!noInnerBorders) { if (!noTopBorder || noTopBorder && !placeFirstBorder) { stream.moveTo(x, y0); stream.lineTo(x + allowedWidth, y0); stream.stroke(); } if (!noBottomBorder || noBottomBorder && !placeLastBorder) { stream.moveTo(x, y1); stream.lineTo(x + allowedWidth, y1); stream.stroke(); } } else { if (!noTopBorder && placeFirstBorder) { stream.moveTo(x, y0); stream.lineTo(x + allowedWidth, y0); stream.stroke(); } if (!noBottomBorder && placeLastBorder) { stream.moveTo(x, y1); stream.lineTo(x + allowedWidth, y1); stream.stroke(); } } if(!noHorizontalBorders) { float currX = x; stream.moveTo(currX, y0); stream.lineTo(currX, y1); stream.stroke(); for (float width : cellWidths) { if (!noInnerBorders) { stream.moveTo(currX, y0); stream.lineTo(currX, y1); stream.stroke(); } currX += width * allowedWidth; } stream.moveTo(currX, y0); stream.lineTo(currX, y1); stream.stroke(); } } }
Example 8
Source File: ReportTable.java From cat-boot with Apache License 2.0 | 4 votes |
private void drawLine(PDPageContentStream stream, float x0, float x1, float y0, float y1) throws IOException { stream.moveTo(x0, y0); stream.lineTo(x1, y1); stream.stroke(); }
Example 9
Source File: TestEmptySignatureField.java From testarea-pdfbox2 with Apache License 2.0 | 4 votes |
/** * <a href="http://stackoverflow.com/questions/37601092/pdfbox-identify-specific-pages-and-functionalities-recommendations"> * PDFBox identify specific pages and functionalities recommendations * </a> * * <p> * This test shows how to add an empty signature field with a custom appearance * to an existing PDF. * </p> */ @Test public void testAddEmptySignatureField() throws IOException { try ( InputStream sourceStream = getClass().getResourceAsStream("test.pdf"); OutputStream output = new FileOutputStream(new File(RESULT_FOLDER, "test-with-empty-sig-field.pdf"))) { PDFont font = PDType1Font.HELVETICA; PDResources resources = new PDResources(); resources.put(COSName.getPDFName("Helv"), font); PDDocument document = Loader.loadPDF(sourceStream); PDAcroForm acroForm = new PDAcroForm(document); acroForm.setDefaultResources(resources); document.getDocumentCatalog().setAcroForm(acroForm); PDRectangle rect = new PDRectangle(50, 750, 200, 50); PDAppearanceDictionary appearanceDictionary = new PDAppearanceDictionary(); PDAppearanceStream appearanceStream = new PDAppearanceStream(document); appearanceStream.setBBox(rect.createRetranslatedRectangle()); appearanceStream.setResources(resources); appearanceDictionary.setNormalAppearance(appearanceStream); PDPageContentStream contentStream = new PDPageContentStream(document, appearanceStream); contentStream.setStrokingColor(Color.BLACK); contentStream.setNonStrokingColor(Color.LIGHT_GRAY); contentStream.setLineWidth(2); contentStream.addRect(0, 0, rect.getWidth(), rect.getHeight()); contentStream.fill(); contentStream.moveTo(1 * rect.getHeight() / 4, 1 * rect.getHeight() / 4); contentStream.lineTo(2 * rect.getHeight() / 4, 3 * rect.getHeight() / 4); contentStream.moveTo(1 * rect.getHeight() / 4, 3 * rect.getHeight() / 4); contentStream.lineTo(2 * rect.getHeight() / 4, 1 * rect.getHeight() / 4); contentStream.moveTo(3 * rect.getHeight() / 4, 1 * rect.getHeight() / 4); contentStream.lineTo(rect.getWidth() - rect.getHeight() / 4, 1 * rect.getHeight() / 4); contentStream.stroke(); contentStream.setNonStrokingColor(Color.DARK_GRAY); contentStream.beginText(); contentStream.setFont(font, rect.getHeight() / 5); contentStream.newLineAtOffset(3 * rect.getHeight() / 4, -font.getBoundingBox().getLowerLeftY() * rect.getHeight() / 5000); contentStream.showText("Customer"); contentStream.endText(); contentStream.close(); PDSignatureField signatureField = new PDSignatureField(acroForm); signatureField.setPartialName("SignatureField"); PDPage page = document.getPage(0); PDAnnotationWidget widget = signatureField.getWidgets().get(0); widget.setAppearance(appearanceDictionary); widget.setRectangle(rect); widget.setPage(page); page.getAnnotations().add(widget); acroForm.getFields().add(signatureField); document.save(output); document.close(); } }
Example 10
Source File: TextAndGraphics.java From testarea-pdfbox2 with Apache License 2.0 | 4 votes |
/** * <a href="https://stackoverflow.com/questions/44503236/how-to-write-text-draw-a-line-and-then-again-write-text-in-a-pdf-file-using-pdf"> * How to write text, draw a line and then again write text in a pdf file using PDFBox * </a> * <p> * This test shows how to draw tetx, then graphics, then again text. * </p> */ @Test public void testDrawTextLineText() throws IOException { PDFont font = PDType1Font.HELVETICA; float fontSize = 14; float fontHeight = fontSize; float leading = 20; SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy.MM.dd"); Date date = new Date(); PDDocument doc = new PDDocument(); PDPage page = new PDPage(); doc.addPage(page); PDPageContentStream contentStream = new PDPageContentStream(doc, page); contentStream.setFont(font, fontSize); float yCordinate = page.getCropBox().getUpperRightY() - 30; float startX = page.getCropBox().getLowerLeftX() + 30; float endX = page.getCropBox().getUpperRightX() - 30; contentStream.beginText(); contentStream.newLineAtOffset(startX, yCordinate); contentStream.showText("Entry Form � Header"); yCordinate -= fontHeight; //This line is to track the yCordinate contentStream.newLineAtOffset(0, -leading); yCordinate -= leading; contentStream.showText("Date Generated: " + dateFormat.format(date)); yCordinate -= fontHeight; contentStream.endText(); // End of text mode contentStream.moveTo(startX, yCordinate); contentStream.lineTo(endX, yCordinate); contentStream.stroke(); yCordinate -= leading; contentStream.beginText(); contentStream.newLineAtOffset(startX, yCordinate); contentStream.showText("Name: XXXXX"); contentStream.endText(); contentStream.close(); doc.save(new File(RESULT_FOLDER, "textLineText.pdf")); }