Ir para conteúdo
Fórum Script Brasil
  • 0

Imprimir etiquetas


Guest Aprendendo

Pergunta

Guest Aprendendo

Eu estou tentando imprimir etiquetas para formulário contínuo, tentei no QReport, mas eu configuro tudo certinho, tamanho da DetailBand e o tamanho da página, mas se eu mando imprimir um número maior que 48 etiquetas, (cada página das etiquetas tem 24 etiquetas, duas colunas de 12)na última ele corta as duas últimas linhas da última etiqueta, eu estou utilizando um código assim

Writeln(Extr, 'Nome: '  +zquery1.fields[0].asstring );
Writeln(Extr, 'End: '    +Zquery1.fields[1].asstring);
Writeln(Extr, 'CEP.: '    +Zquery1.Fields[2].AsString);
Writeln(Extr, 'TEL: '  +ZQuery1.Fields[3].AsString);

Gostaria que as etiquetas ficassem assim

Nome--------------------------------------| Nome---------------------------------

End---------------------------------------- | End-----------------------------------

CEP----------------------------------------|TEL------------------------------------

Que com os dados ficaria assim

Cliente1-------------------------------------Cliente2

Rua um--------------------------------------Rua dois

89400----------------------------------------89400

Aí iria para a próxima etiqueta, então, seria mais ou menos isso, imprimir dados em duas colunas, só que a Query teria que ter um Next quando for para a segunda coluna,e outro quando fosse passar para a linha de baixo,mas não estou sabendo como fazer isso.

Link para o comentário
Compartilhar em outros sites

20 respostass a esta questão

Posts Recomendados

  • 0
Eu estou tentando imprimir etiquetas para formulário contínuo, tentei no QReport, mas eu configuro tudo certinho, tamanho da DetailBand e o tamanho da página, mas se eu mando imprimir um número maior que 48 etiquetas, (cada página das etiquetas tem 24 etiquetas, duas colunas de 12) na última ele corta as duas últimas linhas da última etiqueta

Veja nestes posts:

http://scriptbrasil.com.br/forum/index.php...st&p=460905

http://scriptbrasil.com.br/forum/index.php...st&p=460959

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Supondo que você já tenha implementado o relatório da forma como o Jhonas lhe indicou...

..., (cada página das etiquetas tem 24 etiquetas, duas colunas de 12)na última ele corta as duas últimas linhas da última etiqueta,
Verifique se você configurou corretamente o tamanho do papel e as margens superior e inferior (em formulários contínuos elas são praticamente zero).

eu estou utilizando um código assim

Writeln(Extr, 'Nome: '  +zquery1.fields[0].asstring );
Writeln(Extr, 'End: '    +Zquery1.fields[1].asstring);
Writeln(Extr, 'CEP.: '    +Zquery1.Fields[2].AsString);
Writeln(Extr, 'TEL: '  +ZQuery1.Fields[3].AsString);

só para não ficar dúvidas, este era o código que você usava, certo?! Porque isto não tem relação com o QuickReport.

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Aprendendo
só para não ficar dúvidas, este era o código que você usava, certo?! Porque isto não tem relação com o QuickReport.

Na verdade eu estava tentando utilizar o QReport, mas ele estava cortando na última etiqueta, aí pensei que daria certo fazendo as etiquetas e enviando diretamente para a porta de impressão, por que aí, iria enviar todas as etiquetas para a impressora independente do número de páginas, o que acontece no QReport é o seguinte:

Configurei cada QRBand como DetailBand com 25.40mm, então como tenho que imprimir 12 etiquetas por página deixei o tamanho da página do QReport com 304.80(Que sobra um tanto no final), aí se eu coloco para imprimir uma página completa imprime certinho, mas se eu mando imprimir duas páginas quando termina a impressão da primeira imprime a última etiqueta da primeira e imediatamente imprime a primeira etiqueta da segunda, ignorando o tamanho da detailBand, fica assim

Cliente1-------------------------------------Cliente2

Rua um--------------------------------------Rua dois

89400----------------------------------------89400

Cliente1-------------------------------------Cliente2

Rua um--------------------------------------Rua dois

89400----------------------------------------89400 ------------- //Esta é a última etiqueta da Primeira Página

Cliente1-------------------------------------Cliente2 ------------- //Esta é a Primeira da segunda, ela não respeita o tamanho da

Rua um--------------------------------------Rua dois ------------//DetailBand como acima

89400----------------------------------------89400

E não sei porque é que não respeita o espaço, se continuasse como nas etiquetas de cima, seria perfeito, tá, aí tentei colocar um

PageHeader nas páginas, com exceção da primeira, mas aí o que acontece é que no final da segunda página, corta as duas últimas linhas da última etiqueta.

Aí eu penso, que se eu fizer como se cada etiqueta fosse uma página, ele iria imprimir legal, mas acontece que imprime as duas primeiras e ejeta a página para daí começar a imprimir a segunda.

Aí sinceramente não sei como fazer para imprimir estas etiquetas corretamente, se tivesse como eu deixar o tamanho da página de acordo com o número de etiquetas a serem impressas, digamos, se fosse utilizar 10 DetailBands, o tamanho da página ficasse com 254.00 mm, pois em formulário contínuo não haveria necessidade de fazer por página.

E está assim. :(

Link para o comentário
Compartilhar em outros sites

  • 0
Na verdade eu estava tentando utilizar o QReport, mas ele estava cortando na última etiqueta, aí pensei que daria certo fazendo as etiquetas e enviando diretamente para a porta de impressão, por que aí, iria enviar todas as etiquetas para a impressora independente do número de páginas
Aprendendo, se você não precisa de qualquer recurso especial, como impressão de imagens, alteração de fontes, a opção mais simples e de impressão rápida seria justamente a impressão direta.

o que acontece no QReport é o seguinte:

Configurei cada QRBand como DetailBand com 25.40mm, então como tenho que imprimir 12 etiquetas por página deixei o tamanho da página do QReport com 304.80(Que sobra um tanto no final), aí se eu coloco para imprimir uma página completa imprime certinho, mas se eu mando imprimir duas páginas quando termina a impressão da primeira imprime a última etiqueta da primeira e imediatamente imprime a primeira etiqueta da segunda, ignorando o tamanho da detailBand,

Como você disse que imprime em formulário contínuo, vou assumir que utiliza o tamanho padrão - 11,5" (11 polegadas e meia). Agora, vamos transformar isto em mm para facilitar a compreensão do que tenho querido dizer. Vamos lá: 1" equivale a 2,54cm ou 25,4mm, logo 11,5" x 25,4mm = 292,1mm (um pouquinho a baixo do que você está usando não é?!).

Bom, dividindo isto pela quantidade de linhas que você tem (12), então a sua banda detail deveria ter 24,3416666mm. Isto porque estamos considerando toda a área da folha de 11,5".

Formatação deste tipo, tem que levar em conta também as margens físicas (limites) da impressora. No caso das maticiais, são praticamente de 0mm, quando usando formulário contínuo em que o tracionador conduz a folha Se usar folha avulsa, você verá que quando chegar próximo ao final da folha (coisa de 1,5cm) a folha já estará "caindo" do carro de impressão porque não tem sustentação.

No caso das jato de tinta, as margens inferiores também variam. Minha antiga DeskJet 550 tinha uma margem inferior de 1,85cm, enquanto que em minha atual, este valor baixou para 1,17cm - "ganhei" 68mm (cabe, pelo menos, uma linha a mais no papel).

Resumindo, experimente ajustar o papel para o formato adequado a sua impressora (talvez seja o letter); defina as margens superior e inferior para 0mm; não utilize qualquer outra banda que não seja a detail (neste caso da impressão só de etiquetas);

E lembre-se, o nº de linhas x a altura da banda não pode ultrapassar a área útil (altura da folha menos soma das margens inf. e sup.)

nunca tive problemas em imprimir etiquetas, qualquer que fosse o tamanho ou numero de paginas.
Jhonas, só pode ter sido coincidência. Formate o documento para o tamanho A4, utilize toda sua área e tente imprimir em uma impressora com o formato Letter. É uma questão física (se não cortar, ficará em outra página):

Letter size is 8½ × 11 inches = 215.9 × 279.4mm

A4 standard = 210mm × 297mm

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0
Jhonas, só pode ter sido coincidência. Formate o documento para o tamanho A4, utilize toda sua área e tente imprimir em uma impressora com o formato Letter. É uma questão física (se não cortar, ficará em outra página):

Letter size is 8½ × 11 inches = 215.9 × 279.4mm

A4 standard = 210mm × 297mm

Não foi coincidência não Micheus, mas tambem esqueci de dizer que não uso tamanho padrão de folha ( A4, Letter, etc )

defino o Paper Size em ( Custom Size ) onde voce pode definir exatamente a largura e comprimento do papel que vai usar. Talvez por isso nunca tenha tido esse problema.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Aprendendo

Olá pessoal, eu estava sem a folha de etiquetas, mas fui lá e peguei uma, medi a mesma, e, a página deu exatamente 30cm, cada etiqueta tem 2,4cm de altura, então, contando com o espaço entre elas, coloquei cada DetailBand com 2,5cm, que multiplicando por 12 dará exatamente o tamanho da página.

Então configurei o tamanho no QReport como Custom Size, Width 189.9 e Length 320.4(Que sobra bastante ainda), aí configurei na impressora um novo papel com estas medidas, Largura 18,9cm e Altura 32.04cm.

Então mandei para imprimir, mas acontece o seguinte, vai imprimindo tudo certinho, a distancia entre uma e outra exatamente no lugar, mas na última etiqueta da página, não imprime a última linha e onde seria a última linha começa a imprimir a primeira etiqueta da segunda página, aí, todas as próximas etiquetas saem fora da etiqueta, mas o espaço entre elas é correto, somente sai errado da última de uma página para a primeira da próxima, e, como as medidas estão até maiores, na impressora e no QReport, teoricamente teria que terminar de imprimir a última etiqueta, dar o espaço que deixei em branco na DetailBand para aí começar a imprimir a segunda página(Que em formulário contínuo é como se fosse somente uma página).

Coloquei até um QRLabel no rodapé da página para ver se de repente imprimiria, mas também não imprimiu.(Acho que este QReport está me tirando :wacko: )

Sinceramente,não sei onde eu estou errando, do meu ponto de vista está tudo certo.

Ah, as margens superior e inferior estão configuradas com 0,00.

Link para o comentário
Compartilhar em outros sites

  • 0
Olá pessoal, eu estava sem a folha de etiquetas, mas fui lá e peguei uma, medi a mesma, e, a página deu exatamente 30cm, cada etiqueta tem 2,4cm de altura, então, contando com o espaço entre elas, coloquei cada DetailBand com 2,5cm, que multiplicando por 12 dará exatamente o tamanho da página.

Então configurei o tamanho no QReport como Custom Size, Width 189.9 e Length 320.4(Que sobra bastante ainda), aí configurei na impressora um novo papel com estas medidas, Largura 18,9cm e Altura 32.04cm.

Aprendendo, configurar formulário de etiquetas para ficar certinho é chato mesmo.

Mas, uma coisa que você parece não entendeu é que você não pode definir o tamanho do formulário no quick maior que o tamanho do papel!

Não é para sobrar nada.

Se vier a dar certo na primeira página, vai dar erro se houver um segunda.

Quando final da página é encontrado pelo Quick (baseado na configuração), vai haver um avanço de página e, já estando na segunda página, a impressora deverá passar para a 3ª - e por ai vai.

Tem que ser lembrado que o quick faz impressão no modo gráfico - não texto como quando você utiliza writeln (motivo de ser mais rápido).

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Mas, uma coisa que você parece não entendeu é que você não pode definir o tamanho do formulário no quick maior que o tamanho do papel!

Não é para sobrar nada.

complementando o que disse o Micheus...

o comprimento vertical da banda de detalhe do QR deve ser igual ao comprimento vertical da etiqueta mais a metade da distancia entre as etiquetas ( obs: a distancia de apenas uma etiqueta a outra ) , ai não tem erro , sempre vai cair no mesmo lugar.

Ex: digamos que a etiqueta tenha 3 cm e a distancia entre elas seja de 0,5 cm, então a sua banda de detalhe teria que medir 3,25 cm e a definição do Custom Size teria que ser exatamente o comprimento da folha que voce vai usar ( de picote a picote )

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Aprendendo

Olá, eu tentei configurar apenas a metade das etiquetas por página, dá exatamente 15.38cm, aí configurei uma página com 15.40cm no QReport e também uma com a mesma medida na Impressora, aí, ficou com 12 etiquetas , se eu mando imprimir 13 etiquetas, ele imprime as 12 que estão na primeira página, e ejeta um espaço que vai até onde seria o tamanho da A4, aí começa a imprimir a segunda página.

Não sei porque, se eu configurei uma página com o tamanho da página do QReport.

De repente se tivesse como oQReport não ejetar a página ao final da última etiqueta da primeira página.

Link para o comentário
Compartilhar em outros sites

  • 0
Olá, eu tentei configurar apenas a metade das etiquetas por página, dá exatamente 15.38cm, aí configurei uma página com 15.40cm no QReport e também uma com a mesma medida na Impressora, aí, ficou com 12 etiquetas , se eu mando imprimir 13 etiquetas, ele imprime as 12 que estão na primeira página, e ejeta um espaço que vai até onde seria o tamanho da A4, aí começa a imprimir a segunda página.

Não sei porque, se eu configurei uma página com o tamanho da página do QReport.

Se entendi direito, você configurou a altura da página do quick para 15,40cm (uma folha A4 tem 29,70cm) e criou um tamanho de papel personalizado na sua impressora (através das propriedades da Impressora no painel de controle) e, ao imprimir a página, ela continua pulando para a posição equivalente a A4. É isto?

Se for...:

- que impressora você está utilizando?

- o tamanho do papel customizado, na propriedades da impressora, foi definido em mm, cm ou polegadas?

A ejeção é automática, ou seja, após atingido o fim da página do quick ele chama o método NewPage que provoca a ejeção da página.

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Oi, 'Aprendendo'!

Que tipo de impressora você está usando? Jato de tinta ou laser?

A pergunta é porque alguns tipos (a maioria) de impressora jato de tinta só imprimem até certo ponto do papel e, com isso, há o desperdício da última linha de etiqueta (Já que os papéis de etiquetas vão até o limite inferior)

Se você estiver usando impressora laser só alguns tipos isto acontece (são muito poucas. Somente os modelos mais antigos, se não me falha a memória).

Verifique se não há uma limitação física de hardware que o esteja prejudicando.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Aprendendo
Se entendi direito, você configurou a altura da página do quick para 15,40cm (uma folha A4 tem 29,70cm) e criou um tamanho de papel personalizado na sua impressora (através das propriedades da Impressora no painel de controle) e, ao imprimir a página, ela continua pulando para a posição equivalente a A4. É isto?

Sim , exatamente isso e a impressora que estou utilizando é matricial Epson LX-300, e no cliente é uma Epson LX300+, o papel, na impressora eu defini em cm e no QReport em mm

Link para o comentário
Compartilhar em outros sites

  • 0
Sim , exatamente isso e a impressora que estou utilizando é matricial Epson LX-300, e no cliente é uma Epson LX300+, o papel, na impressora eu defini em cm e no QReport em mm

Aprendendo, para esta situação em específico (tamanho customizado), faça os cálculos para achar o valor em polegadas e use esta opção nas propriedades da impressora quando definir seu tamanho customizado.

Eu lembro que há algum tempo, quando trabalhava com um colega, foi necessário fazer deste modo. Por algum bug no driver da impressora, ele não usa a configuração quando definida em mm ou cm - apenas polegadas.

Tente isso aí e veja se é o seu caso.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Aprendendo

Amigo, infelizmente não funcionou para mim, coloquei a página com a medida em polegadas, mas ainda não está saindo, imprime até a última etiqueta da página normalmente, e na última corta a linha e começa imediatamente a imprimir a próxima página.

Aparentemente está tudo certo, e se eu configuro uma página com menos etiquetas, ele imprime a última e ejeta a folha da mesma maneira.

Já não sei o que fazer :wacko:

Link para o comentário
Compartilhar em outros sites

  • 0

Oi, Aprendendo!

Você disse:

Sim , exatamente isso e a impressora que estou utilizando é matricial Epson LX-300,...

Lembra o que falei sobre limitação física da impressora? A impressora que você usa tem as mesmas limitações de uma impressora jato de tinta quando usa papel solto. Você está usando folha solta e configurou a impressora para folha solta?

Se sim, experimente configurá-la para formulário contínuo. Se ainda assim não der certo é porque o papel está passando pelo sensor e a impressora está deduzindo que deve ejetar pois não tem mais como tracioná-lo.

Link para o comentário
Compartilhar em outros sites

  • 0
Se sim, experimente configurá-la para formulário contínuo. Se ainda assim não der certo é porque o papel está passando pelo sensor e a impressora está deduzindo que deve ejetar pois não tem mais como tracioná-lo.

Denis Courcy, aparentemente ele já está trabalhando com esta situação, pelo menos é o que ele informou no 1º post:

"Eu estou tentando imprimir etiquetas para formulário contínuo, tentei no QReport, mas ..."

baseado nisto estavam as sugestões que dei até agora.

A impressão de etiquetas em matriciais é mesmo muito chata de configurar, quando se usa geradores de relatórios que trabalham em modo gráfico.

O melhor uso destas impressoras, sem dúvida (até em termos de velocidade) está na aplicação de escrita direta (modo caracter), como se fazia em programação DOS (os Writeln para a LPT1) quando você trata apenas de linhas.

Se você configura ela para 6lpp (linhas por polegadas), em um formulário contínuo padrão a altura da página é de 11" (11 polegadas), logo você saberá que terá 66 linhas para imprimir.

As configurações também são mais fáceis, já que são feitas através de caracteres de controle da própria impressora.

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Aprendendo

Olá, então, eu tinha pensado na possibilidade de escrever as etiquetas com o writeln, pois acredito que assim, as etiquetas iriam para a impressora independente do número de páginas, e queria saber como poderia fazer estas etiquetas saírem em duas colunas com o WriteLn, as etiquetas em questão são as Pimatab 8923 com 24 etiquetas por página, ela relata uma medida de

88,9 X 23,8 , mas a medida real é diferente, então se de repente tivesse como fazê-las sair em duas linhas com o writeln, e como eu poderia configurar cada etiqueta para sair nas medidas de 25.4 e em colunas.

Valeu

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Aprendendo

Boa tarde pessoal, eu encontrei este código, que faz a rotina das etiquetas e envia para o Word

var
MSWord: Variant;
finallinha:boolean;
begin
IF (CDS_Selecao.Active=True)and(CDS_Selecao.RecordCount>0)Then
begin
  MSWord := CreateOleObject('Word.Application');
  MSWord.Visible:=false;
  MSWord.Documents.Open(ExtractFilePath(Application.ExeName)+ 'Etiqueta_Pimaco_6181.doc');
  finallinha:=False;{Essa variavel foi criada para controlar o avanço de para cada celula da coluna }
  CDS_Selecao.First;
  while not CDS_Selecao.Eof do
  begin
       MSWord.Selection.TypeText(Text :=trim(CDS_SelecaoNOME.AsString)+#13+trim(CDS_SelecaoENDERECO.AsString)+', '+trim(CDS_SelecaoNUMERO.AsString)+#13+trim(CDS_SelecaoBAIRRO.AsString)+#13+trim(CDS_SelecaoCIDADE.AsString)+' - '+trim(CDS_SelecaoUF.AsString)+'  CEP '+CDS_SelecaoCEP.AsString );
       if finallinha=false then
         begin
           MSWord.Selection.MoveRight(12);
           MSWord.Selection.MoveRight(12);
           finallinha:=True;
         end
       else
         begin
           MSWord.Selection.MoveRight(12);
           finallinha:=False;
         end;
       CDS_Selecao.Next;
  end;
       MSWord.ActiveDocument.PrintOut(Copies := 1);
      Application.MessageBox('Aguarde o término da impressão...','Impressão',MB_OK);
MSWORD.ActiveDocument.SaveAs('c:\Etiquetas.doc');
MSWord.quit;
end
else
Begin
application.MessageBox('não EXISTE NENHUM CLIENTE PARA SER GERADO A ETIQUETA', 'UNIVISÃO-Informação',MB_ICONINFORMATION +   MB_OK);
end;
 if application.MessageBox('As etiquetas foram geradas corretamente?!', 'UNIVISÃO-Informação',MB_YESNO)=mryes Then
Begin
DeleteFile('c:\Etiquetas.doc');
end;

Aí eu defini um tamanho de página na impressora e no word, fiz como se cada etiqueta fosse uma página,

Defini a página com 2,54 cm de altura como a padrão da impressora, aí na minha LX300 foi que é uma beleza, e tbém, com o Word, fica lento o processo de gerar as etiquetas.

Mas na LX300+ do cliente, ela não aceita página com 2,54 cm de altura, agora, vou em busca de uma forma para alterar a página padrão da impressora somente no momento da impressão, para não ter problemas futuros.

Mas fico com a dúvida, por que será que no QReport não deu certo para configurar um tamanho de página personalizado.

Abraço

Link para o comentário
Compartilhar em outros sites

  • 0
(...), aí na minha LX300 foi que é uma beleza, e tbém, com o Word, fica lento o processo de gerar as etiquetas.
o que seria o esperado, visto que ele imprime em modo gráfico, assim como o QuickReport.

Mas fico com a dúvida, por que será que no QReport não deu certo para configurar um tamanho de página personalizado.
está aí algo que deve ficar no ar até que alguém que possua uma matricial em suas mãos, "fuce", "fuce" até encontrar a resposta - acho que deve demorar. :huh:

O negócio seria partir para a abordagem incial, onde seria usado a impressão direta.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...