Sie sind auf Seite 1von 16

Andr Alves de Lima

TALKING ABOUT SOFTWARE DEVELOPMENT AND MORE

Incio Software Development And more Inscreva-se Sobre

30
09 2015 Impresso direto na impressora com C#
ANDREALVESLIMA | .NET, RELATRIOS, SOFTWARE DEVELOPMENT, VISUAL STUDIO,
WINDOWS FORMS | 32

Voc sabe muito bem que tempo dinheiro. Mas, Andr, o que isso tem a ver com o artigo de
hoje? Tem tudo a ver! Muitos usurios de sistemas no querem ficar perdendo tempo vendo o
preview da impresso se eles sabem exatamente o que vai ser impresso. Acontece com
usurios das aplicaes que eu desenvolvi e garanto que deve acontecer com os usurios da
sua aplicao. Tanto que um dos inscritos da minha newsletter sugeriu que eu abordasse a
impresso direto na impressora com C#. E eu pensei: por que no?

2010 - 2015

E-book sobre Report Viewer

Imprimindo texto direto na impressora


Definitivamente, o contedo mais simples de se imprimir diretamente na impressora texto,
especialmente se for tudo com uma fonte s. Nesse primeiro exemplo, quero demonstrar
justamente como voc pode imprimir um bloco de texto direto na impressora, sem nenhum
preview. Receba outras dicas!
Para isso, crie um novo projeto do tipo Windows Forms Application . Com esse novo projeto Inscreva-se para ficar por dentro das
criado, ajuste o formulrio de forma que ele fique parecido com a imagem abaixo: novidades do meu site e receber
dicas extras que eu s compartilho
por e-mail!

Email Address*
32

converted by Web2PDFConvert.com
Nome

Sobrenome

* = campo obrigatrio

CADASTRAR

powered by MailChimp!

Vote no tema para prximos artigos!


Mais informaes sobre os temas voc
encontra aqui. Vote logo abaixo:

Impresso direta Crystal Reports


Como voc pode perceber, temos um ComboBox para escolher a impressora a ser utilizada Aplicao com plugins
(impressoraComboBox), um boto que ser responsvel por disparar a impresso
Entity Framework
(imprimirButton) e um TextBox com o contedo que dever ser impresso (impressaoTextBox).
No esquea de configurar o TextBox para que ele suporte mltiplas linhas (propriedade Controles dinmicos no Form
Multiline).
WPF + MVVM
Antes de partirmos para o cdigo da impresso, temos que carregar a lista de impressoras. E-mail com IMAP
Voc no tem noo de quo fcil listar as impressoras instaladas com o .NET Framework. A
classe PrinterSettings tem uma propriedade esttica chamada InstalledPrinters, que nada SignalR
mais que uma lista de strings com os nomes das impressoras. Mais simples impossvel! Cdigo de barras Report Viewer

Dito isso, crie um mtodo no nosso formulrio (chamado CarregarListaDeImpressoras) e faa a


chamada desse mtodo no construtor do formulrio:
Categorias
1 public FormImpressaoDireta()
2 {
3 InitializeComponent(); .NET
4
5 CarregarListaDeImpressoras();
6 } Acesso a dados
7
8 private void CarregarListaDeImpressoras() Alemanha
9 {
10 impressoraComboBox.Items.Clear(); And more
11
12 foreach (var printer in System.Drawing.Printing.PrinterSettings.InstalledPrinters)
ASP.NET
13 {
14 impressoraComboBox.Items.Add(printer); Crystal Reports
15 }
16 } MVP

Relatrios
Feito isso, vamos implementar o cdigo para fazer a impresso do texto direto na impressora,
sem o preview. A classe que temos que utilizar para implementar essa funcionalidade a Report Viewer
PrintDocument. Essa classe utiliza o evento PrintPage para gerenciar a impresso, ou seja, na
Reporting Services
implementao desse evento, voc precisa controlar o que deve ser impresso em cada uma
das pginas: Software Development
TFS

Viagens

Visual Studio

Windows Forms

converted by Web2PDFConvert.com
1 private void imprimirButton_Click(object sender, EventArgs e) WinRT
2 {
3 using (var printDocument = new System.Drawing.Printing.PrintDocument())
WPF
4 {
5 printDocument.PrintPage += printDocument_PrintPage; Xamarin
6 printDocument.PrinterSettings.PrinterName = impressoraComboBox.SelectedItem.ToString();
7 printDocument.Print();
8 }
9 }
10
11 void printDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
12 { Arquivos
13 var printDocument = sender as System.Drawing.Printing.PrintDocument;
14
15 if (printDocument != null)
16 { [+]
17 using (var font = new Font("Times New Roman", 14)) 2017
18 using (var brush = new SolidBrush(Color.Black))
19 {
20 e.Graphics.DrawString( [+]
21 impressaoTextBox.Text,
22 font, 2016
23 brush,
24 new RectangleF(0, 0, printDocument.DefaultPageSettings.PrintableArea.Width,
[] printDocument.Def
25 }
26 } 2015
27 }
dezembro

Para testar o cdigo, execute a aplicao, escolha uma impressora no ComboBox, digite um novembro
texto na caixa de texto e clique em Imprimir:
outubro

setembro
agosto

julho

junho

maio

abril
maro

fevereiro

janeiro

[+]
2014

[+]
2013

[+]
2012

[+]
2011

[+]
2010

[+]
2009

[+]
2008

[+]
2007
A propsito, voc sabia que o Word consegue gerar textos de exemplo (esse que comea em

converted by Web2PDFConvert.com
Lorem ipsum)? Aprenda como neste link. [+]
2006
E se no couber em uma pgina?
Se o contedo da caixa de texto no couber em uma pgina, somente a primeira pgina ser
impressa. E como conseguimos ajustar o cdigo para que ele se comporte corretamente
independentemente do nmero de pginas? Para isso, temos que alterar um pouco o cdigo
de forma que somente o texto que cabe em cada pgina seja impresso. Como fazer isso? Veja
o resultado:
1 private string _texto;
2
3 private void imprimirButton_Click(object sender, EventArgs e)
4 {
5 using (var printDocument = new System.Drawing.Printing.PrintDocument())
6 {
7 printDocument.PrintPage += printDocument_PrintPage;
8 printDocument.PrinterSettings.PrinterName = impressoraComboBox.SelectedItem.ToString();
9 _texto = impressaoTextBox.Text;
10 printDocument.Print();
11 }
12 }
13
14 void printDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
15 {
16 var printDocument = sender as System.Drawing.Printing.PrintDocument;
17
18 if (printDocument != null)
19 {
20 using (var fonte = new Font("Times New Roman", 14))
21 using (var brush = new SolidBrush(Color.Black))
22 {
23 int caracteresNaPagina = 0;
24 int linhasPorPagina = 0;
25
26 e.Graphics.MeasureString(
27 _texto, fonte, e.MarginBounds.Size, StringFormat.GenericTypographic,
28 out caracteresNaPagina, out linhasPorPagina);
29
30 e.Graphics.DrawString(
31 _texto.Substring(0, caracteresNaPagina),
32 fonte,
33 brush,
34 e.MarginBounds);
35
36 _texto = _texto.Substring(caracteresNaPagina);
37
38 e.HasMorePages = _texto.Length > 0;
39 }
40 }
41 }

Como voc pode ver, agora temos uma varivel no nvel do formulrio chamada _texto.
Essa varivel guardar sempre o texto que est faltando imprimir. Portanto, quando clicamos
no boto Imprimir, ns guardamos o texto completo da caixa de texto nessa varivel.
Depois, conforme formos imprimindo o texto de cada pgina, iremos ajustando o valor dessa
varivel para que ela guarde somente o texto que est faltando.

E como que medimos a quantidade de texto que cabe em uma pgina? Fcil! s
utilizarmos o mtodo MeasureString da classe Graphics. Esse mtodo recebe o texto, a fonte e
as dimenses da rea disponvel para impresso, retornando a quantidade de caracteres e
linhas que conseguimos imprimir nessa rea:
1 int caracteresNaPagina = 0;
2 int linhasPorPagina = 0;
3
4 e.Graphics.MeasureString(
5 _texto, fonte, e.MarginBounds.Size, StringFormat.GenericTypographic,
6 out caracteresNaPagina, out linhasPorPagina);

Por fim, a outra alterao importante na implementao do evento PrintPage foi feita na
ltima linha, onde indicamos se ainda temos outra pgina para imprimir ou no (propriedade
HasMorePages). Devemos configurar essa propriedade como true caso ainda tenhamos texto
para ser impresso (Length maior que zero).

converted by Web2PDFConvert.com
Imprimindo imagens e formas geomtricas
Da mesma forma que conseguimos imprimir texto utilizando a classe PrintDocument, ns
conseguimos imprimir imagens e formas geomtricas tambm. Para isso, ao invs de
utilizarmos o mtodo DrawString, temos que utilizar os mtodos DrawImage ou Draw*** (onde
*** o nome da figura geomtrica que voc quer desenhar).

Por exemplo, para imprimirmos uma imagem do arquivo logo.png (localizada no mesmo
diretrio da aplicao), poderamos utilizar o seguinte cdigo:
1 void printDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
2 {
3 var printDocument = sender as System.Drawing.Printing.PrintDocument;
4
5 if (printDocument != null)
6 {
7 e.Graphics.DrawImage(Image.FromFile("logo.png"), new Point(5, 5));
8 }
9 }

J para imprimirmos um polgono qualquer, temos que substituir a chamada do mtodo


DrawImage por DrawPolygon:

converted by Web2PDFConvert.com
1 e.Graphics.DrawPolygon(
2 new Pen(Color.Red),
3 new[]
4 {
5 new Point(30, 30),
6 new Point(80, 150),
7 new Point(20, 70),
8 new Point(100, 100),
9 new Point(30, 30)
10 });

Imprimindo um RichTextBox formatado


O exemplo de impresso de texto que eu demonstrei nesse artigo no considera a impresso
de textos ricos (com formatao). Para conseguirmos imprimir esse tipo de texto com
formatao, necessria muita gambiarra. Durante a minha pesquisa para escrever esse
artigo, encontrei dois exemplos de impresso de RichTextBox:

Getting WYSIWYG Print Results from a .NET RichTextBox

How to print the content of a RichTextBox control by using Visual C# .NET or Visual C# 2005

Impresso matricial
Algumas pessoas j me perguntaram como fazer para imprimir diretamente na porta LPT1, a
fim de imprimir texto puro em impressoras matriciais. Sempre que algum me pergunta isso,
eu encaminho o link para o componente que o Carlos dos Santos desenvolveu, que
implementa justamente essa funcionalidade:

Dot Matrix Print 2.0 Componente para impresso matricial

Concluindo
Normalmente, quando queremos imprimir informaes a partir dos nossos sistemas,
utilizamos alguma ferramenta de gerao de relatrios (como Report Viewer ou Crystal
Reports). Porm, em algumas situaes precisamos ter o controle total do contedo que ser
impresso, principalmente as posies onde as informaes sero impressas e se queremos ou
no exibir um preview antes de imprimir. Nesse artigo voc aprendeu a imprimir textos,
imagens e figuras geomtricas diretamente na impressora. Dessa forma, nas situaes em que
voc precisar desse tipo de controle total da sua impresso, voc saber como proceder.

E voc, j teve que fazer algo parecido? Como voc acabou resolvendo essa situao? Da
mesma forma que eu resolvi ou de alguma outra maneira? Conte nos comentrios como foram
as suas experincias com a impresso de informaes em aplicativos desenvolvidos com o
.NET Framework.

Antes de me despedir, convido voc a inscrever-se na minha newsletter. Ao fazer isso, voc
receber um e-mail toda semana sobre o artigo publicado, ficar sabendo em primeira mo
sobre o artigo da prxima semana e receber tambm dicas bnus que eu s compartilho
por e-mail. Alm disso, voc j deve ter percebido que eu recebo muitas sugestes de temas e
eu costumo dar prioridade s sugestes vindas de inscritos da minha newsletter. Inscreva-se
aqui ou utilizando o formulrio logo abaixo.

At a prxima!

converted by Web2PDFConvert.com
Andr Lima

Newsletter do Andr Lima


* indicates required
Email

*
Nome

Sobrenome

Powered by MailChimp
INSCREVA-SE!

Related Posts

Syntatic Line Como podemos exportar Trabalhando com


Compression: Visualize relatrios do Report colunas no ReportViewer
uma quantidade maior Viewer? (para imprimir
de cdigo no Visual etiquetas)
Studio

Trabalhando com Atualizando um relatrio Como imprimir um


arquivos PDF no C# do Report Viewer de formulrio no Windows
tempos em tempos Forms com C# e VB.NET?

PERISCOPE REPLAY: 3 IMPORTANTES LIES QUE EU APRENDI COM O LIVRO DO THE WORK (STEVEN
PRESSFIELD)
PERISCOPE REPLAY: PROGRAMADORES(AS), 3 DICAS RPIDAS PARA DEIXAR O SEU CDIGO MAIS LIMPO

32 thoughts on Impresso direto na impressora com C#

Ricardo Fabricio disse:


8 de dezembro de 2015 s 13:55

Andr, obrigado por compartilhar parte do seu tempo e conhecimento de grande

converted by Web2PDFConvert.com
ajuda a todos ns.

Gostaria de uma ajudinha

possvel justificar um texto/paragrafo utilizando o controle richtextbox ?


RESPONDER

andrealveslima disse:
10 de dezembro de 2015 s 6:20

Ol Ricardo, obrigado pelo comentrio!

Fiz algumas pesquisas aqui e no consegui encontrar uma maneira de justificar


texto no RichTextBox do Windows Forms.. S d para alinhar direita, esquerda
ou centralizado.. O controle de RichTextBox do Windows Forms bem limitado..
Acho que voc s conseguiria essa funcionalidade ao implementar um controle
derivado dele fazendo as devidas alteraes.. Encontrei este exemplo que
parece que atende ao que voc precisa (obs: no testei, ento, no sei se
realmente funciona):

Extending RichTextBox

De qualquer forma, como falei, os controles nativos do Windows Forms so bem


limitados.. Eu sugeriria a compra de alguma suite de controles comerciais, como
DevExpress ou Telerik.. Os controles de RichText dessas duas bibliotecas do
de 10000 a zero no controle do Windows Forms:

DevExpress WinForms Rich Text Editor

Telerik RadRichTextEditor

Abrao!
Andr Lima
RESPONDER

FRANCISCO RICARDO disse:


15 de maio de 2016 s 17:16

Excelente post esta de parabens, me ajudou bastante.

Estou tentando fazer impressao direta mais em relatorios com report view.

Voce tem alguma dica quem saber criar um novo artigo sobre..

Mais uma vez obirgado.


RESPONDER

andrealveslima disse:
18 de maio de 2016 s 5:59

Ol Francisco, obrigado pelo comentrio!

Como assim impresso direta pelo Report Viewer? Voc quer imprimir o relatrio
direto sem mostrar o preview? Caso seja isso, talvez este artigo te ajude:

Walkthrough: Printing a Local Report without Preview

Um outro artigo que pode te ajudar este aqui que eu publiquei umas
semanas atrs:

Como podemos exportar relatrios do Report Viewer?

Nele eu mostro como exportar o relatrio para PDF sem o preview.. Talvez seja
til para voc tambm..

converted by Web2PDFConvert.com
Enfim, d uma olhada nesses links e depois me avisa se te ajudou ou no..

Abrao!
Andr Lima
RESPONDER

FRANCISCO RICARDO disse:


18 de maio de 2016 s 17:18

E isso mesmo meu amigo mais uma vez muito obrigado.


RESPONDER

andrealveslima disse:
19 de maio de 2016 s 5:46

Beleza Francisco!

Qualquer coisa se voc ficar com alguma dvida, entre em contato


novamente..

Abrao!
Andr Lima
RESPONDER

FRANCISCO RICARDO disse:


21 de maio de 2016 s 22:44

Boa tarde andre, venho novamente lhe agradecer e dizer


que seu post e seus comentarios abriram bastante meus
horizontes, consegui implementar uma classe para
impressao direta no meu sistema ficou show.

Mais estou com um problema, tenho uma aplicao que


imprimi os pedidos de um cliente via desktop, ta
funcionando direitinho imprimindo sem problemas.

Entao estou fazendo esse pedido atrazes de um app que


desenvolvi em android, desenvolvi tambem um
WEBSERVICE em C# tudo funcionando direitinho, mais to
com um problema na hora da impressao, quando mando
imprimir pelo webservice (IIS 7)ele nao imprimi fica apenas
processando mas nao imprimi, apos varios testes verifiquei
que o problema esta na classe printDocument pois quando
chamado o metodo print() ela abre e fecha
automaticamente uma janela com o titulo de imprimir e um
botao cancelar, de praxe do PrintDocument, e por o IIS no
aceitar esses tipos de janelas essa no imprimir, mas o
mais interessante e quando copilo do visual studio
funciona direitinho, quando publico para o meu servidor
IIS 7 ele no imprimi. Podeira me dar uma dica?

andrealveslima disse:
23 de maio de 2016 s 14:35

Ol Francisco!

Ser que no porque o IIS est rodando com um usurio


que no tenha acesso impressora do servidor? Voc j
tentou alterar a aplicao no IIS para rodar como outro
usurio que tenha acesso a impressora (como local
system)?

converted by Web2PDFConvert.com
Abrao!
Andr Lima

FRANCISCO RICARDO disse:


24 de maio de 2016 s 1:27

Infelizmente tenho pouco conhecimento em IIS ja andei


pesquisando sobre criar usuarios e dar acesso as
funcionalidades do servidor mas nao encontro nada
concreto.

Se poder me ajudar dando algumas dicas de como criar


usuarios e da permissoes a eles fico muito agradecido.

Mais uma vez muito obrigado.

andrealveslima disse:
24 de maio de 2016 s 13:55

Ol Francisco,

No estou com um ambiente que tenha IIS aqui para eu


tirar uns screenshots, mas, basicamente voc s tem que ir
no application pool onde seu servio est rodando e alterar
o usurio nas propriedades dele (em application pool
identity).. Tem um tutorial no TechNet explicando:

Especificar uma identidade para um pool de aplicativos (IIS


7)

Abrao!
Andr Lima

Leonardo disse:
2 de junho de 2016 s 16:06

Bom dia. Obrigado pela dica Andre.


Estou buscando uma soluo para imprimir com C#, porm no usando a impressora do
servidor, mas a impressora do cliente. Minha aplicao web e tenho que imprimir na
LPT1 do cliente. Pode me dar uma ajuda?
Obrigado mais uma vez.
RESPONDER

andrealveslima disse:
3 de junho de 2016 s 14:04

Ol Leonardo, obrigado pelo comentrio!

Infelizmente eu tenho pouqussima experincia com desenvolvimento web.. No


fao a mnima ideia de como voc poderia imprimir na LPT do cliente atravs de
uma web application.. O mximo que eu consegui encontrar em uma rpida
pesquisa que eu fiz aqui foi esta biblioteca comercial que aparentemente faz o
que voc est querendo fazer:

WebClientPrint for ASP.NET

converted by Web2PDFConvert.com
Se isso no te ajudar, sugiro que voc poste essa sua pergunta nos fruns da
MSDN, categoria desenvolvimento web:

Fruns MSDN, web development

Desculpe por no ter conseguido ajudar mais..

Abrao!
Andr Lima
RESPONDER

Leonardo disse:
3 de junho de 2016 s 14:09

Andr, que isso cara, muito obrigado por responder prontamente. A


soluo comercial apresentada bem interessante, principalmente se o
cliente estiver com muita pressa. Mas no nosso caso vou desenvolver um
applet em java pra executar o arquivo bat na mquina do cliente. Este
arquivo vai conter apenas um comando type. Por hora, o cliente pode
executar este arquivo manualmente, tendo apenas o cuidado de salvar o
arquivo gerado, o que vai pra impressora, sempre na mesma pasta.
Mais uma vez obrigado e bom trabalho pra voc.
Grande abrao!
RESPONDER

andrealveslima disse:
3 de junho de 2016 s 14:33

Valeu Leonardo!

Maravilha! Boa sorte a no desenvolvimento e muito sucesso pra


vc!

Abrao!
Andr Lima
RESPONDER

Joo Paulo disse:


23 de setembro de 2016 s 1:45

Ol Andr, excelente post. Estou procurando como listar impressoras de rede, mesmo
as que no esto instaladas e exibir em uma lista. Voc sabe como faz?

Grato pela ateno,


RESPONDER

andrealveslima disse:
23 de setembro de 2016 s 9:37

Ol Joo, obrigado pelo comentrio!

Nunca precisei fazer isso, mas, fui procurar aqui para ver se conseguia fazer..
Encontrei estes dois links com duas solues:

List available network printers (non-installed as well)

How to get Printers from Network which is not installed in my system?

Porm, nenhum dos dois exemplos funcionaram aqui no meu computador..

converted by Web2PDFConvert.com
Consegui compilar os dois, mas, o primeiro retorna uma lista com todos os
recursos da rede (impressoras ou no), s que no consegui encontrar um meio
de s separar as impressoras.. J o segundo, d um erro quando tento executar
(The specified domain either does not exist or could not be contacted)..

Mas, por que voc est querendo listar mesmo as impressoras no instaladas?
Que eu saiba, o Windows no vai deixar voc imprimir em uma impressora que
no esteja instalada no seu computador..

Enfim, de qualquer maneira, se voc conseguir encontrar alguma maneira de


fazer isso, volta aqui e avisa a gente..

Abrao!
Andr Lima
RESPONDER

Danilo da silva disse:


29 de setembro de 2016 s 21:46

boa tarde,amigo tem como imprimir o form inteiro ?


RESPONDER

andrealveslima disse:
30 de setembro de 2016 s 8:45

Ol Danilo!

possvel sim.. Aqui tem um exemplo, veja s:

How to: Print a Windows Form

Qualquer coisa se voc no conseguir adaptar no seu projeto, s avisar..

Abrao!
Andr Lima
RESPONDER

Giovana disse:
10 de novembro de 2016 s 12:42

Bom dia Andr. Obrigada pelo compartilhamento de seu conhecimento.


Eu tenho uma aplicao que gera arquivos PDF, e gostaria de mand-los direto para a
impressora (hoje ele aberto no leitor PDF e enviado automaticamente para a
impressora). Escrevi os bytes do arquivo diretamente na minha impressora e tudo
funcionou, mas quando imprimo em outra impressora, cujo driver PCL6, no consigo
um resultado satisfatrio. Voc sabe o que devo fazer?
RESPONDER

andrealveslima disse:
11 de novembro de 2016 s 8:56

Ol Giovana, obrigado pelo comentrio!

Voc j pensou em pedir para o Adobe Reader imprimir o seu arquivo


silenciosamente (sem exibir a interface do Adobe Reader)? Acredito que os
computadores onde a sua aplicao est rodando tenham o Adobe Reader
instalado, no? Essa alternativa discutida nesta thread do StackOverflow, veja
s:

converted by Web2PDFConvert.com
How can I send a file document to the printer and have it print?

Esse esquema do driver diferente ao mandar os bytes do arquivo para a


impressora eu no tenho ideia do que possa estar acontecendo.. :(

Abrao!
Andr Lima
RESPONDER

Como imprimir um formulrio no Windows Forms com C# e VB.NET? - Andr Alves de


Lima disse:
16 de novembro de 2016 s 15:01

[] dias atrs eu recebi um comentrio no meu artigo sobre impresso direta com C#
perguntando se seria possvel imprimirmos um formulrio no Windows Forms. Eu sabia
que isso era []
RESPONDER

Diego Marlyson Santos Duque disse:


20 de janeiro de 2017 s 20:17

Ol Andr boa tarde, voc saberia me dizer como eu envio um report.rdcl montado
para a impressora direto sem o preview?
RESPONDER

andrealveslima disse:
23 de janeiro de 2017 s 15:59

Ol Diego!

Eu tenho planos de escrever um artigo sobre esse tema no futuro, mas


infelizmente ainda no consegui encontrar um tempo.. J dei uma pesquisada e
encontrei alguns links (ainda no testei mas parecem promissores).. Veja se os
links te ajudam:

Manually Printing a Report

Imprimir reportviewer Via Codigo C#

Se voc conseguir fazer funcionar, avisa aqui a gente, OK?

Abrao!
Andr Lima
RESPONDER

Diego Marlyson Santos Duque disse:


25 de janeiro de 2017 s 11:51

Andr bom dia, implementei a classe disponibilizada no segundo link


que voc me passou e funcionou perfeitamente, s tive que gerar o
report, popular seu datasource, chamar a classe passado como parmetro
o reportviewr1.LocalReport e chamar o mtodo Print().

Obrigado pela dica!!!


RESPONDER

andrealveslima disse:
26 de janeiro de 2017 s 6:25

converted by Web2PDFConvert.com
Ol novamente, Diego! Obrigado pelo retorno! Fico feliz que
tenha funcionado.. :)

Abrao!
Andr Lima
RESPONDER

FABIO C MEDEIROS disse:


20 de abril de 2017 s 11:50

Ol Andre. Muito bom seu artigo. Me ajudou muito.


Como fao para imprimir em formulrio continuo, ajustando o espaamento exato entre
uma pgina e outra para que os dados casem no formulrio?
Obrigado.
RESPONDER

andrealveslima disse:
20 de abril de 2017 s 21:28

Ol Fabio, muito obrigado pelo comentrio!

Cara, impresso direta um jogo de pacincia.. A nica coisa que podemos fazer
posicionar a impresso na coordenada correta na pgina.. No caso do
formulrio contnuo, apesar das pginas estarem grudadas eu acredito que
para o PrintDocument voc teria que considerar pginas separadas, ajustando a
coordenada da impresso adequadamente..

Voc j tentou implementar esse tipo de impresso e no deu certo? Qual que
foi o problema exatamente?

Abrao!
Andr Lima
RESPONDER

FABIO C MEDEIROS disse:


20 de abril de 2017 s 22:38

Ol.
No meu caso a primeira impresso casa perfeitamente no formulrio,
porm as impresses seguintes comeam a sair do posicionamento,
chegando a determinado momento estar totalmente fora da rea correta
do formulrio.

Como fao para determinar o tamanho exato da rea de impresso para


que ao terminar a impresso de um documento a posio inicial do
formulrio seja a mesma do inicio do primeiro documento.
Obrigado.
RESPONDER

andrealveslima disse:
21 de abril de 2017 s 13:20

Ol Fabio!

Que zica hein.. Eu nunca precisei determinar o tamanho da rea


disponvel para impresso, mas parece que esta thread do
StackOverflow aborda exatamente esse tema:

converted by Web2PDFConvert.com
How to find the actual printable area? (PrintDocument)

Voc j chegou a dar uma olhada nesse cdigo?

Abrao!
Andr Lima
RESPONDER

andrealveslima disse:
3 de maio de 2017 s 10:41

Ol Fabio!

Conseguiu resolver esse problema? O link do StackOverflow


ajudou em algo?

Abrao!
Andr Lima
RESPONDER

FABIO C MEDEIROS disse:


12 de maio de 2017 s 21:30

Boa tarde Andr. Consegui por outro mtodo de impresso,


que foi a gerao de uma arquivo TXT e envio direto para
impressora. Entretanto, estou com outro problema que a
captura do nome de compartilhamento da impressora que
estou enviando o arquivo. Como a impressora que utilizo
matricial e para imprimir nessas impressoras usando os
computadores atuais que no tem porta paralela, preciso
enviar para LPT1 usando o comando TYPE > LPT1, porm
antes tenho que executar o comando net use LPT1
\\meuip\NomeCompart em um arquivo .BAT. Da preciso
capturar o nome de compartilhamento da Impressora. Voc
sabe como fao para capturar essa informao usando o
C#? Agradeo desde j.

andrealveslima disse:
15 de maio de 2017 s 8:41

Ol Fabio, obrigado pelo retorno!

Entendi.. Nunca precisei fazer isso, mas dei uma


pesquisada aqui e encontrei esta thread no StackOverflow:

Is there a .NET way to enumerate all available network


printers?

Voc j deu uma olhada nela? Tentou fazer dessa forma?

Abrao!
Andr Lima

Deixe uma resposta

converted by Web2PDFConvert.com
O seu endereo de e-mail no ser publicado. Campos obrigatrios so marcados com
*
Comentrio

Nome *
E-mail *
Site

PUBLICAR COMENTRIO
Notifique-me sobre
novos comentrios
por e-mail.
Notifique-me sobre
novas publicaes
por e-mail.

Subscribe

Incio Software Development And more Inscreva-se Sobre

converted by Web2PDFConvert.com

Das könnte Ihnen auch gefallen