Esempio n. 1
0
        private string[] crearPdf(int numEtiq,string idcodigo)
        {
            string[] correct = new string[2] ;
            ProductoFacade prodF = new ProductoFacade();
            string nombreProd = prodF.getnombreProdbyidProd(idcodigo);
            try
            {
                //Etiqueta para rollo con 1 columnas de mica
                if (numEtiq == 0)
                {
                    // Creamos el documento con el tamaño de página tradicional
                    Document doc = new Document(PageSize.LETTER);
                    // Indicamos donde vamos a guardar el documento
                    PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(urlpdf_1col+"//"+nombreProd+".pdf", FileMode.Create));
                    
                    doc.AddCreator("Magnolia");
                    doc.Open();
                    BaseFont serif = BaseFont.CreateFont(@"C:\Windows\Fonts\micross.ttf", "Identity-H", BaseFont.EMBEDDED);
                    iTextSharp.text.Font _standardFont = new iTextSharp.text.Font(serif, Convert.ToInt32(txtTamanoFuente.Text), iTextSharp.text.Font.NORMAL, iTextSharp.text.Color.BLACK);

                    int col = 1;
                    int row = Convert.ToInt32(txtfila.Text);
                    PdfPTable tblPrueba = new PdfPTable(col);
                    doc.SetMargins(0f, 0f, 0f, 0f);
                    tblPrueba.HorizontalAlignment = Element.ALIGN_CENTER;
                    tblPrueba.WidthPercentage = 50;
                    iTextSharp.text.Image imagen = iTextSharp.text.Image.GetInstance(urlimagen);
                    imagen.Alignment = Element.ALIGN_CENTER;
                    imagen.ScaleToFit(140f, 120f);

                    string txtsobreBarra = "";
                    if (chkGenerateLabel.IsChecked.Value)
                    {
                        txtsobreBarra = txtSobreBarra.Text;
                    }

                    for (int c = 0; c < col; c++)
                    {
                        for (int f = 0; f < row; f++)
                        {
                            PdfPCell clLabel = new PdfPCell(new Phrase(txtsobreBarra, _standardFont));
                            clLabel.HorizontalAlignment = Element.ALIGN_CENTER;
                            clLabel.BorderWidth = 0;

                            PdfPCell clNombre = new PdfPCell(imagen);
                            clNombre.HorizontalAlignment = Element.ALIGN_CENTER;
                            clNombre.BorderWidth = 0;
                            clNombre.PaddingBottom = 15;
                            tblPrueba.AddCell(clLabel);
                            tblPrueba.AddCell(clNombre);
                        }
                    }
                    doc.Add(tblPrueba);
                    doc.Close();
                    //MessageBox.Show(urlpdf);
                    writer.Close();
                    //Etiqueta para rollo con 3 columnas de  mica
                    
                    correct[0] = urlpdf_1col + "//" + nombreProd + ".pdf";
                    correct[1] = urlpdf_1col;
                }
                else if (numEtiq == 1)
                {
                    Document doc = new Document(PageSize.LETTER, 10f, 10f, 10f, 0f);
                    PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(urlpdf_3col + "//"+nombreProd+".pdf", FileMode.Create));
                    
                    doc.AddTitle("pdf");
                    doc.AddCreator("Magnolia");
                    doc.Open();
                    doc.Add(Chunk.NEWLINE);
                    BaseFont serif = BaseFont.CreateFont(@"C:\Windows\Fonts\micross.ttf", "Identity-H", BaseFont.EMBEDDED);
                    iTextSharp.text.Font _standardFont = new iTextSharp.text.Font(serif, Convert.ToInt32(txtTamanoFuente.Text), iTextSharp.text.Font.NORMAL, iTextSharp.text.Color.BLACK);
                    int col = 3;
                    double fk = (double)Convert.ToInt32(txtfila.Text) / col;
                    int row = Convert.ToInt32(Math.Ceiling(fk));
                    PdfPTable tblPrueba = new PdfPTable(col);
                    tblPrueba.WidthPercentage = 100;
                    iTextSharp.text.Image imagen = iTextSharp.text.Image.GetInstance(urlimagen);
                    imagen.BorderWidth = 0;
                    imagen.Alignment = Element.ALIGN_CENTER;
                    imagen.ScaleToFit(150f, 150f);

                    string txtsobreBarra = "";
                    if (chkGenerateLabel.IsChecked.Value)
                    {
                        txtsobreBarra = txtSobreBarra.Text;
                    }

                    for (int c = 0; c < col; c++)
                    {
                        for (int f = 0; f < row; f++)
                        {

                            PdfPCell clNombre = new PdfPCell { };
                            clNombre.BorderWidth = 0;
                            clNombre.Padding = 13;
                            clNombre.HorizontalAlignment = Element.ALIGN_CENTER;
                            iTextSharp.text.Paragraph textsobre = new iTextSharp.text.Paragraph(new Phrase(txtsobreBarra, _standardFont));
                            textsobre.Alignment = 1;
                            clNombre.AddElement(textsobre);
                            clNombre.AddElement(imagen);
                            tblPrueba.AddCell(clNombre);
                        }
                    }
                    doc.Add(tblPrueba);
                    doc.Close();
                    writer.Close();
                    //MessageBox.Show(urlpdf);
                    correct[0] = urlpdf_3col + "//" + nombreProd + ".pdf";
                    correct[1] = urlpdf_3col;
                }
                else if (numEtiq == 2)
                {

                    if (!string.IsNullOrEmpty(txtleft.Text))
                    {
                        if (!string.IsNullOrEmpty(txtright.Text))
                        {
                            if (!string.IsNullOrEmpty(txttop.Text))
                            {
                                if (!string.IsNullOrEmpty(txtbotom.Text))
                                {
                                    float left = float.Parse(txtleft.Text);
                                    float right = float.Parse(txtright.Text);
                                    float top = float.Parse(txttop.Text);
                                    float bottom = float.Parse(txtbotom.Text);


                                    Document doc = new Document(PageSize.LETTER, left, right, top, bottom);
                                    PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(urlpdf_pers + "//"+nombreProd+".pdf", FileMode.Create));
                                    //correct = urlpdf_pers + "//" + nombreProd + ".pdf";
                                    doc.AddTitle("pdf");
                                    doc.AddCreator("Magnolia");
                                    doc.Open();
                                    doc.Add(Chunk.NEWLINE);
                                    //System.Drawing.Font f=  new System.Drawing.Font("Microsoft Sans Serif", 10, System.Drawing.FontStyle.Regular);
                                    //FontFactory.GetFont("Microsoft Sans Serif", 10)
                                    BaseFont serif = BaseFont.CreateFont(@"C:\Windows\Fonts\micross.ttf", "Identity-H", BaseFont.EMBEDDED);
                                    iTextSharp.text.Font _standardFont = new iTextSharp.text.Font(serif, Convert.ToInt32(txtTamanoFuente.Text), iTextSharp.text.Font.NORMAL, iTextSharp.text.Color.BLACK);

                                    int col = Convert.ToInt32(txtcolumnas.Text); ;
                                    double fk = (double)Convert.ToInt32(txtfila.Text) / col;
                                    int row = Convert.ToInt32(Math.Ceiling(fk));
                                    PdfPTable tblPrueba = new PdfPTable(col);
                                    tblPrueba.WidthPercentage = 100;

                                    iTextSharp.text.Image imagen = iTextSharp.text.Image.GetInstance(urlimagen);
                                    imagen.BorderWidth = 0;
                                    imagen.Alignment = Element.ALIGN_CENTER;
                                    imagen.ScaleToFit(150f, 150f);
                                    string txtsobreBarra = "";
                                    if (chkGenerateLabel.IsChecked.Value)
                                    {
                                        txtsobreBarra = txtSobreBarra.Text;
                                    }

                                    for (int c = 0; c < col; c++)
                                    {
                                        for (int f = 0; f < row; f++)
                                        {

                                            PdfPCell clNombre = new PdfPCell { };
                                            clNombre.BorderWidth = 0;
                                            clNombre.Padding = 13;
                                            clNombre.HorizontalAlignment = Element.ALIGN_CENTER;
                                            iTextSharp.text.Paragraph textsobre = new iTextSharp.text.Paragraph(new Phrase(txtsobreBarra, _standardFont));
                                            textsobre.Alignment = 1;
                                            clNombre.AddElement(textsobre);
                                            clNombre.AddElement(imagen);
                                            tblPrueba.AddCell(clNombre);
                                        }
                                    }
                                    doc.Add(tblPrueba);
                                    doc.Close();
                                    writer.Close();
                                    correct[0] = urlpdf_pers + "//" + nombreProd + ".pdf";
                                    correct[1] = urlpdf_pers;

                                }
                                else
                                {
                                    MessageBox.Show("Ingresar margen: Abajo", "Magnolia", MessageBoxButton.OK, MessageBoxImage.Warning);

                                }
                            }
                            else
                            {
                                MessageBox.Show("Ingresar margen: Arriba", "Magnolia", MessageBoxButton.OK, MessageBoxImage.Warning);

                            }
                        }
                        else
                        {
                            MessageBox.Show("Ingresar margen:Derecho", "Magnolia", MessageBoxButton.OK, MessageBoxImage.Warning);

                        }
                    }
                    else
                    {
                        MessageBox.Show("Ingresar margen:Izquierdo", "Magnolia", MessageBoxButton.OK, MessageBoxImage.Warning);
                    }

                }   return correct;
            }
            catch (Exception e)
            {
                MessageBox.Show("Cerrar PDf abierto:" + e.ToString(), "Magnolia", MessageBoxButton.OK, MessageBoxImage.Error);
                return correct;
            }
         
        }