none
VB.NET & Word (Office) - Mostrar opções da impressora antes de fechar? RRS feed

  • Pergunta

  • Tenho um código para escrever em um arquivo pre-moldado do word e depois imprimi-lo restaurando o documento ao modelo original. Até aí tudo bem, só que o mesmo código só imprime e fecha o word em segundos, eu queria que ele mostrasse as opções como escolher paginas, opções de impressão e etc, alguém poderia ajudar?

    Código:

      Private Sub ImprimeComCpfA()
            Dim resposta = MessageBox.Show("Você realmente deseja imprimir um carnê deste cliente com o vencimento no dia " & diacarne.Value & "?", "Sim ou não", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
            If resposta = Windows.Forms.DialogResult.Yes Then
                Try
                    'Declara as variaveis para o word
                    objword = New Microsoft.Office.Interop.Word.Application
                    objdoc = objword.Documents.Open(Application.StartupPath & "\fichas_modelos\modelo-avulso.docx")
                    objword.Visible = False
    
                    'Começa a modificar os arquivos no novo arquivo word, baseando-se no modelo de ficha
                    Aumenta()
                    Call ficha_padrao("@cliente", DTGV.CurrentRow.Cells(0).Value)
                    Call ficha_padrao("@numero", My.Settings.ndoc)
                    Call ficha_padrao("@vencimento", diacarne.Value & "/01/" & txtano.Text)
                    Call ficha_padrao("@valor", DTGV.CurrentRow.Cells(5).Value)
                    '
                    Call ficha_padrao("@EMPRESA", My.Settings.empnome)
                    Call ficha_padrao("@cnpj", My.Settings.empcnpj)
                    Call ficha_padrao("@local", My.Settings.empend)
                    Call ficha_padrao("@complemento", DTGV.CurrentRow.Cells(4).Value)
                    Call ficha_padrao("@pvencimento", diacarne.Value & "/01/" & txtano.Text)
                    Call ficha_padrao("@pnumero", My.Settings.ndoc)
                    Call ficha_padrao("@pvalor", DTGV.CurrentRow.Cells(5).Value)
                    Call ficha_padrao("@pcliente", DTGV.CurrentRow.Cells(0).Value)
                    Call ficha_padrao("@end", DTGV.CurrentRow.Cells(8).Value)
                    Call ficha_padrao("@cpf", DTGV.CurrentRow.Cells(7).Value)
    
    
                    'Começa a salvar depois imprime
                    objword.ActiveDocument.PrintOut()
                    objdoc.SaveAs(Application.StartupPath & "\ultimo-carne.docx")
                    objdoc.Close()
                    objword.Quit()
    
                    'Manda uma mensagem
                    MessageBox.Show("Seu arquivo foi enviado para impressão com sucesso! Verifique o status da impressão.", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Catch ex As Exception
                    MessageBox.Show("Foi detectado um erro na operação de impressão da nota. Veja abaixo as causas:" & vbNewLine & ex.Message.ToLowerInvariant, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Stop)
                    objword.Quit()
                End Try
            End If
        End Sub

    OBRIGADÃO A TODOS DESDE JÁ!

    segunda-feira, 24 de abril de 2017 16:52

Respostas

  • Boa tarde Smart Tech Softwares,

    A Ideia da utilização da programação é justamente automizar processos.

    Para mexer nas configurações de impressão, você precisa fazer isso através da mesma

    _Document.PrintOut method

    Se for customizar toda a impressão, você pode tornar interativo para o usuário escolher como a impressão deverá ser feita.


    Att., Roberto Alves

    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.

    segunda-feira, 22 de maio de 2017 17:12

Todas as Respostas

  • Boa tarde Smart Tech Softwares,

    A Ideia da utilização da programação é justamente automizar processos.

    Para mexer nas configurações de impressão, você precisa fazer isso através da mesma

    _Document.PrintOut method

    Se for customizar toda a impressão, você pode tornar interativo para o usuário escolher como a impressão deverá ser feita.


    Att., Roberto Alves

    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.

    segunda-feira, 22 de maio de 2017 17:12
  • Bom dia,

    Por falta de retorno esta thread esta encerrada !

    Por gentileza, caso necessário abra uma nova thread.

    Atenciosamente,


    Guilherme Macedo S

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

    TechNet 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.

    quinta-feira, 25 de maio de 2017 16:29
    Moderador