Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

overload

Problemas c/ ObjetoPrinter - Params. de Impresssao

Recommended Posts

Boa Tarde,

 

Estou tentando enviar uma impressão de etiquetas para uma impressora padrão SATO, onde as etiquetas possuem tamanho:

 

Width: 15,01 (em cm)

Height: 11,99 (em cm)

 

Width: 150,10 (em mm)

Height: 119,90 (em mm)

 

Width: 5,91 (em inches)

Height: 4,72 (em inches)

 

Esta impressora está em rede, instalada como secundária (não é padrão) em um computador na rede.

 

Abaixo segue o código onde eu localizo a impressora, e depois seto os parametros de impressão. Porém, ocorre o erro dizendo que as propriedades são somente leitura. Logo depois o codigo da funcao que imprime o texto (imp_textoXYWH)

 

Alguém poderia me dizer como conseguir setar os parametros abaixo sem que o erro ocorra?

 

Onde está em vermelho é onde ocorre o erro de "read-only" nas propriedades...

 

Abraços!!!

 

=====================================================

 

'seleciona como impressora aquela que tem o device name da SATO

'----------------------------------------------------------------

For Each impr In Printers

If UCase(InStr(impr.DeviceName, "SATO")) Then

Set Printer = impr

Exit For

End If

Next

 

'Tamanho do espaço(página) a ser impresso (escala, tamanho e altura)

'-----------------------------------------------------------

impr.PaperSize = vbPRPSUser '-------> Determina o tipo de papel (User Defined)

impr.ScaleMode = vbCentimeters '----> Muda o tipo de medida para cm (centímetros)

impr.ScaleHeight = 15.01 '----------> Define altura do espaço

impr.ScaleWidth = 11.09 '-----------> Define tamanho do espaço

 

impr.Height = 4.72 * 1440 '---------> Determina o tamanho da folha (em Twips)

impr.Width = 5.91 * 1440 '----------> Determina a altura da folha (em Twips)

 

'Determina as Propriedades da Impressão

'--------------------------------------

impr.Orientation = vbPRORPortrait '-----> Imprime como "retrato"

Do While Val(Text_QEtiq) >= 0

 

'****************************************************************************

************

'Titulo etiqueta ---> (**************************)

'---------------

impr.FontName = "Arial" '-----------------------> Nome da Fonte

impr.FontSize = 11 '----------------------------> Tamanho da Fonte

impr.FontBold = True '--------------------------> Negrito ou Não (Sim)

impr.ForeColor = vbBlack '----------------------> Cor da Fonte

impr.ColorMode = vbPRCMMonochrome '-------------> Impressão Colorida ou Monocromática

 

'Imprime as informações da etiqueta

'-------------------------------------------------------

Call imp_textoXYWH(UCase("Teste com o nome da empresa"), 3.15, 0.5)

 

 

'Endereço etiqueta

'-----------------

impr.FontName = "Impact" '----------------------> Nome da Fonte

impr.FontSize = 11 '----------------------------> Tamanho da Fonte

impr.FontBold = False '-------------------------> Negrito ou Não (Sim)

impr.ForeColor = vbBlack '----------------------> Cor da Fonte

impr.ColorMode = vbPRCMMonochrome '-------------> Impressão Colorida ou Monocromática

Call imp_textoXYWH(UCase("Teste de endereço 1"), 3.22, 1.13)

Call imp_textoXYWH(UCase("Teste de endereço 2"), 3.22, 1.47)

Call imp_textoXYWH(UCase("Fones: (0xx11) 4000-0000"), 3.22, 1.79)

Call imp_textoXYWH(UCase("Teste 4"), 3.22, 2.19)

Call imp_textoXYWH(UCase("INDÚSTRIA BRASILEIRA"), 3.22, 2.58)

 

 

impr.PaintPicture logo.Picture, 0.22, 0.36, 2.61, 2.53

 

impr.EndDoc '------> Manda a etiqueta para o spool

 

 

 

StrContador = Val(StrContador) + 1

Text_QEtiq = Val(Text_QEtiq) - 1

 

Loop

 

Frame_ImprEtiq.Visible = False

 

End If

 

End Sub

 

====================================================

 

Public Sub imp_textoXYWH(texto As String, Optional x, Optional y)

 

If Not IsMissing(x) Then impr.CurrentX = Val(x)

If Not IsMissing(y) Then impr.CurrentY = Val(y)

 

impr.Print texto

 

End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

Quando você usa o seguinte código:

Set printer = impr
O printer assume o controle da impressora então não é mais preciso fazer impr.print tenta substituir todos impr que estiverem a baixo dessa linha para printer.prin (...)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa!Valeu Luiz!Funcionou direitinho!! (bem, nem tão direito... rs... mas aí já são outros quinhentos... hahaahahah)Valeu emsmo!Abraços!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.