C# 用于.NET条形码的iText7

C# 用于.NET条形码的iText7,c#,.net,itext,barcode,itext7,C#,.net,Itext,Barcode,Itext7,我想使用Itex7库创建带有条形码的pdf。 有很多例子使用较旧版本的Itex或Java,但我找不到Itex7的解决方案。 (通常新库没有createImageWithBarcode方法的实现) 我的解决方案如下所示: string outputPdfFile = @"c:\DEV\pdfFromScratchWithBarCode.pdf"; using (iText.Kernel.Pdf.PdfWriter writer = new iText.Kernel.Pdf.PdfWriter(ou

我想使用Itex7库创建带有条形码的pdf。 有很多例子使用较旧版本的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 ??
        // ...
    }
}
有类似的答案,但对于旧版本: 谢谢你的建议

我找到了解决方案(创建pdf,添加条形码{类型:代码25–非交错2/5}并设置有效位置)

谢谢你的建议

我找到了解决方案(创建pdf,添加条形码{类型:代码25–非交错2/5}并设置有效位置)


通过执行以下操作,可以从PdfFormXObject创建图像:

var barcodeImg = new Image(bar.CreateFormXObject(pdf));
以下是您的代码,包括实现此功能的更改:

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

通过执行以下操作,可以从PdfFormXObject创建图像:

var barcodeImg = new Image(bar.CreateFormXObject(pdf));
以下是您的代码,包括实现此功能的更改:

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

乍一看,它是
bar.PlaceBarcode
,您需要传递一个PdfCanvas。查看Inter25单元测试:但我自己不知道iText7。对不起,我不知道库。我猜等价的文档类型对象是画布,所以您可以将PdfCanvas包装在画布中,然后有方法指定它在文档中的位置?(这里还有一个代码示例的问题,通过将PdfCanvas包装在一个矩形的画布中:)或者如果您使用的是PdfPages而不是文档,我想那里也有定位选项。乍一看,它是
bar.PlaceBarcode
,您需要传递一个PdfCanvas。查看Inter25单元测试:但我自己不知道iText7。对不起,我不知道库。我猜等价的文档类型对象是画布,所以您可以将PdfCanvas包装在画布中,然后有方法指定它在文档中的位置?(下面是另一个问题,通过将PdfCanvas包装在一个矩形的画布中,代码示例实现了这一点:)或者如果您使用的是PdfPages而不是文档,我想也有定位选项。