OpenPDF的学习文档(第二章·搭建学习项目)

搭建学习项目

请小伙伴自己安装好JDK21 + Maven3 + IntelliJ IDEA

  • image
  • 对应的groupIdartifactId请自定义
  • 完善项目骨架 (这一大步是非必须的,但是对于学习组件有益,建议加上)
    • image
    • 创建对应的z.z.opdf包,simplelogger.properties日志配置,以及z.z.opdf.OpenPDFTests测试类
    • <?xml version="1.0" encoding="UTF-8"?>
      <project xmlns="http://maven.apache.org/POM/4.0.0"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
          <modelVersion>4.0.0</modelVersion>
      
          <groupId>z.z</groupId>
          <artifactId>opdf</artifactId>
          <version>1.0</version>
          <name>opdf</name>
      
      
          <properties>
              <java.version>21</java.version>
              <maven.compiler.source>21</maven.compiler.source>
              <maven.compiler.target>21</maven.compiler.target>
              <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      
              <!--基本依赖-->
              <lombok.version>1.18.46</lombok.version>
              <slf4j.version>2.0.18</slf4j.version>
              <junit.version>6.1.1</junit.version>
      
              <!--关键依赖-->
              <openpdf.version>3.0.5</openpdf.version>
          </properties>
      
          <dependencies>
              <!--Lombok-->
              <dependency>
                  <groupId>org.projectlombok</groupId>
                  <artifactId>lombok</artifactId>
                  <version>${lombok.version}</version>
                  <scope>provided</scope>
              </dependency>
              <!--Slf4j + simple-->
              <dependency>
                  <groupId>org.slf4j</groupId>
                  <artifactId>slf4j-simple</artifactId>
                  <version>${slf4j.version}</version>
              </dependency>
              <!--Junit Jupiter API-->
              <dependency>
                  <groupId>org.junit.jupiter</groupId>
                  <artifactId>junit-jupiter-api</artifactId>
                  <version>${junit.version}</version>
                  <scope>test</scope>
              </dependency>
      
              <!--librepdf openpdf-->
              <dependency>
                  <groupId>com.github.librepdf</groupId>
                  <artifactId>openpdf</artifactId>
                  <version>${openpdf.version}</version>
              </dependency>
          </dependencies>
      
          <build>
              <!--项目打包名称-->
              <finalName>opdf</finalName>
              <plugins>
                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-compiler-plugin</artifactId>
                      <version>3.13.0</version>
                      <configuration>
                          <source>${java.version}</source>
                          <target>${java.version}</target>
                          <annotationProcessorPaths>
                              <path>
                                  <groupId>org.projectlombok</groupId>
                                  <artifactId>lombok</artifactId>
                                  <version>${lombok.version}</version>
                              </path>
                          </annotationProcessorPaths>
                      </configuration>
                  </plugin>
              </plugins>
          </build>
      </project>
      
    • # simplelogger.properties
      org.slf4j.simpleLogger.logFile=System.out
      org.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd HH:mm:ss:SSS
      org.slf4j.simpleLogger.showDateTime=true
      org.slf4j.simpleLogger.defaultLogLevel=debug
      
    • package z.z.opdf;
      
      import lombok.extern.slf4j.Slf4j;
      import org.junit.jupiter.api.Test;
      
      @Slf4j
      public class OpenPDFTests {
      
          @Test
          public void contextLoads() {
              log.info("输出Info 信息!");
              log.debug("输出Debug 信息!");
          }
      }
      
    • 严重警告!!!,如果是Windows系统,建议对OpenPDFTests测试类做以下配置,防止出现问题!!!
      • 原因: Windows的命令行有最大字符数限制。
      • 处理方法:image
      • 在缩短命令行中,只要不选择“无”即可,其他两个都能选择。
    • 测试contextLoads()方法,看是否能够正常输出。
    • image
  • 添加测试方法:
  •   @Test
      public void createPDF() throws IOException {
          Document document = new Document();
          ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
          PdfWriter.getInstance(document, outputStream);
          document.open();
          document.add(new Paragraph("Hello World"));
          document.close();
          Files.write(Paths.get("C:/TMP/123.pdf"), outputStream.toByteArray());
          log.info("PDF创建成功!");
      }
    
  • 查看日志是否报错,文件是否生成,能否正常打开。
    • image
    • image
    • image
  • 大功告成!
posted @ 2026-07-27 21:58  铁锅炖大鹅ing  阅读(2)  评论(0)    收藏  举报