itext 7 中 PdfCanvas 和 Canvas 的区别

Difference between PdfCanvas and Canvas in itext 7

我想知道 iText7 中 Pdfcanvas 和 Canvas 之间的区别以及我们何时使用它们中的每一个..?

简而言之,PdfCanvas 设计用于 low-level 操作,而 Canvas - 用于 high-level 操作。

您想将矩形/路径/文本和任何其他运算符写入 pdf 的内容流吗?使用 PdfCanvas 实例。

您想将 high-level iText 对象(Paragraphs、Tables、Lists、...)添加到您的 PdfCanvas?使用 Canvas 实例。

PdfCanvas 例子

        PdfDocument pdfDoc = new PdfDocument(new PdfWriter(destinationFolder + "simpleCanvas.pdf"));

    PdfPage page1 = pdfDoc.addNewPage();

    PdfCanvas canvas = new PdfCanvas(page1);
    canvas.rectangle(100, 100, 100, 100).fill();

    pdfDoc.close();

生成的 pdf:

Canvas 例子

            PdfDocument pdf = new PdfDocument(new PdfWriter(out));

    PdfPage page = pdf.addNewPage();
    PdfCanvas pdfCanvas = new PdfCanvas(page);

    Rectangle rectangle = new Rectangle(100, 100, 100, 100);

    Canvas canvas = new Canvas(pdfCanvas, pdf, rectangle);
    canvas.add(new Paragraph("Hello World"));

    canvas.close();

    pdf.close();

生成的 pdf: