iTextSharp的条码图像添加到PdfPCell(Add itextsharp barcode

2019-10-18 18:30发布

我试图生成一个文本字符串,条形码,然后使用PDF的iTextSharp的结果。 现在,我有下面的代码:

// Create a Document object
var pdfToCreate = new Document(PageSize.A4, 0, 0, 0, 0);

// Create a new PdfWrite object, writing the output to a MemoryStream
var outputStream = new MemoryStream();
var pdfWriter = PdfWriter.GetInstance(pdfToCreate, outputStream);
PdfContentByte cb = new PdfContentByte(pdfWriter);
// Open the Document for writing
pdfToCreate.Open();

PdfPTable BarCodeTable = new PdfPTable(3);
// Create barcode
Barcode128 code128          = new Barcode128();
code128.CodeType            = Barcode.CODE128_UCC;
code128.Code                = "00100370006756555316";
// Generate barcode image
iTextSharp.text.Image image128 = code128.CreateImageWithBarcode(cb, null, null);
// Add image to table cell
BarCodeTable.AddCell(image128);
// Add table to document
pdfToCreate.Add(BarCodeTable);

pdfToCreate.Close();

当我运行这一点,并试图以编程方式打开PDF,我收到一个错误提示“该文件没有任何页面。”

然而,当我使用:

 pdfToCreate.Add(image128);

(而不是增加一个表,我把它添加到单元格),条形码显示出来(虽然它浮关闭文档)。

我想条形码发送到一个表,这样我可以更容易格式化文档。 最终产品将是20-60条形码从数据库中读取。 关于我要去哪里不对任何想法?

Answer 1:

你是在告诉PdfPTable构造函数来创建一个三列的表,但只提供了一列:

PdfPTable BarCodeTable = new PdfPTable(3);

iTextSharp的默认忽略不完整的行。 您可以改变构造以符合您的列数,增加额外的细胞或致电BarCodeTable.CompleteRow()将使用默认的模板细胞填补空白。



文章来源: Add itextsharp barcode image to PdfPCell