Inconveniente con creación de archivos PDF
Y amigas, espero se enccuentresn bien agradezco si e pueden colaborar con lo siguiente, tengo el siguiente codigo en
Lenguaje C#, la idea es que me genere un archivo Pdf que se abra automaticamente en Acrobat Reader
public ActionResult crearPDF()
{
MemoryStream ms = new MemoryStream();
PdfWriter pw = new PdfWriter(ms);
PdfDocument pdfDocument = new PdfDocument(pw);
Document doc = new Document(pdfDocument, PageSize.LETTER);
doc.SetMargins(60, 20, 55, 20);
PdfFont fontColumnas = PdfFontFactory.CreateFont(StandardFonts.HELVETICA_BOLD);
PdfFont fontContenido = PdfFontFactory.CreateFont(StandardFonts.HELVETICA);
string[] columnas = { "idmov", "Nombre_almacen", "Fecha_compra", "Rifa_de" };
float[] tamanios = { 2, 6, 6, 6 };
Table tabla = new Table(UnitValue.CreatePercentArray(tamanios));
tabla.SetWidth(UnitValue.CreatePercentValue(100));
foreach (string columna in columnas)
{
tabla.AddHeaderCell(new Cell().Add(new Paragraph(columna).SetFont(fontColumnas)));
}
SqlCommand comando = new SqlCommand("select * from compyrifas where Nombre_almacen like '" + TextBox1.Text + "%'", cn1);
cn1.Open();
SqlDataReader reader = comando.ExecuteReader();
while (reader.Read())
{
tabla.AddCell(new Cell().Add(new Paragraph(reader["idmov"].ToString()).SetFont(fontContenido)));
tabla.AddCell(new Cell().Add(new Paragraph(reader["Nombre_almacen"].ToString()).SetFont(fontContenido)));
tabla.AddCell(new Cell().Add(new Paragraph(reader["Fecha_compra"].ToString()).SetFont(fontContenido)));
tabla.AddCell(new Cell().Add(new Paragraph(reader["Rifa_de"].ToString()).SetFont(fontContenido)));
}
var logo = new iText.Layout.Element.Image(ImageDataFactory.Create("C:/Users/hecamava/source/repos/ASP.NETCRUD/logo.png")).SetWidth(50); //ojo cambiar la ruta
var plogo = new Paragraph("").Add(logo);
var titulo = new Paragraph("Reporte de compras y rifas");
titulo.SetTextAlignment(TextAlignment.CENTER);
titulo.SetFontSize(12);
var dfecha = DateTime.Now.ToString("dd-MM-yyyy");
var dhora = DateTime.Now.ToString("hh:mm:ss");
var fecha = new Paragraph("Fecha:" + dfecha + "\nHora: " + dhora);
fecha.SetFontSize(12);
PdfDocument pdfDoc = new PdfDocument(new PdfWriter(ms));
Document docu = new Document(pdfDoc);
int numeros = pdfDoc.GetNumberOfPages(); //para saber cuantas paginas tiene mi documento y se asigna a la variable numeros
for (int i = 1; i <= numeros; i++)
{
PdfPage pagina = pdfDoc.GetPage(i);
float y = (pdfDoc.GetPage(i).GetPageSize().GetTop() - 15);
//coment 28 de Octubre 2020 doc.ShowTextAligned(plogo, 40, y, i, TextAlignment.CENTER, VerticalAlignment.TOP, 0);
docu.ShowTextAligned(plogo, 40, y, i, TextAlignment.CENTER, VerticalAlignment.TOP, 0);
//coment 28 de Octubre 2020 doc.ShowTextAligned(titulo, 150, y - 15, i, TextAlignment.CENTER, VerticalAlignment.TOP, 0);
docu.ShowTextAligned(titulo, 150, y - 15, i, TextAlignment.CENTER, VerticalAlignment.TOP, 0);
//coment 28 de Octubre 2020 doc.ShowTextAligned(fecha, 520, y - 15, i, TextAlignment.CENTER, VerticalAlignment.TOP, 0);
Docu. ShowTextAligned(fecha, 520, y - 15, i, TextAlignment. CENTER, VerticalAlignment.TOP, 0);
//Coment 28 de Octubre 2020 doc.ShowTextAligned(new Paragraph(String.Format("Pagina {0} de {1}", i, numeros)), pdfDoc. GetPage(i). GetPageSize().GetWidth() / 2, pdfDoc. GetPage(i). GetPageSize(). GetBottom() + 30, i,
docu. ShowTextAligned(new Paragraph(String.Format("Pagina {0} de {1}", i, numeros)), pdfDoc. GetPage(i). GetPageSize().GetWidth() / 2, pdfDoc. GetPage(i). GetPageSize().GetBottom() + 30, i,
TextAlignment.CENTER, VerticalAlignment.TOP, 0); //Ancho de la hoja
}
docu.Close();
doc.Add(tabla);
doc.Close();
byte[] byteStream = ms.ToArray();
ms = new MemoryStream();
ms.Write(byteStream, 0, byteStream.Length);
ms.Position = 0;
return new FileStreamResult(ms,"application / pdf");
}
El error que me muestra es el siguiente:
Error de servidor en la aplicación '/'.
Document has no pages.
Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.
Detalles de la excepción: iText. Kernel. PdfException: Document has no pages.
Error de código fuente:
Línea 215: }
Línea 216: //coment 28 de Octubre 2020 doc.Close();
Línea 217: docu.Close();
Línea 218: /* Aqui corte*/
Línea 219: // coment 28 de Octubre 2020 documento.Add(tabla);