iText7 库中的 PdfCanvas 和 Canvas 类有什么区别?我应该什么时候使用它们中的每一个?
简而言之,PdfCanvas它是为低级操作而设计的,并且Canvas是为高级操作而设计的。
您想将矩形/路径/文本和任何其他运算符写入 pdf 的内容流吗?使用PdfCanvas实例。
您想将高级 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();
Run Code Online (Sandbox Code Playgroud)
画布示例
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();
Run Code Online (Sandbox Code Playgroud)