none
PDF Mesmo nome RRS feed

  • Pergunta

  •  quando o arquivo tem o mesmo nome ele me retorna um erro na linha

     using (FileStream stream = new FileStream(FileName, FileMode.Create))

    Teria como ajudar?

    private static string GetFilePath<Diag>(string Filter) where Diag : FileDialog, new()
            {
                using (Diag dialog = new Diag())
                {
                    dialog.InitialDirectory = "C:\\"; //diretório inicial
                    dialog.Filter = Filter;
                    if (dialog.ShowDialog() == DialogResult.OK) { return dialog.FileName; } else { return ""; }
                }
            }
    
            public static string GetSavePath(string Filter) { return GetFilePath<SaveFileDialog>(Filter); }
            public static string GetOpenPath(string Filter) { return GetFilePath<OpenFileDialog>(Filter); }
    
            private void exportarPDFToolStripMenuItem_Click(object sender, EventArgs e)
            {
    
                PdfPTable pdfTable = new PdfPTable(dataGridView1.DisplayedColumnCount(true));
                pdfTable.DefaultCell.Padding = 2;
                pdfTable.WidthPercentage = 100;
                pdfTable.HorizontalAlignment = Element.ALIGN_LEFT;
                pdfTable.DefaultCell.BorderWidth = 1;
    
    
                foreach (DataGridViewColumn column in dataGridView1.Columns)
                {
                    if (column.Visible)
                    {
                        PdfPCell cell = new PdfPCell(new Phrase(column.HeaderText));
                        cell.BackgroundColor = new iTextSharp.text.Color(240, 240, 240);
                        pdfTable.AddCell(cell);
                    }
                }
    
    
                foreach (DataGridViewRow row in dataGridView1.Rows)
                {
                    foreach (DataGridViewCell cell in row.Cells)
                    {
                        if (cell.Visible)
                        {
                            if (cell.Value != null)
                            {
                                if (cell.Value is DateTime)
                                {
                                    DateTime data;
                                    DateTime.TryParse(Convert.ToString(cell.Value), out data);
    
                                    pdfTable.AddCell(data.ToShortDateString());
                                }
                                else
                                {
                                    pdfTable.AddCell(cell.Value.ToString());
                                }
                            }
                        }
                    }
                }
    
    
                string folderPath = @"C:\Programa\Pauta Auditoria\PDF\";
                if (!Directory.Exists(folderPath))
                {
                    Directory.CreateDirectory(folderPath);
                }
    
                string FileName = "";
                using (SaveFileDialog dialog = new SaveFileDialog())
                {
                    dialog.InitialDirectory = folderPath;
                    dialog.Filter = "Arquivos PDF (*.pdf)|*.pdf";
                    if (dialog.ShowDialog() == DialogResult.OK) { FileName = dialog.FileName; }
                }
    
                using (FileStream stream = new FileStream(FileName, FileMode.Create))
    
                {
                    Document pdfDoc = new Document(PageSize.A4, 14f, 14f, 80f, 30f);
                    PdfWriter.GetInstance(pdfDoc, stream);
                    pdfDoc.Open();
                    var imagemdotopo = iTextSharp.text.Image.GetInstance(@"C:\Programa\Pauta Auditoria\01.png");
                    imagemdotopo.SetAbsolutePosition(195, 770);
                    pdfDoc.Add(imagemdotopo);
                    pdfDoc.Add(pdfTable);
                    pdfDoc.Close();
                    stream.Close();
                }
            }

    segunda-feira, 7 de novembro de 2016 18:59

Respostas

Todas as Respostas

  • Bom dia SouthNew,

    Qual é o erro?

    Atenciosamente,


    Robson William Silva

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    terça-feira, 8 de novembro de 2016 12:27
    Moderador
  • na verdade não é bem um erro, no programa quando o botão é pressionado ele solicita o local e nome do arquivo que o usuário quer salvar. So que se o usuário colocar um nome no pdf que já existe um pdf na pasta com o mesmo nome ele da uma mensagem na linha informada. Eu gostaria de um if ou alguma coisa  que não retornasse nada  quando isso acontecer. 
    terça-feira, 8 de novembro de 2016 13:12
  • Olá!

    Qual é a mensagem que ele dá nessa linha? Teoricamente, dessa forma que você fez, se o arquivo já existir ele deve ser automaticamente substituído.. A não ser que o arquivo esteja aberto em outra aplicação, aí você receberá um erro que não pode abrir o arquivo para escrita..

    Abraço!


    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima

    • Marcado como Resposta SouthNew terça-feira, 8 de novembro de 2016 16:05
    terça-feira, 8 de novembro de 2016 13:43
    Moderador