Etiquetas pimaco

338 views
Skip to first unread message

Thiago Anselmo

unread,
May 5, 2016, 7:15:49 PM5/5/16
to Node.js Brasil
Boa noite,

Estou tendo a necessidade de gerar etiquetas (tipo Pimaco) em node, alguém já fez algo? Pois estou pensando em criar um projeto para essa finalidade, pois não encontrei na net em node.

Valeu!

Racz

unread,
May 5, 2016, 8:15:30 PM5/5/16
to Node.js Brasil
Já pensou em usar uma impressora térmica de etiquetas tipo Zebra?

Se quiser tenho um código pra interagir com ela
--
Você recebeu essa mensagem porque está inscrito no grupo "Node.js Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para nodebr+un...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Alberto Souza

unread,
May 6, 2016, 4:50:41 AM5/6/16
to nod...@googlegroups.com
Oi Thiago,

Iniciei algo com pdfkit para gerar um pdf com as etiquetas mas não tenho os tamanhos para formatar nas etiquetas.

Mas não achei um modulo no npm para gerar os PDFs, integrar com uma impressora ou arquivos em algo padrão do soft da pimaco (acho que é planilha). 
Se se interesar em criar um modulo npm para alguma dessas opções acima eu posso ajudar.
Message has been deleted

Thiago Anselmo

unread,
May 6, 2016, 7:50:03 AM5/6/16
to Node.js Brasil
André bom dia,

Seria se grande valia, pois o software que estou desenvolvendo ele contempla uma parte da ISO9001 então vou precisar de etiquetas do modelo pimaco para e etiquetas modelo zebra argox para colocar em protudos, se puderes me dar um help me enviando os códigos te agradeço.


Valeu

Thiago Anselmo

unread,
May 6, 2016, 7:51:30 AM5/6/16
to Node.js Brasil
Claro tenho interesse sim.
Essa eh a ideia escolher o modelo da etiqueta e gerar um PDF utilizado pdfkit

Me mande email se tiver interesse para trocarmos ideia.

Abraço.

Racz

unread,
May 6, 2016, 8:02:29 AM5/6/16
to nod...@googlegroups.com
Vou ver se consigo publicar no Github nesse final de semana e te envio o link.

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Node.js Brasil" dos Grupos do Google.

Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para nodebr+un...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/d/optout.

Thiago Anselmo

unread,
May 6, 2016, 8:28:57 AM5/6/16
to Node.js Brasil
Fechou,

Será de grande valia, muito obrigado.

Alberto Souza

unread,
May 6, 2016, 3:45:15 PM5/6/16
to nod...@googlegroups.com
Oi Thiago,

Então vamos montar esse modulo, iniciei a estrutura do projeto mas preciso de ajuda com as medidas de uma etiqueta da pimaco ... você pode ajudar nisso?

Criei um repositório para esse modulo mas só com a estrutura do module (tests, badges.. etc ) :https://github.com/albertosouza/print-ticket

Raz como vocês fazer para imprimir? Gera um PDF ou algum arquivo para depois enviar para imprimir na impressora?

attr,

Alberto Souza
:Programador JS
+Ember.js, Node.js, PHP e Drupal
We.js <- vê lá :)
:Site pessoal


--
Você recebeu essa mensagem porque está inscrito no grupo "Node.js Brasil" dos Grupos do Google.

Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para nodebr+un...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Thiago Anselmo

unread,
May 6, 2016, 4:52:49 PM5/6/16
to Node.js Brasil
Vi com na net utilizando o FPDF do PHP, mais pretendo utilizar o pdfkit, pois já utilizo ele em meus projetos para gerar outros tipos de relatórios, minha necessidade é mesmo gerar códigos de barra nas etiquetas da Pimaco e outras 'impressora zebra' e semelhantes, abaixo vou mandar o código em PHP que vou passar para node.

< ?php
require_once("fpdf/fpdf.php");

include("conecta.php"); // arquivo de conexão ao banco - isso você já deve saber fazer
conexao(); // chamada da função de conexão

$busca = mysql_query("SELECT * FROM servidor, func where bairro ='TROPICAL'");

// Variaveis de Tamanho

$mesq = "5"; // Margem Esquerda (mm)
$mdir = "5"; // Margem Direita (mm)
$msup = "12"; // Margem Superior (mm)
$leti = "72"; // Largura da Etiqueta (mm)
$aeti = "27"; // Altura da Etiqueta (mm)
$ehet = "3,2"; // Espaço horizontal entre as Etiquetas (mm)
$pdf=new FPDF('P','mm','Letter'); // Cria um arquivo novo tipo carta, na vertical.
$pdf->Open(); // inicia documento
$pdf->AddPage(); // adiciona a primeira pagina
$pdf->SetMargins('5','12,7'); // Define as margens do documento
$pdf->SetAuthor("Jonas Ferreira"); // Define o autor
$pdf->SetFont('helvetica','',7); // Define a fonte
$pdf->SetDisplayMode();

$coluna = 0;
$linha = 0;
//MONTA A ARRAY PARA ETIQUETAS
while($dados = mysql_fetch_array($busca)) {
$nome = $dados["nome"];
$ende = $dados["logradouro"];
$bairro = $dados["bairro"];
$estado = $dados["uf"];
$cida = $dados["cidade"];
$local = $bairro . " - " . $cida . " - " . $estado;
$cep = "CEP: " . $dados["cep"];

if($linha == "10") {
$pdf->AddPage();
$linha = 0;
}

if($coluna == "3") { // Se for a terceira coluna
$coluna = 0; // $coluna volta para o valor inicial
$linha = $linha +1; // $linha é igual ela mesma +1
}

if($linha == "10") { // Se for a última linha da página
$pdf->AddPage(); // Adiciona uma nova página
$linha = 0; // $linha volta ao seu valor inicial
}

$posicaoV = $linha*$aeti;
$posicaoH = $coluna*$leti;

if($coluna == "0") { // Se a coluna for 0
$somaH = $mesq; // Soma Horizontal é apenas a margem da esquerda inicial
} else { // Senão
$somaH = $mesq+$posicaoH; // Soma Horizontal é a margem inicial mais a posiçãoH
}

if($linha =="0") { // Se a linha for 0
$somaV = $msup; // Soma Vertical é apenas a margem superior inicial
} else { // Senão
$somaV = $msup+$posicaoV; // Soma Vertical é a margem superior inicial mais a posiçãoV
}

$pdf->Text($somaH,$somaV,$nome); // Imprime o nome da pessoa de acordo com as coordenadas
$pdf->Text($somaH,$somaV+4,$ende); // Imprime o endereço da pessoa de acordo com as coordenadas
$pdf->Text($somaH,$somaV+8,$local); // Imprime a localidade da pessoa de acordo com as coordenadas
$pdf->Text($somaH,$somaV+12,$cep); // Imprime o cep da pessoa de acordo com as coordenadas

$coluna = $coluna+1;
}

$pdf->Output();
?>

Thiago Anselmo

unread,
May 6, 2016, 4:55:42 PM5/6/16
to Node.js Brasil
Alberto, sobre isso temos que ver pois nem sempre a impressora laser ou deskjet vai puxar o papel corretamente, então precisa deixar uma margem 'segurança' na largura das etiquetas, sobre os tamanhos o próprio site da Pimaco disponibiliza os tamanho, eles tem um software deles que é instalado no PC que também diz todos os tamanho das etiquetas que eles trabalham.


Em sexta-feira, 6 de maio de 2016 16:45:15 UTC-3, Alberto Souza escreveu:

Racz

unread,
May 6, 2016, 5:03:43 PM5/6/16
to nod...@googlegroups.com
Alberto,

A Zebra é uma impressora térmica de etiquetas, ela tem uma linguagem própria para escrever etiquetas, você passa os dados e os parametros e ela gera no formato que você especificou.

Fiz a integração com ela diretamente por USB, usando a bilbioteca node-usb (acho que era isso, não lembro de cabeça agora)

Att,
Rácz

Alberto Souza

unread,
May 6, 2016, 6:19:42 PM5/6/16
to nod...@googlegroups.com
Rácz,

Nesse caso é melhor criar um module diferente, algo como printer-integration com uma API para essa função. Esse que eu inciei vai ser mais focado em gerar os PDFs para mandar imprimir.

Thiago,


E essa parte deve resolver a questão do tamanho para o primeiro tipo de etiqueta:

// Variaveis de Tamanho
$mesq = "5"; // Margem Esquerda (mm)
$mdir = "5"; // Margem Direita (mm)
$msup = "12"; // Margem Superior (mm)
$leti = "72"; // Largura da Etiqueta (mm)
$aeti = "27"; // Altura da Etiqueta (mm)
$ehet = "3,2"; // Espaço horizontal entre as Etiquetas (mm)
$pdf=new FPDF('P','mm','Letter'); // Cria um arquivo novo tipo carta, na vertical.
$pdf->Open(); // inicia documento
$pdf->AddPage(); // adiciona a primeira pagina
$pdf->SetMargins('5','12,7'); // Define as margens do documento
$pdf->SetAuthor("Jonas Ferreira"); // Define o autor
$pdf->SetFont('helvetica','',7); // Define a fonte
$pdf->SetDisplayMode();


Racz

unread,
May 8, 2016, 7:00:20 PM5/8/16
to nod...@googlegroups.com
Segue o código, não tive tempo de organizar pra colocar no github, mas ele funciona...

Basicamente ele usa a USB pra mandar os comandos na linguagem da Zebra, tem alguns comentários, se tiverem duvidas, me perguntem

Para funcionar em Windows, não se pode ter o Driver da Zebra instalado.

Att,
André Rácz



zebra.js

Thiago Anselmo

unread,
May 9, 2016, 10:46:47 PM5/9/16
to Node.js Brasil
Valeu André, 

Obrigado por compartilhar!!
Reply all
Reply to author
Forward
0 new messages