Java Code Examples for org.apache.pdfbox.pdmodel.font.PDType1Font#HELVETICA
The following examples show how to use
org.apache.pdfbox.pdmodel.font.PDType1Font#HELVETICA .
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: JoinPages.java From testarea-pdfbox2 with Apache License 2.0 | 7 votes |
/** * @see #testJoinSmallAndBig() */ PDDocument prepareSmallPdf() throws IOException { PDDocument document = new PDDocument(); PDPage page = new PDPage(new PDRectangle(72, 72)); document.addPage(page); PDPageContentStream contentStream = new PDPageContentStream(document, page); contentStream.setNonStrokingColor(Color.YELLOW); contentStream.addRect(0, 0, 72, 72); contentStream.fill(); contentStream.setNonStrokingColor(Color.BLACK); PDFont font = PDType1Font.HELVETICA; contentStream.beginText(); contentStream.setFont(font, 18); contentStream.newLineAtOffset(2, 54); contentStream.showText("small"); contentStream.newLineAtOffset(0, -48); contentStream.showText("page"); contentStream.endText(); contentStream.close(); return document; }
Example 2
Source File: TestTextElement.java From tabula-java with MIT License | 6 votes |
@Test public void mergeElementsWithSkippingRules() { List<TextElement> elements = new ArrayList<>(); elements.add(new TextElement(0f, 15f, 10f, 20f, PDType1Font.HELVETICA, 1f, "A", 1f, 6f)); elements.add(new TextElement(0f, 17f, 10f, 20f, PDType1Font.HELVETICA, 1f, "A", 1f, 6f)); elements.add(new TextElement(0f, 25f, 10f, 20f, PDType1Font.HELVETICA, 1f, "B", 1f, 6f)); elements.add(new TextElement(0.001f, 25f, 10f, 20f, PDType1Font.HELVETICA, 1f, " ", 1f, 6f)); elements.add(new TextElement(0f, 35f, 10f, 20f, PDType1Font.HELVETICA, 1f, "C", 1f, 6f)); elements.add(new TextElement(0f, 45f, 10f, 20f, PDType1Font.TIMES_ROMAN, 10f, "D", 1f, 6f)); List<TextChunk> words = TextElement.mergeWords(elements); List<TextChunk> expectedWords = new ArrayList<>(); TextChunk textChunk = new TextChunk(new TextElement(0f, 15f, 10f, 20f, PDType1Font.HELVETICA, 1f, "A", 1f, 6f)); textChunk.add(new TextElement(0f, 25f, 10f, 20f, PDType1Font.HELVETICA, 1f, "B", 1f, 6f)); textChunk.add(new TextElement(0f, 35f, 10f, 20f, PDType1Font.HELVETICA, 1f, "C", 1f, 6f)); textChunk.add(new TextElement(0f, 45f, 10f, 20f, PDType1Font.TIMES_ROMAN, 10f, "D", 1f, 6f)); expectedWords.add(textChunk); Assert.assertEquals(expectedWords, words); }
Example 3
Source File: TestTextElement.java From tabula-java with MIT License | 6 votes |
@Test public void mergeFourElementsIntoOneWord() { List<TextElement> elements = new ArrayList<>(); elements.add(new TextElement(0f, 15f, 10f, 20f, PDType1Font.HELVETICA, 1f, "A", 1f, 6f)); elements.add(new TextElement(0f, 25f, 10f, 20f, PDType1Font.HELVETICA, 1f, "B", 1f, 6f)); elements.add(new TextElement(0f, 35f, 10f, 20f, PDType1Font.HELVETICA, 1f, "C", 1f, 6f)); elements.add(new TextElement(0f, 45f, 10f, 20f, PDType1Font.HELVETICA, 1f, "D", 1f, 6f)); List<TextChunk> words = TextElement.mergeWords(elements); List<TextChunk> expectedWords = new ArrayList<>(); TextChunk textChunk = new TextChunk(new TextElement(0f, 15f, 10f, 20f, PDType1Font.HELVETICA, 1f, "A", 1f, 6f)); textChunk.add(new TextElement(0f, 25f, 10f, 20f, PDType1Font.HELVETICA, 1f, "B", 1f, 6f)); textChunk.add(new TextElement(0f, 35f, 10f, 20f, PDType1Font.HELVETICA, 1f, "C", 1f, 6f)); textChunk.add(new TextElement(0f, 45f, 10f, 20f, PDType1Font.HELVETICA, 1f, "D", 1f, 6f)); expectedWords.add(textChunk); Assert.assertEquals(expectedWords, words); }
Example 4
Source File: TestTextElement.java From tabula-java with MIT License | 6 votes |
@Test public void createTextElementWithDirection() { TextElement textElement = new TextElement(5f, 15f, 10f, 20f, PDType1Font.HELVETICA, 1f, "A", 1f, 6f); Assert.assertNotNull(textElement); Assert.assertEquals("A", textElement.getText()); Assert.assertEquals(1f, textElement.getFontSize(), 0); Assert.assertEquals(15f, textElement.getLeft(), 0); Assert.assertEquals(5f, textElement.getTop(), 0); Assert.assertEquals(10f, textElement.getWidth(), 0); Assert.assertEquals(20f, textElement.getHeight(), 0); Assert.assertEquals(PDType1Font.HELVETICA, textElement.getFont()); Assert.assertEquals(1f, textElement.getWidthOfSpace(), 0); Assert.assertEquals(6f, textElement.getDirection(), 0); }
Example 5
Source File: JoinPages.java From testarea-pdfbox2 with Apache License 2.0 | 6 votes |
/** * @see #testJoinSmallAndBig() */ PDDocument prepareBiggerPdf() throws IOException { PDDocument document = new PDDocument(); PDPage page = new PDPage(PDRectangle.A5); document.addPage(page); PDPageContentStream contentStream = new PDPageContentStream(document, page); contentStream.setNonStrokingColor(Color.GREEN); contentStream.addRect(0, 0, PDRectangle.A5.getWidth(), PDRectangle.A5.getHeight()); contentStream.fill(); contentStream.setNonStrokingColor(Color.BLACK); PDFont font = PDType1Font.HELVETICA; contentStream.beginText(); contentStream.setFont(font, 18); contentStream.newLineAtOffset(2, PDRectangle.A5.getHeight() - 24); contentStream.showText("This is the Bigger page"); contentStream.newLineAtOffset(0, -48); contentStream.showText("BIGGER!"); contentStream.endText(); contentStream.close(); return document; }
Example 6
Source File: TestTextElement.java From tabula-java with MIT License | 6 votes |
@Test public void createTextElement() { TextElement textElement = new TextElement(5f, 15f, 10f, 20f, PDType1Font.HELVETICA, 1f, "A", 1f); Assert.assertNotNull(textElement); Assert.assertEquals("A", textElement.getText()); Assert.assertEquals(1f, textElement.getFontSize(), 0); Assert.assertEquals(15f, textElement.getLeft(), 0); Assert.assertEquals(5f, textElement.getTop(), 0); Assert.assertEquals(10f, textElement.getWidth(), 0); Assert.assertEquals(20f, textElement.getHeight(), 0); Assert.assertEquals(PDType1Font.HELVETICA, textElement.getFont()); Assert.assertEquals(1f, textElement.getWidthOfSpace(), 0); Assert.assertEquals(0f, textElement.getDirection(), 0); }
Example 7
Source File: TestProjectionProfile.java From tabula-java with MIT License | 6 votes |
@Before public void setUpProjectionProfile() { PDPage pdPage = new PDPage(); TextElement textElement = new TextElement(5f, 15f, 10f, 20f, PDType1Font.HELVETICA, 1f, "test", 1f); TextElement textElement2 = new TextElement(5f, 15f, 10f, 20f, PDType1Font.HELVETICA, 1f, "test", 1f); List<TextElement> textList = new ArrayList<>(); textList.add(textElement); textList.add(textElement2); Ruling ruling = new Ruling(0, 0, 10, 10); List<Ruling> rulingList = new ArrayList<>(); rulingList.add(ruling); page = new Page(0, 0, 1, 1, 0, 1, pdPage, textList, rulingList); List<Rectangle> rectangles = new ArrayList<>(); rectangles.add(new Rectangle(0f, 0f, 500f, 5f)); pProfile = new ProjectionProfile(page, rectangles, 5, 5); }
Example 8
Source File: PdfTools.java From MyBox with Apache License 2.0 | 5 votes |
public static PDFont getFont(PDDocument document, String name) { PDFont font = PDType1Font.HELVETICA; try { String fontFile = null; switch (name) { case "宋体": fontFile = FileTools.getFontFile("simsun"); break; case "幼圆": fontFile = FileTools.getFontFile("SIMYOU"); break; case "仿宋": fontFile = FileTools.getFontFile("simfang"); break; case "隶书": fontFile = FileTools.getFontFile("SIMLI"); break; case "Helvetica": return PDType1Font.HELVETICA; case "Courier": return PDType1Font.COURIER; case "Times New Roman": return PDType1Font.TIMES_ROMAN; } if (fontFile != null) { // logger.debug(fontFile); font = PDType0Font.load(document, new File(fontFile)); } } catch (Exception e) { } // logger.debug(font.getName()); return font; }
Example 9
Source File: TestTextElement.java From tabula-java with MIT License | 5 votes |
@Test public void mergeTenElementsIntoTwoLines() { List<TextElement> elements = new ArrayList<>(); elements.add(new TextElement(0f, 0f, 10f, 20f, PDType1Font.HELVETICA, 1f, "H", 1f, 6f)); elements.add(new TextElement(0f, 10f, 10f, 20f, PDType1Font.HELVETICA, 1f, "O", 1f, 6f)); elements.add(new TextElement(0f, 20f, 10f, 20f, PDType1Font.HELVETICA, 1f, "L", 1f, 6f)); elements.add(new TextElement(0f, 30f, 10f, 20f, PDType1Font.HELVETICA, 1f, "A", 1f, 6f)); elements.add(new TextElement(20f, 0f, 10f, 20f, PDType1Font.HELVETICA, 1f, "M", 1f, 6f)); elements.add(new TextElement(20f, 10f, 10f, 20f, PDType1Font.HELVETICA, 1f, "U", 1f, 6f)); elements.add(new TextElement(20f, 20f, 10f, 20f, PDType1Font.HELVETICA, 1f, "N", 1f, 6f)); elements.add(new TextElement(20f, 30f, 10f, 20f, PDType1Font.HELVETICA, 1f, "D", 1f, 6f)); elements.add(new TextElement(20f, 40f, 10f, 20f, PDType1Font.HELVETICA, 1f, "O", 1f, 6f)); List<TextChunk> words = TextElement.mergeWords(elements); List<TextChunk> expectedWords = new ArrayList<>(); TextChunk textChunk = new TextChunk(new TextElement(0f, 0f, 10f, 20f, PDType1Font.HELVETICA, 1f, "H", 1f, 6f)); textChunk.add(new TextElement(0f, 10f, 10f, 20f, PDType1Font.HELVETICA, 1f, "O", 1f, 6f)); textChunk.add(new TextElement(0f, 20f, 10f, 20f, PDType1Font.HELVETICA, 1f, "L", 1f, 6f)); textChunk.add(new TextElement(0f, 30f, 10f, 20f, PDType1Font.HELVETICA, 1f, "A", 1f, 6f)); expectedWords.add(textChunk); TextChunk textChunk2 = new TextChunk(new TextElement(20f, 0f, 10f, 20f, PDType1Font.HELVETICA, 1f, "M", 1f, 6f)); textChunk2.add(new TextElement(20f, 10f, 10f, 20f, PDType1Font.HELVETICA, 1f, "U", 1f, 6f)); textChunk2.add(new TextElement(20f, 20f, 10f, 20f, PDType1Font.HELVETICA, 1f, "N", 1f, 6f)); textChunk2.add(new TextElement(20f, 30f, 10f, 20f, PDType1Font.HELVETICA, 1f, "D", 1f, 6f)); textChunk2.add(new TextElement(20f, 40f, 10f, 20f, PDType1Font.HELVETICA, 1f, "O", 1f, 6f)); expectedWords.add(textChunk2); Assert.assertEquals(2, words.size()); Assert.assertEquals(expectedWords, words); }
Example 10
Source File: TestTextElement.java From tabula-java with MIT License | 5 votes |
@Test public void mergeTenElementsIntoTwoWords() { List<TextElement> elements = new ArrayList<>(); elements.add(new TextElement(0f, 0f, 10f, 20f, PDType1Font.HELVETICA, 1f, "H", 1f, 6f)); elements.add(new TextElement(0f, 10f, 10f, 20f, PDType1Font.HELVETICA, 1f, "O", 1f, 6f)); elements.add(new TextElement(0f, 20f, 10f, 20f, PDType1Font.HELVETICA, 1f, "L", 1f, 6f)); elements.add(new TextElement(0f, 30f, 10f, 20f, PDType1Font.HELVETICA, 1f, "A", 1f, 6f)); elements.add(new TextElement(0f, 60f, 10f, 20f, PDType1Font.HELVETICA, 1f, "M", 1f, 6f)); elements.add(new TextElement(0f, 70f, 10f, 20f, PDType1Font.HELVETICA, 1f, "U", 1f, 6f)); elements.add(new TextElement(0f, 80f, 10f, 20f, PDType1Font.HELVETICA, 1f, "N", 1f, 6f)); elements.add(new TextElement(0f, 90f, 10f, 20f, PDType1Font.HELVETICA, 1f, "D", 1f, 6f)); elements.add(new TextElement(0f, 100f, 10f, 20f, PDType1Font.HELVETICA, 1f, "O", 1f, 6f)); List<TextChunk> words = TextElement.mergeWords(elements); List<TextChunk> expectedWords = new ArrayList<>(); TextChunk textChunk = new TextChunk(new TextElement(0f, 0f, 10f, 20f, PDType1Font.HELVETICA, 1f, "H", 1f, 6f)); textChunk.add(new TextElement(0f, 10f, 10f, 20f, PDType1Font.HELVETICA, 1f, "O", 1f, 6f)); textChunk.add(new TextElement(0f, 20f, 10f, 20f, PDType1Font.HELVETICA, 1f, "L", 1f, 6f)); textChunk.add(new TextElement(0f, 30f, 10f, 20f, PDType1Font.HELVETICA, 1f, "A", 1f, 6f)); textChunk.add(new TextElement(0f, 30f, 10.5f, 20f, PDType1Font.HELVETICA, 1f, " ", 1f)); //Check why width=10.5? expectedWords.add(textChunk); TextChunk textChunk2 = new TextChunk(new TextElement(0f, 60f, 10f, 20f, PDType1Font.HELVETICA, 1f, "M", 1f, 6f)); textChunk2.add(new TextElement(0f, 70f, 10f, 20f, PDType1Font.HELVETICA, 1f, "U", 1f, 6f)); textChunk2.add(new TextElement(0f, 80f, 10f, 20f, PDType1Font.HELVETICA, 1f, "N", 1f, 6f)); textChunk2.add(new TextElement(0f, 90f, 10f, 20f, PDType1Font.HELVETICA, 1f, "D", 1f, 6f)); textChunk2.add(new TextElement(0f, 100f, 10f, 20f, PDType1Font.HELVETICA, 1f, "O", 1f, 6f)); expectedWords.add(textChunk2); Assert.assertEquals(2, words.size()); Assert.assertEquals(expectedWords, words); }
Example 11
Source File: ArrangeText.java From testarea-pdfbox2 with Apache License 2.0 | 5 votes |
/** * <a href="https://stackoverflow.com/questions/48902656/how-can-i-align-arrange-text-fields-into-two-column-layout-using-apache-pdfbox"> * How can I Align/ Arrange text fields into two column layout using Apache PDFBox - java * </a> * <p> * This test shows how to align text in two columns. * </p> */ @Test public void testArrangeTextForUser2967784() throws IOException { PDDocument document = new PDDocument(); PDPage page = new PDPage(); document.addPage(page); PDFont fontNormal = PDType1Font.HELVETICA; PDFont fontBold = PDType1Font.HELVETICA_BOLD; PDPageContentStream contentStream =new PDPageContentStream(document, page); contentStream.beginText(); contentStream.newLineAtOffset(100, 600); contentStream.setFont(fontBold, 15); contentStream.showText("Name: "); contentStream.setFont(fontNormal, 15); contentStream.showText ("Rajeev"); contentStream.newLineAtOffset(200, 00); contentStream.setFont(fontBold, 15); contentStream.showText("Address: " ); contentStream.setFont(fontNormal, 15); contentStream.showText ("BNG"); contentStream.newLineAtOffset(-200, -20); contentStream.setFont(fontBold, 15); contentStream.showText("State: " ); contentStream.setFont(fontNormal, 15); contentStream.showText ("KAR"); contentStream.newLineAtOffset(200, 00); contentStream.setFont(fontBold, 15); contentStream.showText("Country: " ); contentStream.setFont(fontNormal, 15); contentStream.showText ("INDIA"); contentStream.endText(); contentStream.close(); document.save(new File(RESULT_FOLDER, "arrangedTextForUser2967784.pdf")); }
Example 12
Source File: DetectFontLoader.java From synopsys-detect with Apache License 2.0 | 5 votes |
public PDFont loadFont(final PDDocument document) { try { return PDType0Font.load(document, DetectFontLoader.class.getResourceAsStream("/NotoSansCJKtc-Regular.ttf")); } catch (final IOException e) { logger.warn("Failed to load CJK font, some glyphs may not encode correctly.", e); return PDType1Font.HELVETICA; } }
Example 13
Source File: PdfBoxFontMapper.java From dss with GNU Lesser General Public License v2.1 | 4 votes |
public static PDType1Font getPDFont(Font javaFont) { switch (javaFont.getFamily()) { case Font.SERIF: if (javaFont.isPlain()) { return PDType1Font.TIMES_ROMAN; } else if (javaFont.isBold()) { if (javaFont.isItalic()) { return PDType1Font.TIMES_BOLD_ITALIC; } else { return PDType1Font.TIMES_BOLD; } } else { return PDType1Font.TIMES_ITALIC; } case Font.SANS_SERIF: if (javaFont.isPlain()) { return PDType1Font.HELVETICA; } else if (javaFont.isBold()) { if (javaFont.isItalic()) { return PDType1Font.HELVETICA_BOLD_OBLIQUE; } else { return PDType1Font.HELVETICA_BOLD; } } else { return PDType1Font.HELVETICA_OBLIQUE; } case Font.MONOSPACED: if (javaFont.isPlain()) { return PDType1Font.COURIER; } else if (javaFont.isBold()) { if (javaFont.isItalic()) { return PDType1Font.COURIER_BOLD_OBLIQUE; } else { return PDType1Font.COURIER_BOLD; } } else { return PDType1Font.COURIER_OBLIQUE; } case Font.DIALOG: case Font.DIALOG_INPUT: return PDType1Font.SYMBOL; default: throw new DSSException("The font is not supported! Please use DSSFileFont implementation for custom fonts."); } }
Example 14
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")); }
Example 15
Source File: ArrangeText.java From testarea-pdfbox2 with Apache License 2.0 | 4 votes |
/** * <a href="https://stackoverflow.com/questions/46908322/apache-pdfbox-how-can-i-specify-the-position-of-the-texts-im-outputting"> * Apache PDFBox: How can I specify the position of the texts I'm outputting * </a> * <p> * This test shows how to arrange text pieces using relative coordinates * to move from line start to line start. * </p> */ @Test public void testArrangeTextForTeamotea() throws IOException { try (PDDocument document = new PDDocument()) { PDPage page = new PDPage(); document.addPage(page); PDFont font = PDType1Font.HELVETICA; String text = "Text 1"; String text1 = "Text 2"; String text2 = "Text 3"; String text3 = "Text 4"; String text4 = "Text 5"; String text5 = "Text 6"; try (PDPageContentStream contentStream = new PDPageContentStream(document, page)) { contentStream.beginText(); contentStream.newLineAtOffset(175, 670); contentStream.setFont(font, 12); contentStream.setLeading(15); contentStream.showText(text); contentStream.newLine(); contentStream.showText(text1); contentStream.newLineAtOffset(225, 10); contentStream.setFont(font, 15); contentStream.showText(text2); contentStream.newLineAtOffset(-390, -175); contentStream.setFont(font, 13.5f); contentStream.setLeading(17); contentStream.showText(text3); contentStream.newLine(); contentStream.showText(text5); contentStream.newLineAtOffset(300, 13.5f); contentStream.showText(text4); contentStream.endText(); contentStream.moveTo(0, 520); contentStream.lineTo(612, 520); contentStream.stroke(); } document.save(new File(RESULT_FOLDER, "arrangedTextForTeamotea.pdf")); } }
Example 16
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 17
Source File: ReportConvertPdf.java From yuzhouwan with Apache License 2.0 | 3 votes |
public static void main(String[] args) throws Exception { String pdfPath = "C:\\Users\\asdf2014\\Desktop\\box.pdf"; PDDocument doc = new PDDocument(); PDPage page = new PDPage(); PDPageContentStream content = createContent(doc, page); PDFont font = PDType1Font.HELVETICA; float fontSize = 26; float x = 220, y = 750; String text = "yuzhouwan.com"; drawString(content, font, fontSize, x, y, text); drawString(content, PDType1Font.HELVETICA, 16, 80, 700, "Real-time ML with Spark"); String imgPath = "C:\\Users\\asdf2014\\Desktop\\Y.jpg"; int bufferedImageType = BufferedImage.TYPE_4BYTE_ABGR; float scale = 0.3f; drawImageWithScale(doc, content, imgPath, bufferedImageType, scale); int pageIndex = 0; PDPage page0 = getPageByIndex(doc, pageIndex); finish(pdfPath, doc, content); }