简体   繁体   中英

iText7 for .NET barcode

I'd like to create pdf with barcode using Itex7 library. There is a lot of examples using older version of Itex, or Java, but I can't find solution for Itex7. (generally new lib has no implementation of createImageWithBarcode method)

My solution could look like as:

string outputPdfFile = @"c:\DEV\pdfFromScratchWithBarCode.pdf";
using (iText.Kernel.Pdf.PdfWriter writer = new iText.Kernel.Pdf.PdfWriter(outputPdfFile))
{
    using (iText.Kernel.Pdf.PdfDocument pdf = new iText.Kernel.Pdf.PdfDocument(writer))
    {
        iText.Layout.Document doc = new iText.Layout.Document(pdf);
        doc.Add(new iText.Layout.Element.Paragraph("Title"));

        iText.Barcodes.BarcodeInter25 bar = new iText.Barcodes.BarcodeInter25(pdf);
        bar.SetCode("00600123456");

        //HOW TO ADD barcode TO PDF ??
        // ...
    }
}

There is similar answer but for older version: iText for .NET barcode

Thanks for advices.

I found the solution (create pdf, add barcode {type: Code 25 – Non-interleaved 2 of 5} and set valid postion)

using (iText.Kernel.Pdf.PdfWriter writer = new iText.Kernel.Pdf.PdfWriter(outputPdfFile))
{
    using (iText.Kernel.Pdf.PdfDocument pdf = new iText.Kernel.Pdf.PdfDocument(writer))
    {
        iText.Layout.Document doc = new iText.Layout.Document(pdf);
        doc.Add(new iText.Layout.Element.Paragraph("Title"));

        //barcode
        iText.Barcodes.BarcodeInter25 bar = new iText.Barcodes.BarcodeInter25(pdf);
        bar.SetCode("0600123456");


        iText.Kernel.Pdf.Canvas.PdfCanvas canvas = new iText.Kernel.Pdf.Canvas.PdfCanvas(pdf.GetFirstPage());
        //bar.PlaceBarcode(canvas, iText.Kernel.Colors.ColorConstants.BLUE, iText.Kernel.Colors.ColorConstants.GREEN);

        iText.Kernel.Pdf.Xobject.PdfFormXObject barcodeFormXObject = bar.CreateFormXObject(iText.Kernel.Colors.ColorConstants.BLACK, iText.Kernel.Colors.ColorConstants.BLACK, pdf);
        float scale = 1;
        float x = 450;
        float y = 700;
        canvas.AddXObject(barcodeFormXObject, scale, 0, 0, scale, x, y);
    }
}

You can create an image from a PdfFormXObject by doing this:

var barcodeImg = new Image(bar.CreateFormXObject(pdf));

Here is your code including changes that does the trick:

string outputPdfFile = @"c:\DEV\pdfFromScratchWithBarCode.pdf";
    using (var writer = new iText.Kernel.Pdf.PdfWriter(outputPdfFile))
    {
        using (var pdf = new iText.Kernel.Pdf.PdfDocument(writer))
        {
            var doc = new Document(pdf);
            doc.Add(new Paragraph("Title"));

            var bar = new BarcodeInter25(pdf);
            bar.SetCode("000600123456");

            //Here's how to add barcode to PDF with IText7
            var barcodeImg = new Image(bar.CreateFormXObject(pdf));
            doc.Add(barcodeImg);        
        }
    }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM