From d8394e44cc56810e37045c94b01bf71386fb2972 Mon Sep 17 00:00:00 2001 From: "gustavo.gvs" Date: Tue, 22 Oct 2024 16:29:52 -0300 Subject: [PATCH] 1.1.12e --- PeriTAB/Class_Buttons.cs | 9 +- PeriTAB/PeriTAB.csproj | 2 +- PeriTAB/Ribbon1.Designer.cs | 418 ++++++++++++++++++------------------ PeriTAB/Ribbon1.cs | 408 +++++++++++++++++++++++------------ 4 files changed, 491 insertions(+), 346 deletions(-) diff --git a/PeriTAB/Class_Buttons.cs b/PeriTAB/Class_Buttons.cs index 3f0a84c..6d0dcda 100644 --- a/PeriTAB/Class_Buttons.cs +++ b/PeriTAB/Class_Buttons.cs @@ -184,6 +184,12 @@ public void muda_imagem(string botao, System.Drawing.Bitmap imagem) case "button_confere_num_legenda": Globals.Ribbons.Ribbon1.button_confere_num_legenda.Image = imagem; break; + case "button_abre_SISCRIM": + Globals.Ribbons.Ribbon1.button_abre_SISCRIM.Image = imagem; + break; + case "button_renomeia_documento": + Globals.Ribbons.Ribbon1.button_renomeia_documento.Image = imagem; + break; case "button_gera_pdf": Globals.Ribbons.Ribbon1.button_gera_pdf.Image = imagem; break; @@ -208,9 +214,6 @@ public void muda_imagem(string botao, System.Drawing.Bitmap imagem) case "menu_formatacao_campos": Globals.Ribbons.Ribbon1.menu_formatacao_campos.Image = imagem; break; - case "button_Subir_SISCRIM": - Globals.Ribbons.Ribbon1.button_abre_SISCRIM.Image = imagem; - break; //default: // break; } diff --git a/PeriTAB/PeriTAB.csproj b/PeriTAB/PeriTAB.csproj index f152ed4..5022d5e 100644 --- a/PeriTAB/PeriTAB.csproj +++ b/PeriTAB/PeriTAB.csproj @@ -33,7 +33,7 @@ C:\Users\gustavo.gvs.PF\OneDrive - Polícia Federal\PCF Gustavo\Visual Studio\PeriTAB\publicacoes\ pt-BR - 1.1.12.0 + 1.1.12.1 false true 0 diff --git a/PeriTAB/Ribbon1.Designer.cs b/PeriTAB/Ribbon1.Designer.cs index bccec37..e313cb1 100644 --- a/PeriTAB/Ribbon1.Designer.cs +++ b/PeriTAB/Ribbon1.Designer.cs @@ -54,20 +54,39 @@ private void InitializeComponent() this.tab_default = this.Factory.CreateRibbonTab(); this.tab = this.Factory.CreateRibbonTab(); this.group_porextenso = this.Factory.CreateRibbonGroup(); - this.button_moeda = this.Factory.CreateRibbonButton(); - this.button_inteiro = this.Factory.CreateRibbonButton(); this.dropDown_unidade = this.Factory.CreateRibbonDropDown(); this.dropDown_precisao = this.Factory.CreateRibbonDropDown(); - this.button_massa = this.Factory.CreateRibbonButton(); this.group_formatacao = this.Factory.CreateRibbonGroup(); + this.group_estilos = this.Factory.CreateRibbonGroup(); + this.group_campos = this.Factory.CreateRibbonGroup(); + this.group_imagem = this.Factory.CreateRibbonGroup(); + this.separator2 = this.Factory.CreateRibbonSeparator(); + this.dropDown_separador = this.Factory.CreateRibbonDropDown(); + this.box1 = this.Factory.CreateRibbonBox(); + this.checkBox_largura = this.Factory.CreateRibbonCheckBox(); + this.editBox_largura = this.Factory.CreateRibbonEditBox(); + this.box2 = this.Factory.CreateRibbonBox(); + this.checkBox_altura = this.Factory.CreateRibbonCheckBox(); + this.editBox_altura = this.Factory.CreateRibbonEditBox(); + this.separator1 = this.Factory.CreateRibbonSeparator(); + this.group_tabela = this.Factory.CreateRibbonGroup(); + this.group_conferencia = this.Factory.CreateRibbonGroup(); + this.group_entrega = this.Factory.CreateRibbonGroup(); + this.checkBox_assinar = this.Factory.CreateRibbonCheckBox(); + this.checkBox_abrir = this.Factory.CreateRibbonCheckBox(); + this.group_sobre = this.Factory.CreateRibbonGroup(); + this.label_nome = this.Factory.CreateRibbonLabel(); + this.label_criado = this.Factory.CreateRibbonLabel(); + this.label_email = this.Factory.CreateRibbonLabel(); + this.button_moeda = this.Factory.CreateRibbonButton(); + this.button_inteiro = this.Factory.CreateRibbonButton(); + this.button_massa = this.Factory.CreateRibbonButton(); this.button_alinha_legenda = this.Factory.CreateRibbonButton(); this.button_numera_paragrafos = this.Factory.CreateRibbonButton(); this.toggleButton_painel_de_estilos_velho = this.Factory.CreateRibbonToggleButton(); this.toggleButton_painel_de_estilos = this.Factory.CreateRibbonToggleButton(); - this.group_estilos = this.Factory.CreateRibbonGroup(); this.button_importa_estilos = this.Factory.CreateRibbonButton(); this.button_limpa_estilos = this.Factory.CreateRibbonButton(); - this.group_campos = this.Factory.CreateRibbonGroup(); this.menu_inserir_campos = this.Factory.CreateRibbonMenu(); this.button_inserir_sumario = this.Factory.CreateRibbonButton(); this.button_inserir_pagina = this.Factory.CreateRibbonButton(); @@ -84,7 +103,6 @@ private void InitializeComponent() this.checkBox_mostra_indicadores = this.Factory.CreateRibbonCheckBox(); this.checkBox_atualizar_antes_de_imprimir_campos = this.Factory.CreateRibbonCheckBox(); this.checkBox_vercodigo_campos = this.Factory.CreateRibbonCheckBox(); - this.group_imagem = this.Factory.CreateRibbonGroup(); this.menu_inserir_imagem = this.Factory.CreateRibbonMenu(); this.button_borda_preta = this.Factory.CreateRibbonButton(); this.button_borda_vermelha = this.Factory.CreateRibbonButton(); @@ -99,43 +117,25 @@ private void InitializeComponent() this.menu_formatacao_imagem = this.Factory.CreateRibbonMenu(); this.button_estilo_figura = this.Factory.CreateRibbonButton(); this.button_alinha_legenda_figuras = this.Factory.CreateRibbonButton(); - this.separator2 = this.Factory.CreateRibbonSeparator(); this.button_cola_imagem = this.Factory.CreateRibbonButton(); - this.dropDown_separador = this.Factory.CreateRibbonDropDown(); - this.box1 = this.Factory.CreateRibbonBox(); - this.checkBox_largura = this.Factory.CreateRibbonCheckBox(); - this.editBox_largura = this.Factory.CreateRibbonEditBox(); - this.box2 = this.Factory.CreateRibbonBox(); - this.checkBox_altura = this.Factory.CreateRibbonCheckBox(); - this.editBox_altura = this.Factory.CreateRibbonEditBox(); - this.separator1 = this.Factory.CreateRibbonSeparator(); this.button_redimensiona_imagem = this.Factory.CreateRibbonButton(); this.button_autodimensiona_imagem = this.Factory.CreateRibbonButton(); this.menu_imagem = this.Factory.CreateRibbonMenu(); this.checkBox_referencia = this.Factory.CreateRibbonCheckBox(); - this.group_tabela = this.Factory.CreateRibbonGroup(); this.menu_inserir_tabela = this.Factory.CreateRibbonMenu(); this.button_legenda_tabela = this.Factory.CreateRibbonButton(); this.menu_remover_tabela = this.Factory.CreateRibbonMenu(); this.menu_formatacao_tabela = this.Factory.CreateRibbonMenu(); this.button_centralizar_tabela = this.Factory.CreateRibbonButton(); this.button_legenda_tabelas = this.Factory.CreateRibbonButton(); - this.group_conferencia = this.Factory.CreateRibbonGroup(); this.button_confere_formatacao = this.Factory.CreateRibbonButton(); this.button_confere_preambulo = this.Factory.CreateRibbonButton(); this.button_confere_num_legenda = this.Factory.CreateRibbonButton(); - this.group_entrega = this.Factory.CreateRibbonGroup(); this.button_abre_SISCRIM = this.Factory.CreateRibbonButton(); this.button_renomeia_documento = this.Factory.CreateRibbonButton(); this.button_gera_pdf = this.Factory.CreateRibbonButton(); - this.checkBox_assinar = this.Factory.CreateRibbonCheckBox(); - this.checkBox_abrir = this.Factory.CreateRibbonCheckBox(); this.menu_entrega = this.Factory.CreateRibbonMenu(); this.checkBox_senha = this.Factory.CreateRibbonCheckBox(); - this.group_sobre = this.Factory.CreateRibbonGroup(); - this.label_nome = this.Factory.CreateRibbonLabel(); - this.label_criado = this.Factory.CreateRibbonLabel(); - this.label_email = this.Factory.CreateRibbonLabel(); this.tab_default.SuspendLayout(); this.tab.SuspendLayout(); this.group_porextenso.SuspendLayout(); @@ -181,24 +181,6 @@ private void InitializeComponent() this.group_porextenso.Label = "Por Extenso"; this.group_porextenso.Name = "group_porextenso"; // - // button_moeda - // - this.button_moeda.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge; - this.button_moeda.Image = global::PeriTAB.Properties.Resources.dinheiro; - this.button_moeda.Label = "Moeda"; - this.button_moeda.Name = "button_moeda"; - this.button_moeda.ShowImage = true; - this.button_moeda.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.button_moeda_Click); - // - // button_inteiro - // - this.button_inteiro.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge; - this.button_inteiro.Image = global::PeriTAB.Properties.Resources.numero; - this.button_inteiro.Label = "Número inteiro"; - this.button_inteiro.Name = "button_inteiro"; - this.button_inteiro.ShowImage = true; - this.button_inteiro.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.button_inteiro_Click); - // // dropDown_unidade // ribbonDropDownItemImpl1.Label = "grama (g)"; @@ -227,14 +209,6 @@ private void InitializeComponent() this.dropDown_precisao.SizeString = "000000000"; this.dropDown_precisao.Visible = false; // - // button_massa - // - this.button_massa.Image = global::PeriTAB.Properties.Resources.peso; - this.button_massa.Label = "Massa / Volume"; - this.button_massa.Name = "button_massa"; - this.button_massa.ShowImage = true; - this.button_massa.Visible = false; - // // group_formatacao // this.group_formatacao.Items.Add(this.button_alinha_legenda); @@ -244,6 +218,190 @@ private void InitializeComponent() this.group_formatacao.Label = "Formatação"; this.group_formatacao.Name = "group_formatacao"; // + // group_estilos + // + this.group_estilos.Items.Add(this.button_importa_estilos); + this.group_estilos.Items.Add(this.button_limpa_estilos); + this.group_estilos.Label = "Estilos"; + this.group_estilos.Name = "group_estilos"; + // + // group_campos + // + this.group_campos.Items.Add(this.menu_inserir_campos); + this.group_campos.Items.Add(this.button_atualiza_campos); + this.group_campos.Items.Add(this.menu_formatacao_campos); + this.group_campos.Items.Add(this.button_separador1); + this.group_campos.Items.Add(this.button_separador2); + this.group_campos.Items.Add(this.menu_campos); + this.group_campos.Label = "Campos"; + this.group_campos.Name = "group_campos"; + // + // group_imagem + // + this.group_imagem.Items.Add(this.menu_inserir_imagem); + this.group_imagem.Items.Add(this.menu_remover_imagem); + this.group_imagem.Items.Add(this.menu_formatacao_imagem); + this.group_imagem.Items.Add(this.separator2); + this.group_imagem.Items.Add(this.button_cola_imagem); + this.group_imagem.Items.Add(this.dropDown_separador); + this.group_imagem.Items.Add(this.box1); + this.group_imagem.Items.Add(this.box2); + this.group_imagem.Items.Add(this.separator1); + this.group_imagem.Items.Add(this.button_redimensiona_imagem); + this.group_imagem.Items.Add(this.button_autodimensiona_imagem); + this.group_imagem.Items.Add(this.menu_imagem); + this.group_imagem.Label = "Assistente de imagem"; + this.group_imagem.Name = "group_imagem"; + // + // separator2 + // + this.separator2.Name = "separator2"; + // + // dropDown_separador + // + ribbonDropDownItemImpl8.Label = "Nenhum"; + ribbonDropDownItemImpl9.Label = "Espaço"; + ribbonDropDownItemImpl10.Label = "Parágrafo"; + ribbonDropDownItemImpl11.Label = "Parágrafo + 3pt"; + this.dropDown_separador.Items.Add(ribbonDropDownItemImpl8); + this.dropDown_separador.Items.Add(ribbonDropDownItemImpl9); + this.dropDown_separador.Items.Add(ribbonDropDownItemImpl10); + this.dropDown_separador.Items.Add(ribbonDropDownItemImpl11); + this.dropDown_separador.Label = "Separador"; + this.dropDown_separador.Name = "dropDown_separador"; + this.dropDown_separador.SizeString = "Parágrafo + 3pt"; + // + // box1 + // + this.box1.Items.Add(this.checkBox_largura); + this.box1.Items.Add(this.editBox_largura); + this.box1.Name = "box1"; + // + // checkBox_largura + // + this.checkBox_largura.Label = ""; + this.checkBox_largura.Name = "checkBox_largura"; + this.checkBox_largura.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.checkBox_largura_Click); + // + // editBox_largura + // + this.editBox_largura.Label = "Largura (cm)"; + this.editBox_largura.Name = "editBox_largura"; + this.editBox_largura.SizeString = "00,00"; + this.editBox_largura.Tag = ""; + this.editBox_largura.Text = null; + this.editBox_largura.TextChanged += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.editBox_largura_TextChanged); + // + // box2 + // + this.box2.Items.Add(this.checkBox_altura); + this.box2.Items.Add(this.editBox_altura); + this.box2.Name = "box2"; + // + // checkBox_altura + // + this.checkBox_altura.Label = ""; + this.checkBox_altura.Name = "checkBox_altura"; + this.checkBox_altura.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.checkBox_altura_Click); + // + // editBox_altura + // + this.editBox_altura.Label = "Altura (cm)"; + this.editBox_altura.Name = "editBox_altura"; + this.editBox_altura.SizeString = "00,00"; + this.editBox_altura.Text = null; + this.editBox_altura.TextChanged += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.editBox_altura_TextChanged); + // + // separator1 + // + this.separator1.Name = "separator1"; + // + // group_tabela + // + this.group_tabela.Items.Add(this.menu_inserir_tabela); + this.group_tabela.Items.Add(this.menu_remover_tabela); + this.group_tabela.Items.Add(this.menu_formatacao_tabela); + this.group_tabela.Label = "Assistente de tabela"; + this.group_tabela.Name = "group_tabela"; + // + // group_conferencia + // + this.group_conferencia.Items.Add(this.button_confere_formatacao); + this.group_conferencia.Items.Add(this.button_confere_preambulo); + this.group_conferencia.Items.Add(this.button_confere_num_legenda); + this.group_conferencia.Label = "Conferência"; + this.group_conferencia.Name = "group_conferencia"; + // + // group_entrega + // + this.group_entrega.Items.Add(this.button_abre_SISCRIM); + this.group_entrega.Items.Add(this.button_renomeia_documento); + this.group_entrega.Items.Add(this.button_gera_pdf); + this.group_entrega.Items.Add(this.checkBox_assinar); + this.group_entrega.Items.Add(this.checkBox_abrir); + this.group_entrega.Items.Add(this.menu_entrega); + this.group_entrega.Label = "Entrega"; + this.group_entrega.Name = "group_entrega"; + // + // checkBox_assinar + // + this.checkBox_assinar.Label = "Assinar PDF"; + this.checkBox_assinar.Name = "checkBox_assinar"; + // + // checkBox_abrir + // + this.checkBox_abrir.Label = "Abrir PDF"; + this.checkBox_abrir.Name = "checkBox_abrir"; + // + // group_sobre + // + this.group_sobre.Items.Add(this.label_nome); + this.group_sobre.Items.Add(this.label_criado); + this.group_sobre.Items.Add(this.label_email); + this.group_sobre.Label = "Sobre"; + this.group_sobre.Name = "group_sobre"; + // + // label_nome + // + this.label_nome.Label = "PeriTAB"; + this.label_nome.Name = "label_nome"; + // + // label_criado + // + this.label_criado.Label = "Criado por PCF Gustavo"; + this.label_criado.Name = "label_criado"; + // + // label_email + // + this.label_email.Label = "gustavo.gvs@pf.gov.br"; + this.label_email.Name = "label_email"; + // + // button_moeda + // + this.button_moeda.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge; + this.button_moeda.Image = global::PeriTAB.Properties.Resources.dinheiro; + this.button_moeda.Label = "Moeda"; + this.button_moeda.Name = "button_moeda"; + this.button_moeda.ShowImage = true; + this.button_moeda.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.button_moeda_Click); + // + // button_inteiro + // + this.button_inteiro.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge; + this.button_inteiro.Image = global::PeriTAB.Properties.Resources.numero; + this.button_inteiro.Label = "Número inteiro"; + this.button_inteiro.Name = "button_inteiro"; + this.button_inteiro.ShowImage = true; + this.button_inteiro.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.button_inteiro_Click); + // + // button_massa + // + this.button_massa.Image = global::PeriTAB.Properties.Resources.peso; + this.button_massa.Label = "Massa / Volume"; + this.button_massa.Name = "button_massa"; + this.button_massa.ShowImage = true; + this.button_massa.Visible = false; + // // button_alinha_legenda // this.button_alinha_legenda.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge; @@ -284,13 +442,6 @@ private void InitializeComponent() this.toggleButton_painel_de_estilos.SuperTip = "Abre Painel de Estilos"; this.toggleButton_painel_de_estilos.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.toggleButton_painel_de_estilos_Click); // - // group_estilos - // - this.group_estilos.Items.Add(this.button_importa_estilos); - this.group_estilos.Items.Add(this.button_limpa_estilos); - this.group_estilos.Label = "Estilos"; - this.group_estilos.Name = "group_estilos"; - // // button_importa_estilos // this.button_importa_estilos.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge; @@ -311,17 +462,6 @@ private void InitializeComponent() this.button_limpa_estilos.Visible = false; this.button_limpa_estilos.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.button_limpa_estilos_Click); // - // group_campos - // - this.group_campos.Items.Add(this.menu_inserir_campos); - this.group_campos.Items.Add(this.button_atualiza_campos); - this.group_campos.Items.Add(this.menu_formatacao_campos); - this.group_campos.Items.Add(this.button_separador1); - this.group_campos.Items.Add(this.button_separador2); - this.group_campos.Items.Add(this.menu_campos); - this.group_campos.Label = "Campos"; - this.group_campos.Name = "group_campos"; - // // menu_inserir_campos // this.menu_inserir_campos.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge; @@ -444,23 +584,6 @@ private void InitializeComponent() this.checkBox_vercodigo_campos.Visible = false; this.checkBox_vercodigo_campos.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.checkBox_vercodigo_campos_Click); // - // group_imagem - // - this.group_imagem.Items.Add(this.menu_inserir_imagem); - this.group_imagem.Items.Add(this.menu_remover_imagem); - this.group_imagem.Items.Add(this.menu_formatacao_imagem); - this.group_imagem.Items.Add(this.separator2); - this.group_imagem.Items.Add(this.button_cola_imagem); - this.group_imagem.Items.Add(this.dropDown_separador); - this.group_imagem.Items.Add(this.box1); - this.group_imagem.Items.Add(this.box2); - this.group_imagem.Items.Add(this.separator1); - this.group_imagem.Items.Add(this.button_redimensiona_imagem); - this.group_imagem.Items.Add(this.button_autodimensiona_imagem); - this.group_imagem.Items.Add(this.menu_imagem); - this.group_imagem.Label = "Assistente de imagem"; - this.group_imagem.Name = "group_imagem"; - // // menu_inserir_imagem // this.menu_inserir_imagem.Image = global::PeriTAB.Properties.Resources._; @@ -471,7 +594,6 @@ private void InitializeComponent() this.menu_inserir_imagem.Label = "Inserir"; this.menu_inserir_imagem.Name = "menu_inserir_imagem"; this.menu_inserir_imagem.ShowImage = true; - this.menu_inserir_imagem.Visible = false; // // button_borda_preta // @@ -499,6 +621,7 @@ private void InitializeComponent() // // button9 // + this.button9.Image = global::PeriTAB.Properties.Resources.abc; this.button9.Label = "Legenda"; this.button9.Name = "button9"; this.button9.ShowImage = true; @@ -578,10 +701,6 @@ private void InitializeComponent() this.button_alinha_legenda_figuras.Name = "button_alinha_legenda_figuras"; this.button_alinha_legenda_figuras.ShowImage = true; // - // separator2 - // - this.separator2.Name = "separator2"; - // // button_cola_imagem // this.button_cola_imagem.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge; @@ -591,65 +710,6 @@ private void InitializeComponent() this.button_cola_imagem.ShowImage = true; this.button_cola_imagem.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.button_cola_imagem_Click); // - // dropDown_separador - // - ribbonDropDownItemImpl8.Label = "Nenhum"; - ribbonDropDownItemImpl9.Label = "Espaço"; - ribbonDropDownItemImpl10.Label = "Parágrafo"; - ribbonDropDownItemImpl11.Label = "Parágrafo + 3pt"; - this.dropDown_separador.Items.Add(ribbonDropDownItemImpl8); - this.dropDown_separador.Items.Add(ribbonDropDownItemImpl9); - this.dropDown_separador.Items.Add(ribbonDropDownItemImpl10); - this.dropDown_separador.Items.Add(ribbonDropDownItemImpl11); - this.dropDown_separador.Label = "Separador"; - this.dropDown_separador.Name = "dropDown_separador"; - this.dropDown_separador.SizeString = "Parágrafo + 3pt"; - // - // box1 - // - this.box1.Items.Add(this.checkBox_largura); - this.box1.Items.Add(this.editBox_largura); - this.box1.Name = "box1"; - // - // checkBox_largura - // - this.checkBox_largura.Label = ""; - this.checkBox_largura.Name = "checkBox_largura"; - this.checkBox_largura.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.checkBox_largura_Click); - // - // editBox_largura - // - this.editBox_largura.Label = "Largura (cm)"; - this.editBox_largura.Name = "editBox_largura"; - this.editBox_largura.SizeString = "00,00"; - this.editBox_largura.Tag = ""; - this.editBox_largura.Text = null; - this.editBox_largura.TextChanged += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.editBox_largura_TextChanged); - // - // box2 - // - this.box2.Items.Add(this.checkBox_altura); - this.box2.Items.Add(this.editBox_altura); - this.box2.Name = "box2"; - // - // checkBox_altura - // - this.checkBox_altura.Label = ""; - this.checkBox_altura.Name = "checkBox_altura"; - this.checkBox_altura.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.checkBox_altura_Click); - // - // editBox_altura - // - this.editBox_altura.Label = "Altura (cm)"; - this.editBox_altura.Name = "editBox_altura"; - this.editBox_altura.SizeString = "00,00"; - this.editBox_altura.Text = null; - this.editBox_altura.TextChanged += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.editBox_altura_TextChanged); - // - // separator1 - // - this.separator1.Name = "separator1"; - // // button_redimensiona_imagem // this.button_redimensiona_imagem.Image = global::PeriTAB.Properties.Resources.redimensionar2; @@ -683,14 +743,6 @@ private void InitializeComponent() this.checkBox_referencia.SuperTip = "Cola imagem como mera referência ao arquivo original."; this.checkBox_referencia.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.checkBox_referencia_Click); // - // group_tabela - // - this.group_tabela.Items.Add(this.menu_inserir_tabela); - this.group_tabela.Items.Add(this.menu_remover_tabela); - this.group_tabela.Items.Add(this.menu_formatacao_tabela); - this.group_tabela.Label = "Assistente de tabela"; - this.group_tabela.Name = "group_tabela"; - // // menu_inserir_tabela // this.menu_inserir_tabela.Image = global::PeriTAB.Properties.Resources._; @@ -738,14 +790,6 @@ private void InitializeComponent() this.button_legenda_tabelas.ShowImage = true; this.button_legenda_tabelas.Visible = false; // - // group_conferencia - // - this.group_conferencia.Items.Add(this.button_confere_formatacao); - this.group_conferencia.Items.Add(this.button_confere_preambulo); - this.group_conferencia.Items.Add(this.button_confere_num_legenda); - this.group_conferencia.Label = "Conferência"; - this.group_conferencia.Name = "group_conferencia"; - // // button_confere_formatacao // this.button_confere_formatacao.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge; @@ -775,17 +819,6 @@ private void InitializeComponent() this.button_confere_num_legenda.ShowImage = true; this.button_confere_num_legenda.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.button_confere_num_legenda_Click); // - // group_entrega - // - this.group_entrega.Items.Add(this.button_abre_SISCRIM); - this.group_entrega.Items.Add(this.button_renomeia_documento); - this.group_entrega.Items.Add(this.button_gera_pdf); - this.group_entrega.Items.Add(this.checkBox_assinar); - this.group_entrega.Items.Add(this.checkBox_abrir); - this.group_entrega.Items.Add(this.menu_entrega); - this.group_entrega.Label = "Entrega"; - this.group_entrega.Name = "group_entrega"; - // // button_abre_SISCRIM // this.button_abre_SISCRIM.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge; @@ -813,16 +846,6 @@ private void InitializeComponent() this.button_gera_pdf.ShowImage = true; this.button_gera_pdf.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.button_gerar_pdf_Click); // - // checkBox_assinar - // - this.checkBox_assinar.Label = "Assinar PDF"; - this.checkBox_assinar.Name = "checkBox_assinar"; - // - // checkBox_abrir - // - this.checkBox_abrir.Label = "Abrir PDF"; - this.checkBox_abrir.Name = "checkBox_abrir"; - // // menu_entrega // this.menu_entrega.Image = global::PeriTAB.Properties.Resources.engrenagem; @@ -840,29 +863,6 @@ private void InitializeComponent() "r fechado."; this.checkBox_senha.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.checkBox_destaca_campos_Click); // - // group_sobre - // - this.group_sobre.Items.Add(this.label_nome); - this.group_sobre.Items.Add(this.label_criado); - this.group_sobre.Items.Add(this.label_email); - this.group_sobre.Label = "Sobre"; - this.group_sobre.Name = "group_sobre"; - // - // label_nome - // - this.label_nome.Label = "PeriTAB"; - this.label_nome.Name = "label_nome"; - // - // label_criado - // - this.label_criado.Label = "Criado por PCF Gustavo"; - this.label_criado.Name = "label_criado"; - // - // label_email - // - this.label_email.Label = "gustavo.gvs@pf.gov.br"; - this.label_email.Name = "label_email"; - // // Ribbon1 // this.Name = "Ribbon1"; diff --git a/PeriTAB/Ribbon1.cs b/PeriTAB/Ribbon1.cs index 6297612..b06383b 100644 --- a/PeriTAB/Ribbon1.cs +++ b/PeriTAB/Ribbon1.cs @@ -42,6 +42,7 @@ using Microsoft.VisualBasic; //using System.Windows; //using Microsoft.VisualBasic; +using System.Text.RegularExpressions; namespace PeriTAB @@ -74,7 +75,9 @@ private void Ribbon1_Load(object sender, RibbonUIEventArgs e) //Escreve o Template na pasta tmp e adiciona ela como suplemento. //try { File.WriteAllBytes(Variables.caminho_template, Properties.Resources.Normal); } catch (IOException ex) { MessageBox.Show("PeriTAB_Template_tmp.dotm em uso"); Globals.ThisAddIn.Application.Quit(); return; } //File.WriteAllBytes(Variables.caminho_template, Properties.Resources.Normal); - try { File.WriteAllBytes(Variables.caminho_template, Properties.Resources.Normal); } catch (IOException) { + try { File.WriteAllBytes(Variables.caminho_template, Properties.Resources.Normal); } + catch (IOException) + { if (!File.Exists(Variables.caminho_template)) { MessageBox.Show("PeriTAB_Template_tmp.dotm não encontrado"); Globals.ThisAddIn.Application.Quit(); return; @@ -91,7 +94,7 @@ private void Ribbon1_Load(object sender, RibbonUIEventArgs e) { Globals.Ribbons.Ribbon1.label_nome.Label = "PeriTAB " + versao().Major + "." + versao().Minor + "." + versao().Build; } - else + else { Globals.Ribbons.Ribbon1.label_nome.Label = "PeriTAB Debugging"; } @@ -436,13 +439,13 @@ private void button_cola_imagem_Click(object sender, RibbonControlEventArgs e) } //Globals.ThisAddIn.Application.ScreenUpdating = true; } - else + else { success = false; msg_Falha = "Não há imagens no Clipboard."; } } - else + else { success = false; msg_Falha = "Não há imagens no Clipboard."; @@ -456,7 +459,7 @@ private void button_cola_imagem_Click(object sender, RibbonControlEventArgs e) msg_StatusBar += $" (Tempo de execução: {stopwatch.Elapsed.TotalSeconds:F2} segundos)"; } Globals.ThisAddIn.Application.StatusBar = msg_StatusBar; - if (!success) MessageBox.Show(msg_Falha, "Cola imagem"); + if (!success && msg_Falha != "") MessageBox.Show(msg_Falha, "Cola imagem"); // Configurações finais Globals.ThisAddIn.Application.ScreenUpdating = true; @@ -477,17 +480,6 @@ public int Compare(string x, string y) } } - private bool testa_igualdade(string[] a, string[] b) - { - if (a.Length != b.Length) return false; - - for (int i = 0; i <= a.Length - 1; i++) - { - if (a[i] != b[i]) return false; - } - return true; - } - private void checkBox_largura_Click(object sender, RibbonControlEventArgs e) { if (Variables.editBox_largura_Text == null) @@ -534,10 +526,10 @@ private void checkBox_altura_Click(object sender, RibbonControlEventArgs e) private void checkBox_referencia_Click(object sender, RibbonControlEventArgs e) { - if (checkBox_referencia.Checked) - { - System.Windows.Forms.MessageBox.Show("Cuidado! Excluir/mover/renomear o arquivo da imagem causará perda de referência."); - } + //if (checkBox_referencia.Checked) + //{ + // System.Windows.Forms.MessageBox.Show("Cuidado! Excluir/mover/renomear o arquivo da imagem causará perda de referência.","Referência"); + //} } @@ -573,81 +565,130 @@ private void editBox_altura_TextChanged(object sender, RibbonControlEventArgs e) private void button_renomeia_documento_Click(object sender, RibbonControlEventArgs e) { + new Thread(() => + { + // Configurações iniciais + Stopwatch stopwatch = new Stopwatch(); if (versao() == null) { stopwatch.Start(); } // Inicia o cronômetro para medir o tempo de execução da Thread + bool success = true; + string msg_StatusBar = ""; + string msg_Falha = ""; + iClass_Buttons.muda_imagem("button_renomeia_documento", Properties.Resources.load_icon_png_7969); + button_cola_imagem.Enabled = false; + //Globals.ThisAddIn.Application.ScreenUpdating = false; + //Globals.ThisAddIn.Application.Run("renomeia_documento"); + //Globals.ThisAddIn.Application.DisplayStatusBar = true; Globals.ThisAddIn.Application.StatusBar = "Documento renomeado com sucesso."; - - //Globals.ThisAddIn.Application.Run("renomeia_documento"); - //Globals.ThisAddIn.Application.DisplayStatusBar = true; Globals.ThisAddIn.Application.StatusBar = "Documento renomeado com sucesso."; + string nome_doc_completo = Globals.ThisAddIn.Application.ActiveDocument.FullName; + string caminho_doc = Globals.ThisAddIn.Application.ActiveDocument.Path; + string nome_doc_antigo = Globals.ThisAddIn.Application.ActiveDocument.Name; + string nome_doc = null; - string nome_doc_completo = Globals.ThisAddIn.Application.ActiveDocument.FullName; - string caminho_doc = Globals.ThisAddIn.Application.ActiveDocument.Path; - string nome_doc_antigo = Globals.ThisAddIn.Application.ActiveDocument.Name; - string nome_doc = null; + //MessageBox.Show(nome_doc_completo); + //MessageBox.Show(caminho_doc); + //MessageBox.Show(nome_doc_antigo); - //MessageBox.Show(nome_doc_completo); - //MessageBox.Show(caminho_doc); - //MessageBox.Show(nome_doc_antigo); + nome_doc_completo = GetLocalPath(nome_doc_completo); + //if (nome_doc_completo.StartsWith("http")) + //{ + // MessageBox.Show("Este documento está armazenado na internet, o que impossibilita o uso dessa Macro. Caso esteja usando o Microsoft Onedrive, você pode resolver esse problema desmarcando a opção 'Usar os aplicativos do Office para sincronizar os arquivos do Office que eu abri', localizada na aba 'Office' nas configurações do Microsoft OneDrive."); + // return; + //} - nome_doc_completo = GetLocalPath(nome_doc_completo); - //if (nome_doc_completo.StartsWith("http")) - //{ - // MessageBox.Show("Este documento está armazenado na internet, o que impossibilita o uso dessa Macro. Caso esteja usando o Microsoft Onedrive, você pode resolver esse problema desmarcando a opção 'Usar os aplicativos do Office para sincronizar os arquivos do Office que eu abri', localizada na aba 'Office' nas configurações do Microsoft OneDrive."); - // return; - //} + //if (caminho_doc == "") + //{ + // MessageBox.Show("Documentos que ainda não foram salvos não podem ser renomeados."); + // return; + //} + if (versao() == null) { stopwatch.Stop(); } + nome_doc = Microsoft.VisualBasic.Interaction.InputBox("Novo nome do documento:", "", nome_doc_antigo.Substring(0, nome_doc_antigo.LastIndexOf("."))); + if (versao() == null) { stopwatch.Start(); } - //if (caminho_doc == "") - //{ - // MessageBox.Show("Documentos que ainda não foram salvos não podem ser renomeados."); - // return; - //} + // Expressão regular para validar nome de arquivo no Windows + string regex_Windows = @"^[^\\\/\:\*\?\""<>\|]+$"; - nome_doc = Microsoft.VisualBasic.Interaction.InputBox("Novo nome do documento:", "", nome_doc_antigo.Substring(0, nome_doc_antigo.LastIndexOf("."))); + // Usa Regex.IsMatch para validar o nome do arquivo + //bool nomeValido = - if (nome_doc == null || nome_doc == "" || nome_doc == nome_doc_antigo.Substring(0, nome_doc_antigo.LastIndexOf("."))) - { - //MessageBox.Show("ok"); - return; - } + if (/*nome_doc == "" || */!Regex.IsMatch(nome_doc, regex_Windows) || string.IsNullOrWhiteSpace(nome_doc)) + { + //MessageBox.Show("ok"); + //return; + success = false; + msg_Falha = "Nome inválido."; + } + else if (nome_doc == null || nome_doc == nome_doc_antigo.Substring(0, nome_doc_antigo.LastIndexOf("."))) { } + else + { + Globals.ThisAddIn.Application.ActiveDocument.SaveAs2(FileName: Path.Combine(caminho_doc, nome_doc + ".docx"), FileFormat: WdSaveFormat.wdFormatDocumentDefault); - Globals.ThisAddIn.Application.ActiveDocument.SaveAs2(FileName: Path.Combine(caminho_doc, nome_doc + ".docx"), FileFormat: WdSaveFormat.wdFormatDocumentDefault); + try { File.Delete(nome_doc_completo); } + catch + { + success = false; + msg_Falha = "Falha ao deletar o documento antigo."; + //MessageBox.Show("Falha ao deletar o documento antigo."); + //MessageBox.Show("Falha ao deletar o documento antigo 1."); + + //GC.Collect(); + //GC.WaitForPendingFinalizers(); + + //try { File.Delete(nome_doc_completo); } catch { MessageBox.Show("Falha ao deletar o documento antigo 2."); } + //GC.Collect(); + //GC.WaitForPendingFinalizers(); + //try { File.Delete(nome_doc_completo); } catch { MessageBox.Show("Falha ao deletar o documento antigo 3."); } + //try { foreach (var process in Process.GetProcessesByName(nome_doc_completo)) { process.Kill(); }; } catch { MessageBox.Show("Falha ao deletar o documento antigo 4."); } + //try { File.Delete(nome_doc_completo); } catch { MessageBox.Show("Falha ao deletar o documento antigo 5."); } + //System.Runtime.InteropServices.Marshal.FinalReleaseComObject((object)nome_doc_completo); + //try { File.Delete(nome_doc_completo); } catch { MessageBox.Show("Falha ao deletar o documento antigo 6."); } + } + } - try { File.Delete(nome_doc_completo); } - catch - { - MessageBox.Show("Falha ao deletar o documento antigo."); - //MessageBox.Show("Falha ao deletar o documento antigo 1."); - - //GC.Collect(); - //GC.WaitForPendingFinalizers(); - - //try { File.Delete(nome_doc_completo); } catch { MessageBox.Show("Falha ao deletar o documento antigo 2."); } - //GC.Collect(); - //GC.WaitForPendingFinalizers(); - //try { File.Delete(nome_doc_completo); } catch { MessageBox.Show("Falha ao deletar o documento antigo 3."); } - //try { foreach (var process in Process.GetProcessesByName(nome_doc_completo)) { process.Kill(); }; } catch { MessageBox.Show("Falha ao deletar o documento antigo 4."); } - //try { File.Delete(nome_doc_completo); } catch { MessageBox.Show("Falha ao deletar o documento antigo 5."); } - //System.Runtime.InteropServices.Marshal.FinalReleaseComObject((object)nome_doc_completo); - //try { File.Delete(nome_doc_completo); } catch { MessageBox.Show("Falha ao deletar o documento antigo 6."); } - } + // Mensagens da Thread + if (success) { msg_StatusBar = "Renomeia documento: Sucesso"; } else { msg_StatusBar = "Renomeia documento: Falha"; } + if (versao() == null) // Se estiver no modo Debugging, mostra o tempo de execução na barra de status + { + stopwatch.Stop(); + msg_StatusBar += $" (Tempo de execução: {stopwatch.Elapsed.TotalSeconds:F2} segundos)"; + } + Globals.ThisAddIn.Application.StatusBar = msg_StatusBar; + if (!success && msg_Falha != "") MessageBox.Show(msg_Falha, "Renomeia documento"); + + // Configurações finais + //Globals.ThisAddIn.Application.ScreenUpdating = true; + iClass_Buttons.muda_imagem("button_renomeia_documento", Properties.Resources.abc); + button_cola_imagem.Enabled = true; + }).Start(); } - - private void button_gerar_pdf_Click(object sender, RibbonControlEventArgs e) + private void button_gerar_pdf_Click(object sender, RibbonControlEventArgs e) { new Thread(() => { - //iClass_Buttons.button_gera_pdf_image(load: true); + Globals.ThisAddIn.Application.DisplayStatusBar = false; + // Configurações iniciais + Stopwatch stopwatch = new Stopwatch(); if (versao() == null) { stopwatch.Start(); } // Inicia o cronômetro para medir o tempo de execução da Thread + bool success = true; + string msg_StatusBar = ""; + string msg_Falha = ""; iClass_Buttons.muda_imagem("button_gera_pdf", Properties.Resources.load_icon_png_7969); button_gera_pdf.Enabled = false; + + //iClass_Buttons.button_gera_pdf_image(load: true); PdfReader inputPdf = null; bool inputPdf_open = false; string path = Globals.ThisAddIn.Application.ActiveDocument.FullName; string localpath = GetLocalPath(path); - if (localpath == null) { iClass_Buttons.muda_imagem("button_gera_pdf", Properties.Resources.icone_pdf2); MessageBox.Show("Não foi possível gerar o PDF."); button_gera_pdf.Enabled = true; return; } + if (localpath == null) { + success = false; + msg_Falha = "Não foi possível gerar o PDF."; + goto saida; + //iClass_Buttons.muda_imagem("button_gera_pdf", Properties.Resources.icone_pdf2); MessageBox.Show("Não foi possível gerar o PDF."); button_gera_pdf.Enabled = true; return; + } string path_pdf = localpath.Substring(0, localpath.LastIndexOf(".")) + ".pdf"; - //Globals.ThisAddIn.Application.ActiveDocument.ExportAsFixedFormat(localpath.Substring(0, localpath.LastIndexOf(".")), WdExportFormat.wdExportFormatPDF, UseISO19005_1: true); + //Globals.ThisAddIn.Application.ActiveDocument.ExportAsFixedFormat(localpath.Substring(0, localpath.LastIndexOf(".")), WdExportFormat.wdExportFormatPDF, UseISO19005_1: true); - //try { Globals.ThisAddIn.Application.ActiveDocument.ExportAsFixedFormat(localpath.Substring(0, localpath.LastIndexOf(".")), WdExportFormat.wdExportFormatPDF, UseISO19005_1: true); } catch (COMException ex) { MessageBox.Show("O PDF está aberto. Feche-o para gerar um novo PDF."); return; } - Globals.ThisAddIn.Application.ActiveDocument.ExportAsFixedFormat(Path.Combine(Path.GetTempPath(),"tmp_pdf_PeriTAB"), WdExportFormat.wdExportFormatPDF, UseISO19005_1: true); + //try { Globals.ThisAddIn.Application.ActiveDocument.ExportAsFixedFormat(localpath.Substring(0, localpath.LastIndexOf(".")), WdExportFormat.wdExportFormatPDF, UseISO19005_1: true); } catch (COMException ex) { MessageBox.Show("O PDF está aberto. Feche-o para gerar um novo PDF."); return; } + Globals.ThisAddIn.Application.ActiveDocument.ExportAsFixedFormat(Path.Combine(Path.GetTempPath(), "tmp_pdf_PeriTAB"), WdExportFormat.wdExportFormatPDF, UseISO19005_1: true); //if (File.Exists(Path.Combine(Path.GetTempPath(), "tmp_pdf_PeriTAB.pdf"))) //{ @@ -674,28 +715,34 @@ private void button_gerar_pdf_Click(object sender, RibbonControlEventArgs e) switch (st.Certificates.Count) { case 0: - MessageBox.Show("Nenhum certificado válido encontrado."); - goto del_temp; + //MessageBox.Show("Nenhum certificado válido encontrado."); + success = false; + msg_Falha = "Nenhum certificado válido encontrado."; + goto saida; case 1: certClient = st.Certificates[0]; break; default: + if (versao() == null) { stopwatch.Stop(); } X509Certificate2Collection collection = X509Certificate2UI.SelectFromCollection(st.Certificates, "Escolha o certificado:", "", X509SelectionFlag.SingleSelection); + if (versao() == null) { stopwatch.Start(); } if (collection.Count > 0) { certClient = collection[0]; } else { - MessageBox.Show("Nenhum certificado foi selecionado."); - goto del_temp; + //MessageBox.Show("Nenhum certificado foi selecionado."); + success = false; + //msg_Falha = "Nenhum certificado foi selecionado."; + goto saida; } break; } //Variables.cert = certClient; //st.Dispose(); st.Close(); - + //st.Remove(certClient); //Debug.WriteLine("1"); //Get Cert Chain @@ -747,13 +794,31 @@ private void button_gerar_pdf_Click(object sender, RibbonControlEventArgs e) inputPdf_open = true; FileStream signedPdf = null; - try { signedPdf = new FileStream(path_pdf_assinado, FileMode.Create); } catch (IOException) { iClass_Buttons.muda_imagem("button_gera_pdf", Properties.Resources.icone_pdf2); MessageBox.Show("O PDF está aberto. Feche-o para gerar um novo PDF."); button_gera_pdf.Enabled = true; goto del_temp; } + try { + signedPdf = new FileStream(path_pdf_assinado, FileMode.Create); + } + catch (IOException) + { + success = false; + msg_Falha = "O PDF está aberto. Feche-o para gerar um novo PDF."; + goto saida; + //iClass_Buttons.muda_imagem("button_gera_pdf", Properties.Resources.icone_pdf2); + //MessageBox.Show("O PDF está aberto. Feche-o para gerar um novo PDF."); + //button_gera_pdf.Enabled = true; + } PdfStamper pdfStamper = PdfStamper.CreateSignature(inputPdf, signedPdf, '\0'); + // Desativa a persistência da chave no CSP, garantindo que a senha seja solicitada sempre + //RSACryptoServiceProvider rsa = (RSACryptoServiceProvider)certClient.PrivateKey; + //rsa.PersistKeyInCsp = false; // Força a solicitação da senha + + RSACryptoServiceProvider rsa2 = new RSACryptoServiceProvider(); + rsa2.PersistKeyInCsp = true; + IExternalSignature externalSignature = new X509Certificate2Signature(certClient, "SHA-256"); PdfSignatureAppearance signatureAppearance = pdfStamper.SignatureAppearance; @@ -803,66 +868,109 @@ private void button_gerar_pdf_Click(object sender, RibbonControlEventArgs e) //} - try { MakeSignature.SignDetached(signatureAppearance, externalSignature, chain, null, null, null, 0, CryptoStandard.CMS); } + try + { + MakeSignature.SignDetached(signatureAppearance, externalSignature, chain, null, null, null, 0, CryptoStandard.CMS); + // Descarrega a chave da memória após a assinatura + //if (certClient != null) + //{ + // var rsa = certClient.GetRSAPrivateKey() as RSACryptoServiceProvider; + // if (rsa != null) + // { + // rsa.PersistKeyInCsp = false; // Força a não persistência da chave + // rsa.Clear(); // Libera o CSP, garantindo que a senha seja solicitada novamente + // } + //} + } //try { MakeSignature.SignDetached(pdfStamper.SignatureAppearance, new X509Certificate2Signature(certClient, "SHA-256"), chain, null, null, null, 0, CryptoStandard.CMS); } catch (CryptographicException) { //Cancelamento da senha do token signedPdf.Close(); File.Delete(path_pdf_assinado); - goto del_temp; + success = false; + goto saida; } + //**************************************************** + //finally + //{ + // // Aqui liberamos o contexto da chave + // if (certClient != null) + // { + // var rsa1 = certClient.GetRSAPrivateKey() as RSACryptoServiceProvider; + // if (rsa1 != null) + // { + // rsa1.PersistKeyInCsp = false; // Garante que a chave não será persistida + // rsa1.Clear(); // Libera o CSP, garantindo que a senha seja solicitada novamente + // } + // } + //} + //****************************************************** //inputPdf.Close(); //chain.Clear(); pdfStamper.Close(); if (File.Exists(path_pdf_assinado)) { - iClass_Buttons.muda_imagem("button_gera_pdf", Properties.Resources.icone_pdf2); - button_gera_pdf.Enabled = true; - Globals.ThisAddIn.Application.DisplayStatusBar = true; Globals.ThisAddIn.Application.StatusBar = "PDF gerado com sucesso."; + //iClass_Buttons.muda_imagem("button_gera_pdf", Properties.Resources.icone_pdf2); + //button_gera_pdf.Enabled = true; + //Globals.ThisAddIn.Application.DisplayStatusBar = true; + //Globals.ThisAddIn.Application.StatusBar = "PDF gerado com sucesso."; //if (File.Exists(path_pdf)) { File.Delete(path_pdf); } if (Globals.Ribbons.Ribbon1.checkBox_abrir.Checked) { System.Diagnostics.Process.Start(path_pdf_assinado); } } else { - iClass_Buttons.muda_imagem("button_gera_pdf", Properties.Resources.icone_pdf2); - button_gera_pdf.Enabled = true; - Globals.ThisAddIn.Application.DisplayStatusBar = true; Globals.ThisAddIn.Application.StatusBar = "A geração do PDF falhou."; + //iClass_Buttons.muda_imagem("button_gera_pdf", Properties.Resources.icone_pdf2); + //button_gera_pdf.Enabled = true; + //Globals.ThisAddIn.Application.DisplayStatusBar = true; Globals.ThisAddIn.Application.StatusBar = "A geração do PDF falhou."; + success = false; } } else { if (File.Exists(Path.Combine(Path.GetTempPath(), "tmp_pdf_PeriTAB.pdf"))) { - if (File.Exists(path_pdf)) { try { File.Delete(path_pdf); } catch (IOException) { MessageBox.Show("O PDF está aberto. Feche-o para gerar um novo PDF."); goto del_temp; } } + if (File.Exists(path_pdf)) { try { File.Delete(path_pdf); } catch (IOException) + { + success = false; + msg_Falha = "O PDF está aberto. Feche-o para gerar um novo PDF."; + //MessageBox.Show("O PDF está aberto. Feche-o para gerar um novo PDF."); + goto saida; + } + } File.Move(Path.Combine(Path.GetTempPath(), "tmp_pdf_PeriTAB.pdf"), path_pdf); - iClass_Buttons.muda_imagem("button_gera_pdf", Properties.Resources.icone_pdf2); - button_gera_pdf.Enabled = true; - Globals.ThisAddIn.Application.DisplayStatusBar = true; Globals.ThisAddIn.Application.StatusBar = "PDF gerado com sucesso."; + //iClass_Buttons.muda_imagem("button_gera_pdf", Properties.Resources.icone_pdf2); + //button_gera_pdf.Enabled = true; + //Globals.ThisAddIn.Application.DisplayStatusBar = true; Globals.ThisAddIn.Application.StatusBar = "PDF gerado com sucesso."; if (Globals.Ribbons.Ribbon1.checkBox_abrir.Checked) { System.Diagnostics.Process.Start(path_pdf); } } else { - iClass_Buttons.muda_imagem("button_gera_pdf", Properties.Resources.icone_pdf2); - button_gera_pdf.Enabled = true; - MessageBox.Show("Não foi possível gerar o PDF."); + success = false; + msg_Falha = "Não foi possível gerar o PDF."; + goto saida; + //iClass_Buttons.muda_imagem("button_gera_pdf", Properties.Resources.icone_pdf2); + //button_gera_pdf.Enabled = true; + //MessageBox.Show("Não foi possível gerar o PDF."); } - } - del_temp: + + saida: if (inputPdf_open) inputPdf.Close(); if (File.Exists(Path.Combine(Path.GetTempPath(), "tmp_pdf_PeriTAB.pdf"))) { File.Delete(Path.Combine(Path.GetTempPath(), "tmp_pdf_PeriTAB.pdf")); } //Deleta tmp.pdf + // Mensagens da Thread + if (success) { msg_StatusBar = "Gera PDF: Sucesso"; } else { msg_StatusBar = "Gera PDF: Falha"; } + if (versao() == null) // Se estiver no modo Debugging, mostra o tempo de execução na barra de status + { + stopwatch.Stop(); + msg_StatusBar += $" (Tempo de execução: {stopwatch.Elapsed.TotalSeconds:F2} segundos)"; + } + Globals.ThisAddIn.Application.StatusBar = msg_StatusBar; + if (!success && msg_Falha != "") MessageBox.Show(msg_Falha, "Gera PDF"); - ////Revisa a habilitação do botao "Abre SISCRIM" do Ribbon - //iClass_Buttons.button_abre_SISCRIM_Default(); - //string localpath2 = Globals.Ribbons.Ribbon1.GetLocalPath(Globals.ThisAddIn.Application.ActiveDocument.FullName); - //if (File.Exists(localpath.Substring(0, localpath2.LastIndexOf(".")) + ".pdf") | File.Exists(localpath2.Substring(0, localpath2.LastIndexOf(".")) + "_assinado.pdf")) - //{ - // Globals.Ribbons.Ribbon1.button_abre_SISCRIM.Enabled = true; Globals.Ribbons.Ribbon1.button_abre_SISCRIM.ScreenTip = ""; Globals.Ribbons.Ribbon1.button_abre_SISCRIM.SuperTip = "Abre SISCRIM na página do Laudo."; - //} - - + // Configurações finais + //Globals.ThisAddIn.Application.ScreenUpdating = true; iClass_Buttons.muda_imagem("button_gera_pdf", Properties.Resources.icone_pdf2); button_gera_pdf.Enabled = true; }).Start(); @@ -903,7 +1011,8 @@ public string GetLocalPath(string path) private void button_redimensiona_imagem_Click(object sender, RibbonControlEventArgs e) { - new Thread(() => { + new Thread(() => + { // Configurações iniciais Stopwatch stopwatch = new Stopwatch(); if (versao() == null) { stopwatch.Start(); } // Inicia o cronômetro para medir o tempo de execução da Thread bool success = true; @@ -913,8 +1022,8 @@ private void button_redimensiona_imagem_Click(object sender, RibbonControlEventA button_redimensiona_imagem.Enabled = false; Globals.ThisAddIn.Application.ScreenUpdating = false; - if (Globals.ThisAddIn.Application.Selection.InlineShapes.Count < 1) - { + if (Globals.ThisAddIn.Application.Selection.InlineShapes.Count < 1) + { success = false; msg_Falha = "Não há imagens selecionadas."; } @@ -953,7 +1062,7 @@ private void button_redimensiona_imagem_Click(object sender, RibbonControlEventA msg_StatusBar += $" (Tempo de execução: {stopwatch.Elapsed.TotalSeconds:F2} segundos)"; } Globals.ThisAddIn.Application.StatusBar = msg_StatusBar; - if (!success) MessageBox.Show(msg_Falha, "Redimensiona"); + if (!success && msg_Falha != "") MessageBox.Show(msg_Falha, "Redimensiona"); // Configurações finais Globals.ThisAddIn.Application.ScreenUpdating = true; @@ -1009,6 +1118,16 @@ private void button_autodimensiona_imagem_Click(object sender, RibbonControlEven // Adiciona a InlineShape à lista correspondente ao parágrafo dict_InlineShape_paragraph[num_Paragraph].Add(iShape); } + else + { + float larguraPaginaPts = Globals.ThisAddIn.Application.ActiveDocument.PageSetup.PageWidth; + float margemEsquerdaPts = Globals.ThisAddIn.Application.ActiveDocument.PageSetup.LeftMargin; + float margemDireitaPts = Globals.ThisAddIn.Application.ActiveDocument.PageSetup.RightMargin; + float recuoEsquerdaPts = iShape.Range.Paragraphs[1].Format.LeftIndent; + float recuoDireitaPts = iShape.Range.Paragraphs[1].Format.RightIndent; + float espacoDigitavelPts = larguraPaginaPts - (margemEsquerdaPts + margemDireitaPts + recuoEsquerdaPts + recuoDireitaPts); + iShape.Width = espacoDigitavelPts; + } } // Itera por cada parágrafo que contém múltiplas InlineShapes foreach (var iParagraph in dict_InlineShape_paragraph.Keys) @@ -1123,7 +1242,7 @@ private void button_autodimensiona_imagem_Click(object sender, RibbonControlEven msg_StatusBar += $" (Tempo de execução: {stopwatch.Elapsed.TotalSeconds:F2} segundos)"; } Globals.ThisAddIn.Application.StatusBar = msg_StatusBar; - if (!success) MessageBox.Show(msg_Falha, "Autodimensiona"); + if (!success && msg_Falha != "") MessageBox.Show(msg_Falha, "Autodimensiona"); // Configurações finais Globals.ThisAddIn.Application.ScreenUpdating = true; @@ -1132,7 +1251,7 @@ private void button_autodimensiona_imagem_Click(object sender, RibbonControlEven }).Start(); } - private string get_text(string texto, string inicio = null, string fim = null ) //Retona a primeira ocorrência de string entre os strings 'inicio' e 'fim' no string 'texto'. + private string get_text(string texto, string inicio = null, string fim = null) //Retona a primeira ocorrência de string entre os strings 'inicio' e 'fim' no string 'texto'. { if (inicio == null & fim == null) { return null; } @@ -1141,7 +1260,7 @@ private string get_text(string texto, string inicio = null, string fim = null ) if (inicio == null) { return texto.Substring(0, texto.IndexOf(fim)); - } + } if (fim == null) { return texto.Substring(texto.IndexOf(inicio) + inicio.Length); @@ -1248,7 +1367,7 @@ private void button_confere_preambulo_Click(object sender, RibbonControlEventArg string ano_laudo = identificadores_laudo[1]; string unidade_laudo = identificadores_laudo[2]; - if (num_laudo == null | ano_laudo == null | unidade_laudo == null) + if (num_laudo == null | ano_laudo == null | unidade_laudo == null) { MessageBox.Show("Referência do laudo não encontrada."); iClass_Buttons.muda_imagem("button_confere_preambulo", Properties.Resources.checklist2); @@ -1335,7 +1454,7 @@ private string[] pega_identificadores_laudo() num_laudo = get_text(t_mod, "n*", "/"); ano_laudo = get_text(t_mod, "/", "-"); unidade_laudo = get_text(t_mod, "-"); - return new string[] {num_laudo, ano_laudo, unidade_laudo}; + return new string[] { num_laudo, ano_laudo, unidade_laudo }; } } } @@ -1344,7 +1463,7 @@ private string[] pega_identificadores_laudo() return new string[] { null, null, null }; ; } -private int pega_paragrafo_do_preambulo() + private int pega_paragrafo_do_preambulo() { int paragrafo_do_preambulo = 0; for (int i = 1; i <= Globals.ThisAddIn.Application.ActiveDocument.Paragraphs.Count; i++) @@ -1501,7 +1620,7 @@ private string faz_preambulo_padrao(string asap) string ano = data.Substring(6, 4); string perito1 = get_text(asap, "PERITO1=", "\n"); string perito2 = get_text(asap, "PERITO2=", "\n"); - string num_ipl = get_text(asap, "NUMERO_IPL=", "\n").Replace("IPL", "Inquérito Policial nº").Replace("RDF","Registro de Fato nº").Replace("RE", "Registro Especial nº"); + string num_ipl = get_text(asap, "NUMERO_IPL=", "\n").Replace("IPL", "Inquérito Policial nº").Replace("RDF", "Registro de Fato nº").Replace("RE", "Registro Especial nº"); //string documento = get_text(asap, "DOCUMENTO=", "\n").Replace("Of" + (char)65533 + "cio", "Ofício nº"); //caracter desconhecido: losando com interrogação string documento = get_text(asap, "DOCUMENTO=", "\n").Replace("Ofício", "Ofício nº").Replace("Despacho", "Despacho nº"); string data_documento = get_text(asap, "DATA_DOCUMENTO=", "\n"); @@ -1526,7 +1645,7 @@ private string faz_preambulo_padrao(string asap) //if (preambulo == null) { MessageBox.Show("preambulo não encontrado."); return; } //MessageBox.Show(preambulo); //string nome_unidade = "Superintendência Regional de Polícia Federal no Maranhão"; - string nome_unidade = unidade_extenso(get_text(unidade,"/")); + string nome_unidade = unidade_extenso(get_text(unidade, "/")); //MessageBox.Show("nome da unidade = " + nome_unidade); //string nome_setor_criminalistica = "SETOR TÉCNICO-CIENTÍFICO"; string ao_sexo_chefe = "o"; @@ -1545,15 +1664,15 @@ private string faz_preambulo_padrao(string asap) cargo_chefe = "Diretora do INSTITUTO NACIONAL DE CRIMINALÍSTICA da Diretoria Técnico-Científica"; } } - else + else { cargo_chefe = "Chefe do " + nome_unidade; } - + string ao_sexo_peritos; string nome_perito1 = get_text(perito1, inicio: null, " ("); - string nome_perito2 = get_text(perito2, inicio: null, " (").Replace("()",""); + string nome_perito2 = get_text(perito2, inicio: null, " (").Replace("()", ""); string s_peritos; string is_criminais; string Elaboraram_oraram; @@ -1628,7 +1747,7 @@ private void compara_preambulo(string preambulo_padrao, int paragrafo_do_preambu Globals.ThisAddIn.Application.ActiveDocument.Paragraphs[paragrafo_do_preambulo].Next().Range.Text = ""; } } - + Globals.ThisAddIn.Application.ActiveDocument.TrackRevisions = false; Globals.ThisAddIn.Application.ActiveDocument.Application.ScreenUpdating = true; //preambulo_padrao = "Gustavo Vieira"; @@ -1741,7 +1860,7 @@ private string unidade_extenso(string un) case "DPF": //MessageBox.Show(get_text(un, "DPF/", "/") + " opa " + un); - switch (get_text(un, "DPF/","/")) + switch (get_text(un, "DPF/", "/")) { //case "AGA": // cidade = ""; @@ -2271,7 +2390,7 @@ private void button_borda_amarela_Click(object sender, RibbonControlEventArgs e) iClass_Buttons.muda_imagem("menu_inserir_imagem", Properties.Resources._); menu_inserir_imagem.Enabled = true; }).Start(); - } + } private void button_legenda_imagem_Click(object sender, RibbonControlEventArgs e) { @@ -2338,7 +2457,7 @@ private void button_legenda_imagem_Click(object sender, RibbonControlEventArgs e } if (!label_existe) { Globals.ThisAddIn.Application.CaptionLabels.Add("Figura"); } - Globals.ThisAddIn.Application.Selection.InsertCaption(Label: "Figura", Title: " " + ((char)8211).ToString(), TitleAutoText: "", Position: WdCaptionPosition.wdCaptionPositionBelow, ExcludeLabel: 0); + Globals.ThisAddIn.Application.Selection.InsertCaption(Label: "Figura", Title: " " + ((char)8211).ToString(), TitleAutoText: "", Position: WdCaptionPosition.wdCaptionPositionBelow, ExcludeLabel: 0); Globals.ThisAddIn.Application.Selection.set_Style((object)"07 - Legendas de Figuras (PeriTAB)"); Globals.ThisAddIn.Application.Selection.InsertAfter(" "); Globals.ThisAddIn.Application.Run("alinha_legenda"); @@ -2564,14 +2683,14 @@ private void button_minuscula_campos_Click(object sender, RibbonControlEventArgs //MessageBox.Show(f.Code.Text); string texto_campo = f.Code.Text; - if (texto_campo.IndexOf(slash + "* Upper ") != -1) + if (texto_campo.IndexOf(slash + "* Upper ") != -1) { //MessageBox.Show("1"); f.Code.Text = texto_campo.Replace(slash + "* Upper ", slash + "* Lower "); f.Update(); continue; } - if (texto_campo.IndexOf(slash + "* FirstCap ") != -1) + if (texto_campo.IndexOf(slash + "* FirstCap ") != -1) { //MessageBox.Show("2"); f.Code.Text = texto_campo.Replace(slash + "* FirstCap ", slash + "* Lower "); @@ -2586,7 +2705,7 @@ private void button_minuscula_campos_Click(object sender, RibbonControlEventArgs continue; } - if (texto_campo.Replace(" ","").IndexOf(slash + "*Lower") == -1) + if (texto_campo.Replace(" ", "").IndexOf(slash + "*Lower") == -1) { //MessageBox.Show("4"); f.Code.Text = texto_campo + " " + slash + "* Lower "; @@ -2598,12 +2717,18 @@ private void button_minuscula_campos_Click(object sender, RibbonControlEventArgs iClass_Buttons.muda_imagem("menu_formatacao_campos", Properties.Resources.formatacao2); menu_formatacao_campos.Enabled = true; }).Start(); - } + } private void button_abre_SISCRIM_Click(object sender, RibbonControlEventArgs e) { - new Thread(() => { - iClass_Buttons.muda_imagem("button_Subir_SISCRIM", Properties.Resources.load_icon_png_7969); + new Thread(() => + { + // Configurações iniciais + Stopwatch stopwatch = new Stopwatch(); if (versao() == null) { stopwatch.Start(); } // Inicia o cronômetro para medir o tempo de execução da Thread + bool success = true; + string msg_StatusBar = ""; + string msg_Falha = ""; + iClass_Buttons.muda_imagem("button_abre_SISCRIM", Properties.Resources.load_icon_png_7969); button_abre_SISCRIM.Enabled = false; string[] identificadores_laudo = pega_identificadores_laudo(); @@ -2618,7 +2743,9 @@ private void button_abre_SISCRIM_Click(object sender, RibbonControlEventArgs e) { if (num_laudo == null | ano_laudo == null | unidade_laudo == null) { - MessageBox.Show("Referência do laudo não encontrada."); + //MessageBox.Show("Referência do laudo não encontrada."); + success = false; + msg_Falha = "Referência do laudo não encontrada."; } else { @@ -2653,7 +2780,9 @@ private void button_abre_SISCRIM_Click(object sender, RibbonControlEventArgs e) if (num_registro == null | ano_registro == null | unidade_registro == null | !int.TryParse(num_registro, out _) | !int.TryParse(ano_registro, out _) | codigo_registro == 0) { - MessageBox.Show("Número do registro da requisição inválido."); + //MessageBox.Show("Número do registro da requisição inválido."); + success = false; + msg_Falha = "Número do registro da requisição inválido."; } else { @@ -2665,7 +2794,20 @@ private void button_abre_SISCRIM_Click(object sender, RibbonControlEventArgs e) } } } - iClass_Buttons.muda_imagem("button_Subir_SISCRIM", Properties.Resources.subir2); + + // Mensagens da Thread + if (success) { msg_StatusBar = "Abre SISCRIM: Sucesso"; } else { msg_StatusBar = "Abre SISCRIM: Falha"; } + if (versao() == null) // Se estiver no modo Debugging, mostra o tempo de execução na barra de status + { + stopwatch.Stop(); + msg_StatusBar += $" (Tempo de execução: {stopwatch.Elapsed.TotalSeconds:F2} segundos)"; + } + Globals.ThisAddIn.Application.StatusBar = msg_StatusBar; + if (!success && msg_Falha != "") MessageBox.Show(msg_Falha, "Abre SISCRIM"); + + // Configurações finais + //Globals.ThisAddIn.Application.ScreenUpdating = true; + iClass_Buttons.muda_imagem("button_abre_SISCRIM", Properties.Resources.subir2); button_abre_SISCRIM.Enabled = true; }).Start(); }