Refine search
public static void main(String[] args) throws IOException try (PDDocument document = new PDDocument()) PDPage page = new PDPage(PDRectangle.A4); document.addPage(page); try (PDPageContentStream stream = new PDPageContentStream(document, page)) stream.beginText(); stream.setFont(font, 12); stream.setLeading(12 * 1.2f); stream.newLineAtOffset(50, 600); stream.showText("PDFBox's Unicode with Embedded TrueType Font"); stream.newLine(); stream.showText("Supports full Unicode text ☺"); stream.newLine(); stream.showText("English русский язык Tiếng Việt"); stream.newLine(); stream.showText("Ligatures: \uFB01lm \uFB02ood"); stream.endText(); document.save("example.pdf");
try doc = new PDDocument(); PDPage page = new PDPage(); doc.addPage(page); PDPageContentStream contentStream = new PDPageContentStream(doc, page); float leading = 1.5f * fontSize; PDRectangle mediabox = page.getMediaBox(); float margin = 72; float width = mediabox.getWidth() - 2*margin; float startX = mediabox.getLowerLeftX() + margin; float startY = mediabox.getUpperRightY() - margin; contentStream.beginText(); contentStream.setFont(pdfFont, fontSize); contentStream.newLineAtOffset(startX, startY); for (String line: lines) contentStream.showText(line); contentStream.newLineAtOffset(0, -leading); contentStream.endText(); contentStream.close(); doc.save(new File(RESULT_FOLDER, "break-long-string.pdf"));
PDDocument document = new PDDocument(); InputStream in = new FileInputStream(someImage); BufferedImage bimg = ImageIO.read(in); float width = bimg.getWidth(); float height = bimg.getHeight(); PDPage page = new PDPage(new PDRectangle(width, height)); document.addPage(page); PDXObjectImage img = new PDJpeg(document, new FileInputStream(someImage)); PDPageContentStream contentStream = new PDPageContentStream(document, page); contentStream.drawImage(img, 0, 0); contentStream.close(); in.close(); document.save("test.pdf"); document.close();
contentStream.drawLine(margin, nexty, margin+tableWidth, nexty); nexty-= rowHeight; contentStream.drawLine(nextx, y, nextx, y-tableHeight); nextx += colWidth; contentStream.setFont( PDType1Font.HELVETICA_BOLD , 12 ); for(int j = 0 ; j < content[i].length; j++){ String text = content[i][j]; contentStream.beginText(); contentStream.moveTextPositionByAmount(textx,texty); contentStream.drawString(text); contentStream.endText(); textx += colWidth;
try doc = new PDDocument(); PDPage page = new PDPage(); doc.addPage(page); PDPageContentStream contentStream = new PDPageContentStream(doc, page); float leading = 1.5f * fontSize; PDRectangle mediabox = page.findMediaBox(); float margin = 72; float width = mediabox.getWidth() - 2*margin; float startX = mediabox.getLowerLeftX() + margin; float startY = mediabox.getUpperRightY() - margin; contentStream.beginText(); contentStream.setFont(pdfFont, fontSize); contentStream.moveTextPositionByAmount(startX, startY); for (String line: lines) contentStream.drawString(line); contentStream.moveTextPositionByAmount(0, -leading); contentStream.endText(); contentStream.close(); doc.save("break-long-string.pdf");
try (PDPageContentStream contentStream = new PDPageContentStream(doc, page, AppendMode.OVERWRITE, false)) contentStream.transform(new Matrix(0, 1, -1, 0, pageWidth, 0)); contentStream.setFont( font, fontSize ); contentStream.beginText(); contentStream.newLineAtOffset(startX, startY); contentStream.showText(message); contentStream.newLineAtOffset(0, 100); contentStream.showText(message); contentStream.newLineAtOffset(100, 100); contentStream.showText(message); contentStream.endText(); contentStream.moveTo(startX-2, startY-2); contentStream.lineTo(startX-2, startY+200+fontSize); contentStream.stroke(); contentStream.moveTo(startX-2, startY+200+fontSize); contentStream.lineTo(startX+100+stringWidth+2, startY+200+fontSize); contentStream.stroke(); contentStream.moveTo(startX+100+stringWidth+2, startY+200+fontSize); contentStream.lineTo(startX+100+stringWidth+2, startY-2); contentStream.stroke(); contentStream.moveTo(startX+100+stringWidth+2, startY-2); contentStream.lineTo(startX-2, startY-2); contentStream.stroke();
try (PDDocument doc = new PDDocument()) PDPage page = new PDPage(); doc.addPage(page); try (PDPageContentStream contents = new PDPageContentStream(doc, page)) contents.setNonStrokingColor(Color.CYAN); contents.addRect(0, 0, page.getMediaBox().getWidth(), page.getMediaBox().getHeight()); contents.fill(); contents.setNonStrokingColor(Color.RED); contents.addRect(10, 10, 100, 100); contents.fill(); doc.save(filename);
private InputStream createVisualSignatureTemplate(PDDocument srcDoc, int pageNum, PDRectangle rect) throws IOException try (PDDocument doc = new PDDocument()) try (PDPageContentStream cs = new PDPageContentStream(doc, appearanceStream)) cs.transform(initialScale); cs.setNonStrokingColor(Color.yellow); cs.addRect(-5000, -5000, 10000, 10000); cs.fill(); cs.saveGraphicsState(); cs.transform(Matrix.getScaleInstance(0.25f, 0.25f)); PDImageXObject img = PDImageXObject.createFromFileByExtension(imageFile, doc); cs.drawImage(img, 0, 0); cs.restoreGraphicsState(); cs.beginText(); cs.setFont(font, fontSize); cs.setNonStrokingColor(Color.black); cs.newLineAtOffset(fontSize, height - leading); cs.setLeading(leading); cs.showText("(Signature very wide line 1)"); cs.newLine(); cs.showText("(Signature very wide line 2)"); cs.newLine(); cs.showText("(Signature very wide line 3)"); cs.endText();
try (PDDocument document = new PDDocument()) borderULine.setWidth(INCH / 72); // 1 point float pw = page1.getMediaBox().getUpperRightX(); float ph = page1.getMediaBox().getUpperRightY(); try (PDPageContentStream contents = new PDPageContentStream(document, page1)) contents.beginText(); contents.setFont(font, 18); contents.newLineAtOffset(INCH, ph - INCH - 18); contents.showText("PDFBox"); contents.newLineAtOffset(0, -(INCH / 2)); contents.showText("External URL"); contents.newLineAtOffset(0, -(INCH / 2)); contents.showText("Jump to page three"); contents.endText(); float textWidth = font.getStringWidth("PDFBox") / 1000 * 18; PDRectangle position = new PDRectangle(); textWidth = font.getStringWidth("External URL") / 1000 * 18; textWidth = font.getStringWidth("Jump to page three") / 1000 * 18;
private BufferedImage renderType3Glyph(PDType3Font font, int index) throws IOException PDDocument doc = new PDDocument(); int scale = 1; if (fontBBox.getWidth() < 72 || fontBBox.getHeight() < 72) scale = (int) (72 / Math.min(fontBBox.getWidth(), fontBBox.getHeight())); try (PDPageContentStream cs = new PDPageContentStream(doc, page)) cs.transform(Matrix.getTranslateInstance(-fontBBox.getLowerLeftX(), -fontBBox.getLowerLeftY())); try AffineTransform at = font.getFontMatrix().createAffineTransform(); if (!at.isIdentity()) cs.transform(new Matrix(at)); cs.beginText(); cs.setFont(font, scale); cs.appendRawCommands(String.format("<%02X> Tj\n", index).getBytes(Charsets.ISO_8859_1)); cs.endText(); doc.addPage(page); return new PDFRenderer(doc).renderImage(0); doc.close();
actualMediaBox = new PDRectangle(mediaBox.getHeight(), mediaBox.getWidth()); contentStream.endText(); contentStream.close(); contentStream = new PDPageContentStream(doc, page); contentStream.setFont( font, fontSize ); contentStream.beginText(); y = page.getMediaBox().getHeight() - margin + height; contentStream.newLineAtOffset(margin, y); contentStream.newLineAtOffset(0, -height); y -= height; contentStream.showText(nextLineToDraw.toString()); if (ff) doc.addPage(page); contentStream.endText(); contentStream.close(); contentStream = new PDPageContentStream(doc, page); contentStream.setFont(font, fontSize); contentStream.beginText(); y = page.getMediaBox().getHeight() - margin + height; contentStream.newLineAtOffset(margin, y); contentStream.endText(); contentStream.close();
try (PDDocument doc = PDDocument.load(new File(file))) for( PDPage page : doc.getPages() ) PDRectangle pageSize = page.getMediaBox(); float stringWidth = font.getStringWidth( message )*fontSize/1000f; try (PDPageContentStream contentStream = new PDPageContentStream(doc, page, AppendMode.APPEND, true, true)) contentStream.beginText(); contentStream.setFont( font, fontSize ); contentStream.setNonStrokingColor(255, 0, 0); if (rotate) contentStream.setTextMatrix(Matrix.getRotateInstance(Math.PI / 2, centerX, centerY)); contentStream.setTextMatrix(Matrix.getTranslateInstance(centerX, centerY)); contentStream.showText(message); contentStream.endText(); doc.save( outfile );
String destPath = args[1]; try (PDDocument sourceDoc = PDDocument.load(new File(sourcePath))) try (PDDocument doc = new PDDocument()) try (PDPageContentStream contents = new PDPageContentStream(doc, page)) contents.beginText(); contents.setFont(PDType1Font.HELVETICA_BOLD, 12); contents.newLineAtOffset(2, PDRectangle.LETTER.getHeight() - 12); contents.showText("Sample text"); contents.endText(); contents.drawForm(form); contents.saveGraphicsState(); Matrix matrix = Matrix.getScaleInstance(0.5f, 0.5f); contents.transform(matrix); contents.drawForm(form); contents.restoreGraphicsState(); contents.saveGraphicsState(); matrix.rotate(1.8 * Math.PI); // radians contents.transform(matrix); contents.drawForm(form); contents.restoreGraphicsState();
PDDocument document = new PDDocument(); PDPage page = new PDPage(); document.addPage(page); List<PDAnnotation> annotations = page.getAnnotations(); String text = "PDFBox"; PDFont font = PDType1Font.HELVETICA_BOLD; float textWidth = font.getStringWidth(text) / 1000 * 18; contents.beginText(); contents.setFont(font, 18); contents.moveTextPositionByAmount(x, y); contents.drawString(text); contents.endText(); contents.close(); annotation.setAppearance(appearanceDictionary); PDRectangle position = new PDRectangle(); position.setLowerLeftX(x); position.setLowerLeftY(y - 5); position.setUpperRightX(x + textWidth); position.setUpperRightY(y + 20); document.save(new File(RESULT_FOLDER, filename)); document.close();
PDPageContentStream contentStream = new PDPageContentStream(doc, page, AppendMode.OVERWRITE, false); contentStream.setFont( font, fontSize ); contentStream.beginText(); contentStream.setTextMatrix(Matrix.getRotateInstance(i * Math.PI * 0.25, centeredXPosition, pageSize.getHeight() - centeredYPosition)); contentStream.showText(message + " " + i); contentStream.setTextMatrix(Matrix.getRotateInstance(-i*Math.PI*0.25, centeredXPosition, centeredYPosition)); contentStream.showText(message + " " + i); contentStream.endText(); contentStream.close(); contentStream = new PDPageContentStream(doc, page, AppendMode.OVERWRITE, false); contentStream.setFont( font, fontSize ); contentStream.beginText(); contentStream.setTextMatrix(new Matrix(12 + (i * 6), 0, 0, 12+(i*6), 100, 100+i*50)); contentStream.showText(message + " " + i); contentStream.endText(); contentStream.close(); contentStream = new PDPageContentStream(doc, page, AppendMode.OVERWRITE, false); contentStream.setFont( font, fontSize ); contentStream.beginText();
try (PDPageContentStream contentStream = new PDPageContentStream(doc, page, AppendMode.OVERWRITE, false)) contentStream.beginText(); contentStream.setFont(font, FONT_SIZE); contentStream.setTextMatrix( Matrix.getTranslateInstance(0, pageSize.getHeight() - stringHeight / 1000f)); contentStream.showText(message); contentStream.setTextMatrix( Matrix.getTranslateInstance(0, pageSize.getHeight() - stringHeight / 1000f * 2)); contentStream.showTextWithPositioning(text.toArray()); contentStream.setTextMatrix(Matrix.getTranslateInstance(0, pageSize.getHeight() - stringHeight / 1000f * 3)); contentStream.showTextWithPositioning(text.toArray()); contentStream.setTextMatrix( "/org/apache/pdfbox/resources/ttf/LiberationSans-Regular.ttf"), WinAnsiEncoding.INSTANCE); contentStream.setFont(font, FONT_SIZE); contentStream.showText(message); contentStream.setTextMatrix( "/org/apache/pdfbox/resources/ttf/LiberationSans-Regular.ttf"), WinAnsiEncoding.INSTANCE); contentStream.setFont(font, FONT_SIZE);
List allPages = doc.getDocumentCatalog().getAllPages(); PDFont font = PDType1Font.HELVETICA_BOLD; float fontSize = 36.0f; PDRectangle pageSize = page.findMediaBox(); float stringWidth = font.getStringWidth( message )*fontSize/1000f; contentStream.beginText(); contentStream.setFont( font, fontSize ); contentStream.setNonStrokingColor(255, 0, 0); if (rotate) contentStream.setTextRotation(Math.PI/2, centeredXPosition, centeredYPosition); contentStream.setTextTranslation(centeredXPosition, centeredYPosition); contentStream.drawString( message ); contentStream.endText(); contentStream.close(); doc.save( outfile ); doc.close();
public static void main(String[] args) throws IOException try (PDDocument document = new PDDocument()) PDPage page = new PDPage(PDRectangle.A4); document.addPage(page); PDAcroForm acroForm = new PDAcroForm(document); document.getDocumentCatalog().setAcroForm(acroForm); List<String> options = Arrays.asList("a", "b", "c"); PDRadioButton radioButton = new PDRadioButton(acroForm); widget.setRectangle(new PDRectangle(30, PDRectangle.A4.getHeight() - 40 - i * 35, 30, 30)); widget.setAppearanceCharacteristics(appearanceCharacteristics); PDBorderStyleDictionary borderStyleDictionary = new PDBorderStyleDictionary(); widget.setAppearanceState("Off"); // don't forget this, or button will be invisible widgets.add(widget); page.getAnnotations().add(widget); try (PDPageContentStream contents = new PDPageContentStream(document, page)) contents.beginText(); contents.setFont(PDType1Font.HELVETICA, 15); contents.newLineAtOffset(70, PDRectangle.A4.getHeight() - 30 - i * 35); contents.showText(options.get(i)); contents.endText();
try (PDDocument doc = new PDDocument()) true); PDRectangle rectangle = getPageSize(); float workablePageWidth = rectangle.getWidth() - 2 * MARGIN; float workablePageHeight = rectangle.getHeight() - 2 * MARGIN; PDPage page = new PDPage(getPageSize()); doc.addPage(page); try (PDPageContentStream contents = new PDPageContentStream(doc, page)) contents.beginText(); contents.setFont(font, FONT_SIZE); contents.newLineAtOffset(rectangle.getLowerLeftX() + MARGIN, rectangle.getUpperRightY() - MARGIN); contents.showText(line); contents.newLineAtOffset(0, -(FONT_SIZE + LINE_GAP)); contents.endText(); doc.save(filename);
private static void showPageNo(PDDocument document, PDPage page, String pageText) throws IOException { int fontSize = 10; try (PDPageContentStream contents = new PDPageContentStream(document, page, PDPageContentStream.AppendMode.PREPEND, true)) { float pageWidth = page.getMediaBox().getWidth(); float pageHeight = page.getMediaBox().getHeight(); PDFont font = PDType1Font.HELVETICA; contents.setFont(font, fontSize); float textWidth = font.getStringWidth(pageText) / 1000 * fontSize; contents.beginText(); contents.newLineAtOffset(pageWidth / 2 - textWidth / 2, pageHeight - INCH / 2); contents.showText(pageText); contents.endText(); } } }