Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。
                        
                    
                
            
        
            
        
                
                    
                
            
                
                    想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                
                    在11个月前关闭。
            
        

    

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

最佳答案

简而言之,PdfCanvas设计用于低级操作,而Canvas-用于高级操作。

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

您要向Paragraph添加高级iText对象(Table s,List s,PdfCanvas s ...)吗?使用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:java - PedfCanvas和itext 7中的Canvas之间的区别-LMLPHP

画布示例

            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:java - PedfCanvas和itext 7中的Canvas之间的区别-LMLPHP

10-08 05:21