1

I have a application in windows form using c# and itext7. I create a invoice in pdf and the pdf layout is fine, but whe I sent the file to be printed in a dot matrix printer EPSON TM-U220 the font is blurry like this image: enter image description here

The entire codo to generate the pdf is: FontProgram fontProgram = FontProgramFactory.CreateFont(fuente); PdfFont font = PdfFontFactory.CreateFont(fontProgram);

                //PdfFont font = PdfFontFactory.CreateFont(StandardFonts.COURIER, PdfEncodings.UTF8);
                
                Table tabla = new Table(1).UseAllAvailableWidth().SetFixedLayout();
                Cell celda = new Cell().Add(new Paragraph("FEDERACIÓN NICARAGUENSE DE COOPERATIVAS DE TAXI").SetFontSize(7).SetFont(font))
                .SetTextAlignment(TextAlignment.CENTER).SetMargins(0f, 0f, 0f, 0f).SetPadding(0f)
                .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);
                celda = new Cell().Add(new Paragraph("FENICOOTAXI, R.L.").SetFontSize(16).SetFont(font))
                    .SetTextAlignment(TextAlignment.CENTER).SetMargins(0f, 0f, 0f, 0f).SetPadding(0f)
                    .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);
                conDataBase.Open();
                MySqlDataReader cabecera;
                MySqlCommand cmd = new MySqlCommand(consulta, conDataBase);
                cabecera = cmd.ExecuteReader();
                while (cabecera.Read())
                {
                    suma = cabecera["Suma"].ToString();
                    descuento = cabecera["Descuento"].ToString();
                    sub_total = cabecera["SubTotal"].ToString();
                    iva = cabecera["Iva"].ToString();
                    total_pagar = cabecera["Total"].ToString();
                    cobro_original = cabecera["Original"].ToString();
                    ahorro_total = cabecera["Ahorro"].ToString();
                    vendedor = cabecera["Vendedor"].ToString();
                    notas = cabecera["notas"].ToString();
                    factura_pdf = cabecera["Ref"].ToString() + ".pdf";

                    celda = new Cell().Add(new Paragraph("SUCURSAL " + cabecera["Sucursal"].ToString())
                                        .SetFontSize(12).SetFont(font)).SetTextAlignment(TextAlignment.CENTER).SetMargins(0f, 0f, 0f, 0f).SetPadding(0f)
                                        .SetBorder(Border.NO_BORDER);
                    tabla.AddCell(celda);
                    celda = new Cell().Add(new Paragraph("Bo. Martha Quezada CST 1C al Este")
                        .SetFontSize(12).SetFont(font)).SetTextAlignment(TextAlignment.CENTER).SetMargins(0f, 0f, 0f, 0f).SetPadding(0f)
                        .SetBorder(Border.NO_BORDER);
                    tabla.AddCell(celda);
                    celda = new Cell().Add(new Paragraph("RUC J0810000002960 - Tel 2222 - 5001")
                        .SetFontSize(12).SetFont(font)).SetTextAlignment(TextAlignment.CENTER).SetMargins(0f, 0f, 0f, 0f).SetPadding(0f)
                        .SetBorder(Border.NO_BORDER);
                    tabla.AddCell(celda);
                    celda = new Cell().Add(new Paragraph("AUT - DGI: ASFC - 04 - 0126 - 09 - 2013 - 2")
                        .SetFontSize(12).SetFont(font)).SetTextAlignment(TextAlignment.CENTER).SetMargins(0f, 0f, 0f, 0f).SetPadding(0f)
                        .SetBorder(Border.NO_BORDER);

                    celda = new Cell().Add(new Paragraph(cabecera["Fecha"].ToString())
                .SetFontSize(12).SetFont(font)).SetTextAlignment(TextAlignment.CENTER).SetMargins(0f, 0f, 0f, 0f).SetPadding(0f)
                .SetBorder(Border.NO_BORDER);
                    tabla.AddCell(celda);

                    celda = new Cell().Add(new Paragraph(cabecera["Factura"].ToString())
                    .SetFontSize(12).SetFont(font)).SetTextAlignment(TextAlignment.CENTER).SetMargins(0f, 0f, 0f, 0f).SetPadding(0f)
                    .SetBorder(Border.NO_BORDER);
                    tabla.AddCell(celda);

                    celda = new Cell().Add(new Paragraph(cabecera["Cliente"].ToString())
                    .SetFontSize(12).SetFont(font)).SetTextAlignment(TextAlignment.CENTER).SetMargins(0f, 0f, 0f, 0f).SetPadding(0f)
                    .SetBorder(Border.NO_BORDER);
                    tabla.AddCell(celda);
                }
                celda = new Cell().Add(new Paragraph("--------------------------------")
                    .SetFontSize(12).SetFont(font)).SetTextAlignment(TextAlignment.CENTER)
                    .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);
                celda = new Cell().Add(new Paragraph("Cant   Descripción   Precio")
                .SetFontSize(12).SetFont(font)).SetTextAlignment(TextAlignment.CENTER)
                .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);
                SolidLine linea = new SolidLine(1f);
                Color magentaColor = new DeviceCmyk(0f, 1f, 0f, 0f);
                linea.SetColor(magentaColor);
                celda = new Cell().Add(new Paragraph("--------------------------------")
                .SetFontSize(12).SetFont(font)).SetTextAlignment(TextAlignment.CENTER)
                .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);
                conDataBase.Close();
                conDataBase.Open();
                MySqlDataReader detalle;
                MySqlCommand cmd2 = new MySqlCommand(consulta2, conDataBase);
                detalle = cmd2.ExecuteReader();
                Table tabla_detalle = new Table(1).UseAllAvailableWidth().SetFixedLayout();
                Cell celda_detalle = new Cell();
                while (detalle.Read())
                {
                    celda_detalle = new Cell().Add(new Paragraph(detalle["Descripcion"].ToString())
                    .SetFontSize(12).SetFont(font)).SetTextAlignment(TextAlignment.LEFT).SetMargins(0f, 0f, 0f, 0f).SetPadding(0f)
                    .SetBorder(Border.NO_BORDER);
                    tabla.AddCell(celda_detalle);

                    celda_detalle = new Cell().Add(new Paragraph(detalle["Precio"].ToString())
                   .SetFontSize(12).SetFont(font)).SetTextAlignment(TextAlignment.RIGHT).SetMargins(0f, 0f, 0f, 0f).SetPadding(0f)
                   .SetBorder(Border.NO_BORDER);
                    tabla.AddCell(celda_detalle);

                    celda_detalle = new Cell().Add(new Paragraph(detalle["Descu"].ToString())
                  .SetFontSize(12).SetFont(font)).SetTextAlignment(TextAlignment.RIGHT).SetMargins(0f, 0f, 0f, 0f).SetPadding(0f)
                  .SetBorder(Border.NO_BORDER);
                    tabla.AddCell(celda_detalle);
                }
                celda = new Cell().Add(new Paragraph("--------------------------------")
                    .SetFontSize(12).SetFont(font)).SetTextAlignment(TextAlignment.CENTER)
                    .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);

                celda_detalle = new Cell().Add(new Paragraph("Suma: " + suma)
               .SetFontSize(12).SetFont(font)).SetTextAlignment(TextAlignment.RIGHT).SetMargins(0f, 0f, 0f, 0f).SetPadding(0f)
               .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda_detalle);
                celda_detalle = new Cell().Add(new Paragraph("Desc: " + descuento)
               .SetFontSize(12).SetFont(font)).SetTextAlignment(TextAlignment.RIGHT).SetMargins(0f, 0f, 0f, 0f).SetPadding(0f)
               .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda_detalle);
                celda_detalle = new Cell().Add(new Paragraph("Sub total " + sub_total)
               .SetFontSize(12).SetFont(font)).SetTextAlignment(TextAlignment.RIGHT).SetMargins(0f, 0f, 0f, 0f).SetPadding(0f)
               .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda_detalle);
                celda_detalle = new Cell().Add(new Paragraph("IVA " + iva)
               .SetFontSize(12).SetFont(font)).SetTextAlignment(TextAlignment.RIGHT).SetMargins(0f, 0f, 0f, 0f).SetPadding(0f)
               .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda_detalle);
                celda_detalle = new Cell().Add(new Paragraph("Total a Pagar: " + total_pagar)
               .SetFontSize(12).SetFont(font)).SetTextAlignment(TextAlignment.RIGHT).SetMargins(0f, 0f, 0f, 0f).SetPadding(0f)
               .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda_detalle);
                celda = new Cell().Add(new Paragraph("--------------------------------")
                .SetFontSize(12).SetFont(font)).SetTextAlignment(TextAlignment.CENTER)
                .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);
                celda_detalle = new Cell().Add(new Paragraph("Su cobro original era de: " + cobro_original)
               .SetFontSize(12).SetFont(font)).SetTextAlignment(TextAlignment.RIGHT).SetMargins(0f, 0f, 0f, 0f).SetPadding(0f)
               .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda_detalle);
                celda_detalle = new Cell().Add(new Paragraph("Su ahorro total es de: " + ahorro_total)
               .SetFontSize(12).SetFont(font)).SetTextAlignment(TextAlignment.RIGHT).SetMargins(0f, 0f, 0f, 0f).SetPadding(0f)
               .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda_detalle);
                celda = new Cell().Add(new Paragraph("--------------------------------")
                .SetFontSize(12).SetFont(font)).SetTextAlignment(TextAlignment.CENTER)
                .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);
                celda = new Cell().Add(new Paragraph(vendedor)
                .SetFontSize(12).SetFont(font)).SetTextAlignment(TextAlignment.CENTER)
                .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);
                celda = new Cell().Add(new Paragraph("*** NO SE ACEPTAN DEVOLUCIONES ***")
                .SetFontSize(9).SetFont(font)).SetTextAlignment(TextAlignment.CENTER)
                .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);
                celda = new Cell().Add(new Paragraph("*PARTES ELÉCTRICAS NO TIENEN GARANTÍA*")
                .SetFontSize(9).SetFont(font)).SetTextAlignment(TextAlignment.CENTER)
                .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);
                celda = new Cell().Add(new Paragraph("*SI EL PAGO ES CON TARJETA, NO SE HACE*")
                .SetFontSize(9).SetFont(font)).SetTextAlignment(TextAlignment.CENTER)
                .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);
                celda = new Cell().Add(new Paragraph("*DEVOLUCIÓN, SOLO CAMBIO DEL PRODUCTO*")
                .SetFontSize(9).SetFont(font)).SetTextAlignment(TextAlignment.CENTER)
                .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);
                celda = new Cell().Add(new Paragraph("Acepto los términos y las condiciones")
                .SetFontSize(9).SetFont(font)).SetTextAlignment(TextAlignment.LEFT)
                .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);
                celda = new Cell().Add(new Paragraph("referidos en este documento y declaro")
                .SetFontSize(9).SetFont(font)).SetTextAlignment(TextAlignment.LEFT)
                .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);
                celda = new Cell().Add(new Paragraph("que he recibido la mercadería a")
                .SetFontSize(9).SetFont(font)).SetTextAlignment(TextAlignment.LEFT)
                .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);
                celda = new Cell().Add(new Paragraph("satisfaccion")
                .SetFontSize(9).SetFont(font)).SetTextAlignment(TextAlignment.LEFT)
                .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);
                celda = new Cell().Add(new Paragraph(" ")
                .SetFontSize(8).SetFont(font)).SetTextAlignment(TextAlignment.CENTER)
                .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);
                celda = new Cell().Add(new Paragraph(" ")
                .SetFontSize(8).SetFont(font)).SetTextAlignment(TextAlignment.CENTER)
                .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);
                celda = new Cell().Add(new Paragraph(" ")
                .SetFontSize(8).SetFont(font)).SetTextAlignment(TextAlignment.CENTER)
                .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);
                celda = new Cell().Add(new Paragraph(" ")
                .SetFontSize(8).SetFont(font)).SetTextAlignment(TextAlignment.CENTER)
                .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);
                celda = new Cell().Add(new Paragraph(" ")
                .SetFontSize(8).SetFont(font)).SetTextAlignment(TextAlignment.CENTER)
                .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);
                celda = new Cell().Add(new Paragraph(" ")
                .SetFontSize(8).SetFont(font)).SetTextAlignment(TextAlignment.CENTER)
                .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);
                celda = new Cell().Add(new Paragraph("----------------------")
                .SetFontSize(8).SetFont(font)).SetTextAlignment(TextAlignment.CENTER)
                .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);
                celda = new Cell().Add(new Paragraph("Firma Cliente")
                .SetFontSize(12).SetFont(font)).SetTextAlignment(TextAlignment.CENTER)
                .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);
                celda = new Cell().Add(new Paragraph(" ")
                .SetFontSize(8).SetFont(font)).SetTextAlignment(TextAlignment.CENTER)
                .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);
                celda = new Cell().Add(new Paragraph(" ")
                .SetFontSize(12).SetFont(font)).SetTextAlignment(TextAlignment.CENTER)
                .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);
                celda = new Cell().Add(new Paragraph(" ")
                .SetFontSize(12).SetFont(font)).SetTextAlignment(TextAlignment.CENTER)
                .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);
                celda = new Cell().Add(new Paragraph("COTIZACIONES Y VENTAS VIRTUALES")
                .SetFontSize(9).SetFont(font)).SetTextAlignment(TextAlignment.CENTER)
                .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);
                celda = new Cell().Add(new Paragraph("8742-9887 8873-5507")
                .SetFontSize(9).SetFont(font)).SetTextAlignment(TextAlignment.CENTER)
                .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);
                celda = new Cell().Add(new Paragraph(" ")
                .SetFontSize(12).SetFont(font)).SetTextAlignment(TextAlignment.CENTER)
                .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);
                celda = new Cell().Add(new Paragraph("QUEJAS Y SUGERENCIAS")
                .SetFontSize(9).SetFont(font)).SetTextAlignment(TextAlignment.CENTER)
                .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);
                celda = new Cell().Add(new Paragraph("8826-8622")
                .SetFontSize(9).SetFont(font)).SetTextAlignment(TextAlignment.CENTER)
                .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);
                celda = new Cell().Add(new Paragraph("Notas: " + notas)
                .SetFontSize(9).SetFont(font)).SetTextAlignment(TextAlignment.CENTER)
                .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);
                celda = new Cell().Add(new Paragraph("")
                .SetFontSize(12).SetFont(font)).SetTextAlignment(TextAlignment.CENTER)
                .SetBorder(Border.NO_BORDER);
                tabla.AddCell(celda);
                conDataBase.Close();
                PdfWriter pw = new PdfWriter(ruta + factura_pdf);
                PdfDocument pdf = new PdfDocument(pw);
                Rectangle rectangle_FCT = new Rectangle(0, 0, 219, 100000.0F);
                PageSize FCT_TPL = new PageSize(rectangle_FCT);
                Document document = new Document(pdf, FCT_TPL);
                document.SetMargins(0, 0, 0, 0);
                float necessaryWidth = 219f;
                LayoutResult esquema = tabla.CreateRendererSubTree().SetParent(document.GetRenderer()).Layout(new LayoutContext(new LayoutArea(1, new Rectangle(necessaryWidth, 100000))));
                float alto_tabla = esquema.GetOccupiedArea().GetBBox().GetHeight();
                Document doc2 = new Document(pdf, new PageSize(necessaryWidth + 10 * 2, alto_tabla + 10 * 2));
                doc2.SetMargins(10, 10, 10, 10);
                tabla.SetKeepTogether(true);
                doc2.Add(tabla);
                doc2.Close();
                //imprimir(ruta + factura_pdf);
                //Actualizar_Cola(factura, 0, 0, 0, null, 0, 0, 0);
                //EliminarArchivo(ruta + factura_pdf);
                System.Diagnostics.Process.Start(ruta + factura_pdf);

The pdf file is here: https://file.lu/d/Hf0

  • Hi, so what is your question? Have you tried other fonts for example? Also the code sample is hard to reproduce as it relies e.g. on your DB. But it will be hard to reproduce anyway since it requires a specific printer :) – Alexey Subach Dec 26 '21 at 20:46

0 Answers0