📜  使用Java使用 Canvas 在 PDF 中绘制对象

📅  最后修改于: 2022-05-13 01:54:20.319000             🧑  作者: Mango

使用Java使用 Canvas 在 PDF 中绘制对象

要使用Java使用 Canvas 在 PDF 中创建对象,可以使用名为 iText 的库来完成。 iText 是一个最初由 Bruno Lowagie 创建的Java库,它允许创建 PDF、阅读 PDF 和操作它们。

需要的图书馆:

iText
slf4j (Logging Library)

示例:在 PDF 中绘制圆

方法:

  1. 获取正在运行的Java程序的当前工作目录以在同一位置创建PDF文件
  2. 创建一个 PdfWriter 对象(来自 itextpdf 库),将 PDF 文件写入给定路径
  3. 创建一个空的 PdfDocument 对象并使用 PdfPage 对象向其中添加一个页面
  4. 使用 Pdf 页面中的 PdfCanvas 对象创建画布
  5. 在画布上创建对象并用颜色填充对象

下面是上述方法的实现:

Java
// Drawing an object in a PDF with Canvas using Java
import com.itextpdf.kernel.colors.*;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfPage;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.kernel.pdf.canvas.PdfCanvas;
import com.itextpdf.layout.Document;
  
// importing generic packages
import java.io.*;
import java.util.*;
  
public class DrawPDF {
    public static void main(String args[]) throws Exception
    {
  
        // getting path of current working directory
        // to create the pdf file in the same directory of
        // the running java program
        String path = System.getProperty("user.dir");
        path += "/DrawPDF.pdf";
        // Creating a PdfWriter object using the path
        PdfWriter writer = new PdfWriter(path);
  
        // Creating a PdfDocument object
        PdfDocument pdfDoc = new PdfDocument(writer);
  
        // Creating a Document object
        Document doc = new Document(pdfDoc);
  
        // Creating a new page and adding to the pdfDoc
        // object
        PdfPage pdfPage = pdfDoc.addNewPage();
  
        // Creating a PdfCanvas object to draw the circle
        // object
        PdfCanvas canvas = new PdfCanvas(pdfPage);
  
        // Setting Green color to the circle, boolean fill
        // set to true. ColorsConstants from itext library
        // hosts an array of different colors
        canvas.setColor(ColorConstants.GREEN, true);
  
        // creating a circle with parameters : X-coordinate,
        // Y-coordinate , Circle Diameter
        canvas.circle(300, 400, 200);
  
        // Filling the circle
        canvas.fill();
  
        // Closing the document
        doc.close();
        System.out.println(
            "Object drawn & PDf created successfully!");
    }
}


输出:

PDF 文件在指定路径中创建。