iText7 для штрих-кода .NET - PullRequest
       29

iText7 для штрих-кода .NET

0 голосов
/ 02 января 2019

Я хотел бы создать PDF со штрих-кодом, используя библиотеку Itex7. Существует множество примеров использования более старой версии Itex или Java, но я не могу найти решение для Itex7. (обычно в новой библиотеке нет реализации метода createImageWithBarcode)

Мое решение может выглядеть так:

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 ??
        // ...
    }
}

Существует аналогичный ответ, но для более старой версии: iText для .NET штрих-кода

1 Ответ

0 голосов
/ 02 января 2019

Спасибо за советы.

Я нашел решение (создайте pdf, добавьте штрих-код {тип: код 25 - без чередования 2 из 5} и установите правильное положение)

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);
    }
}
...