zoukankan      html  css  js  c++  java
  • pdfbox 使用入门

    添加依赖

            <dependency>
                <groupId>org.apache.pdfbox</groupId>
                <artifactId>pdfbox</artifactId>
                <version>2.0.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.pdfbox</groupId>
                <artifactId>fontbox</artifactId>
                <version>2.0.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.pdfbox</groupId>
                <artifactId>jempbox</artifactId>
                <version>1.8.11</version>
            </dependency>
            <dependency>
                <groupId>org.apache.pdfbox</groupId>
                <artifactId>xmpbox</artifactId>
                <version>2.0.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.pdfbox</groupId>
                <artifactId>preflight</artifactId>
                <version>2.0.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.pdfbox</groupId>
                <artifactId>pdfbox-tools</artifactId>
                <version>2.0.0</version>
            </dependency>

    生成pdf并创建背景和创建文本

    package com.bobo.code.web.controller.web;
    
    import org.apache.pdfbox.pdmodel.PDDocument;
    import org.apache.pdfbox.pdmodel.PDPage;
    import org.apache.pdfbox.pdmodel.PDPageContentStream;
    import org.apache.pdfbox.pdmodel.font.PDType1Font;
    import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class MailApplication {
    
        public static void main(String args[]) throws Exception {
            //Creating PDF document object
            PDDocument document = new PDDocument();
            for (int i=0; i<1; i++) {
                //Creating a blank page
                PDPage blankPage = new PDPage();
                //Adding the blank page to the document
                document.addPage( blankPage );
            }
    
            //Creating PDImageXObject object
            PDImageXObject pdImage = PDImageXObject.createFromFile("D:/temp/pdf/sisi.png",document);
            PDPageContentStream pdfPageContent = new PDPageContentStream(document, document.getPage(0));
            //Drawing the image in the PDF document
            pdfPageContent.drawImage(pdImage, 10, 10,400,800);
    
            System.out.println("Image inserted");
    
            //Begin the Content stream
            pdfPageContent.beginText();
            //Setting the font to the Content stream
            pdfPageContent.setFont(PDType1Font.TIMES_ROMAN, 12);
            //Setting the position for the line
            pdfPageContent.newLineAtOffset(25, 500);
            String text = "abc";
            //Adding text in the form of string
            pdfPageContent.showText(text);
            //Ending the content stream
            pdfPageContent.endText();
            System.out.println("Content added");
            //Closing the content stream
            pdfPageContent.close();
    
            //Saving the document
            document.save("D:/temp/pdf/sisi.pdf");
            System.out.println("PDF created");
            //Closing the document
            document.close();
        }
    
    }

    效果

    参考

    WIKI教程==>https://iowiki.com/pdfbox/    非常清晰,强力推荐

    感觉空虚寂寞,只是因为你无所关注,无处付出。
  • 相关阅读:
    Array方面Js底层代码学习记录
    DOM 节点
    跨域
    狂雨cms代码审计:后台文件包含getshell
    在PHP一句话木马使用过程中的种种坑点分析
    记对某CMS的一次代码审计
    通达OA任意文件上传并利用文件包含导致远程代码执行漏洞分析
    DedeCMS V5.7 SP2后台存在代码执行漏洞
    zzzcms(php) v1.7.5 前台SQL注入及其他
    权限维持及后门持久化技巧总结
  • 原文地址:https://www.cnblogs.com/whatlonelytear/p/14991554.html
Copyright © 2011-2022 走看看