Publicado en C# - Csharp

itextsharp c# : celdas con bordes parciales

Usando la librería itextsharp, debí dibujar un formulario en que no todas las celdas tenían los cuatro bordes, solo algunos.

Así que aquí les dejo el código para poner el borde personalizado según lo requieran:

using iTextSharp.text;
using iTextSharp.text.pdf;
using System.IO;
using System.Diagnostics;
private void button1_Click(object sender, EventArgs e)
        {
            //archivo temporal
            string outputFile = System.IO.Path.GetTempPath() + Guid.NewGuid().ToString() + ".pdf";

            //Create a standard .Net FileStream for the file, setting various flags
            using (FileStream fs = new FileStream(outputFile, FileMode.Create, FileAccess.Write, FileShare.None))
            {
                //Create a new PDF document setting the size to LETTER - tamaño CARTA
                using (Document doc = new Document(PageSize.LETTER))
                //using (Document doc = new Document(rec))
                {
                    //Bind the PDF document to the FileStream using an iTextSharp PdfWriter
                    using (PdfWriter w = PdfWriter.GetInstance(doc, fs))
                    {
                        //margenes fuera del limite normal a lo ancho -50f
                        doc.SetMargins(-50f, -50f, 10f, 10f);
                        //Open the document for writing
                        doc.Open();

                        //definimos cuatro columnas de 25% cada una
                        float[] columnWidths = { 25, 25, 25, 25 };
                        PdfPTable table = new PdfPTable(columnWidths);
                        //por defecto la tabla no tiene bordes
                        table.DefaultCell.Border = iTextSharp.text.Rectangle.NO_BORDER; 
                        var cell = new PdfPCell(new Phrase("uno"));
                        cell.Border = PdfPCell.BOTTOM_BORDER; //borde inferior
                        table.AddCell(cell);
                        cell = new PdfPCell(new Phrase("dos"));
                        cell.Border = PdfPCell.TOP_BORDER; //borde superior
                        table.AddCell(cell);
                        cell = new PdfPCell(new Phrase("tres"));
                        cell.Border = PdfPCell.LEFT_BORDER; //borde izquierdo
                        table.AddCell(cell);
                        cell = new PdfPCell(new Phrase("cuatro"));
                        cell.Border = PdfPCell.RIGHT_BORDER; //borde derecho
                        table.AddCell(cell);
                        doc.Add(table);

                        doc.Close();
                    }
                }
            }
            //abrimos el PDF con la aplicacion por defecto
            Process.Start(outputFile);
        }

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s