代码之家  ›  专栏  ›  技术社区  ›  mbcrump

在单个单元格中添加文本加条码?

  •  4
  • mbcrump  · 技术社区  · 16 年前

    基本上,我想使用ITextSharp将一个带有条形码的字符串组合到一个单元格中。 从下面的代码可以看出以下两行:

     table.AddCell(tempstring);
     table.AddCell(new text.Phrase(new text.Chunk(image39, 0, 0)));
    

    下面列出的完整代码

    using text = iTextSharp.text;
    using pdf = iTextSharp.text.pdf;
    
    text.Document doc = new text.Document();
    
                pdf.PdfWriter writer = pdf.PdfWriter.GetInstance(doc, new FileStream(pdfgen.sWorkPath + "\\OrderNumber" + txtSellerNumber.Text.ToString() + ".pdf", FileMode.Create));
                doc.Open();
                pdf.PdfContentByte cb = writer.DirectContent;
    
                pdf.Barcode39 code39 = new pdf.Barcode39();
                code39.Code = txtSellerNumber.Text.ToString();
                code39.StartStopText = false;
                text.Image image39 = code39.CreateImageWithBarcode(cb, null, null);
    
                iTextSharp.text.Table table = new iTextSharp.text.Table(3);
                table.BorderWidth = 2;
                table.BorderColor = new text.Color(0, 0, 255);
                table.Padding = 3;
                table.Spacing = 1;
                text.Cell cell = new text.Cell("CHS");
                cell.Header = true;
                cell.Colspan = 3;
    
    
                StringBuilder sb = new StringBuilder();
                sb.Append("NAME" + Environment.NewLine);
                sb.Append("Seller #" + txtSellerNumber.Text.ToString() + Environment.NewLine);
                sb.Append("Size #" + txtSize1.Text.ToString() + Environment.NewLine);
                sb.Append("Price #" + txtPrice1.Text.ToString() + Environment.NewLine);
                sb.Append("Description : " + txtDescription1.Text.ToString() + Environment.NewLine);
    
                string tempstring = sb.ToString();
                //Wanting to combine the following two cells into 1
                table.AddCell(tempstring);
                table.AddCell(new text.Phrase(new text.Chunk(image39, 0, 0)));
                //End
                doc.Add(table);
    
                doc.Close();
                HttpContext.Current.Response.Redirect("~/OrderNumber" + txtSellerNumber.Text.ToString() + ".pdf", false);
    
    1 回复  |  直到 15 年前
        1
  •  6
  •   Steele Parker    15 年前

    实际上相当简单…

    PdfPCell cell = new PdfPCell( table.DefaultCell /* optional */ );
    cell.AddElement( tempString );
    cell.AddElement(new text.Phrase(new text.Chunk(image39, 0, 0)));
    table.AddCell(cell);
    

    尝试一些变化……你可能需要经历一些,比如

    PdfPCell cell = new PdfPCell( table.DefaultCell /* optional */ );
    Phrase phrase = new Phrase();
    phrase.Add(new Chunk(tempString));
    phrase.Add(new Chunk(image39, 0, 0)));
    cell.AddElement( phrase );
    table.AddCell(cell);