Search code examples
c#itext7

iText7 ShowTextAligned vs MoveText


I am updating the logic for my pdf tool and I am seeing some setting. In the old version I have this overContent that has a method ShowTextAligned with five values. The new object canvas has MoveText with just two. Is the below correct with the MoveText and ShowTextAligned

New Code

   float n2 = 15F;
   float n3 = pageSizeWithRotation.GetHeight() - 10F;
   
   canvas.BeginText() 
    .SetFillColorRgb(0,0,0)                                        
    .SetFontAndSize(PdfFontFactory.CreateFont(StandardFonts.HELVETICA), 7F)
    .MoveText(n2, n3)
    .ShowText(disclaimerText)
    .EndText();

Old Version

PdfContentByte overContent = pdfStamper.GetOverContent(i);
overContent.BeginText();
BaseFont baseFont = BaseFont.CreateFont("Helvetica", "Cp1250", false);
overContent.SetFontAndSize(baseFont, 7F);
overContent.SetRGBColorFill(0, 0, 0);
float n2 = 15F;
float n3 = pageSizeWithRotation.Height - 10F;

overContent.ShowTextAligned(0, disclaimerText, n2, n3, 0F);
                                   


                                

Solution

  • I would recommend you to use document.ShowTextAligned() which is easier to work with Text and Paragraph in iText 7.

        public virtual void CreatePdf(String dest) {
            //Initialize PDF document
            PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
            // Initialize document
            Document document = new Document(pdf);
            Paragraph title = new Paragraph("The Strange Case of Dr. Jekyll and Mr. Hyde");
            document.ShowTextAligned(title, 36, 806, TextAlignment.LEFT);
            Paragraph author = new Paragraph("by Robert Louis Stevenson");
            document.ShowTextAligned(author, 36, 806, TextAlignment.LEFT, VerticalAlignment.TOP);
            document.ShowTextAligned("Jekyll", 300, 800, TextAlignment.CENTER, 0.5f * (float)Math.PI);
            document.ShowTextAligned("Hyde", 300, 800, TextAlignment.CENTER, -0.5f * (float)Math.PI);
            document.ShowTextAligned("Jekyll", 350, 800, TextAlignment.CENTER, VerticalAlignment.TOP, 0.5f * (float)Math
                .PI);
            document.ShowTextAligned("Hyde", 350, 800, TextAlignment.CENTER, VerticalAlignment.TOP, -0.5f * (float)Math
                .PI);
            document.ShowTextAligned("Jekyll", 400, 800, TextAlignment.CENTER, VerticalAlignment.MIDDLE, 0.5f * (float
                )Math.PI);
            document.ShowTextAligned("Hyde", 400, 800, TextAlignment.CENTER, VerticalAlignment.MIDDLE, -0.5f * (float)
                Math.PI);
            document.Close();
        }
    

    Please refer to link https://kb.itextpdf.com/home/it7kb/examples/itext-7-building-blocks-chapter-2-rootelement-examples and example number c02e14_showtextaligned