Git Product home page Git Product logo

phppimaco's Introduction

PHP PIMACO

Build Status Latest Stable Version Latest Unstable Version Total Downloads License Code Climate

O PHP PIMACO é um pacote para geração de etiquetas usando a biblioteca MPDF para auxiliar a montagem de PDFs com as tuas etiquetas devidamente formatadas e prontas para impressão.

Dependência

  • PHP 7.0 ou superior

Instalação

Para fazer instalação do PHPPimaco utilize o composer

composer require proner/phppimaco

Caso você precise usar o MPDF na versão 6 use o comando

composer require proner/phppimaco:"^1.2"

Primeira impressão

Depois fazer a instalação corretamente você deve seguir os exemplo a baixo para criar as suas etiquetas

<?php
require_once "../vendor/autoload.php";

use Proner\PhpPimaco\Tag;
$tag = new Tag();
$tag->p("TAG 1");

Com a etiqueta criada, você deve estanciar o objeto Pimaco passando o código da etiqueta e adicioná-la e no objeto

<?php
use Proner\PhpPimaco\Pimaco;
$pimaco = new Pimaco('6182');
$pimaco->addTag($tag);
$pimaco->output();

Exemplo

<?php
use Proner\PhpPimaco\Tag;
use Proner\PhpPimaco\Pimaco;

$tag = new Tag();
$tag->p("TAG 1");

$pimaco = new Pimaco('6182');
$pimaco->addTag($tag);
$pimaco->output();

Templates Implementados

  • 3080
  • 3081
  • 3082
  • 3180
  • 3181
  • 3182
  • 5580A
  • 5580M
  • 5580V
  • 6080
  • 6081
  • 6082
  • 6083
  • 6084
  • 6085
  • 6086
  • 6087
  • 6088
  • 6089
  • 6092
  • 6093
  • 6094
  • 6095
  • 6180
  • 6181
  • 6182
  • 6183
  • 6184
  • 6185
  • 6187
  • 62580
  • 62581
  • 62582
  • 6280
  • 6281
  • 6282
  • 6283
  • 6284
  • 6285
  • 6286
  • 6287
  • 6288
  • 6293
  • 7088
  • 7089
  • 7188
  • 8096
  • 8098
  • 8099F
  • 8099L
  • 8196
  • 8296
  • A4048
  • A4049
  • A4050
  • A4051
  • A4054
  • A4054R
  • A4055
  • A4056
  • A4056R
  • A4060
  • A4062
  • A4063
  • A4063R
  • A4067
  • A4248
  • A4249
  • A4250
  • A4251
  • A4254
  • A4255
  • A4256
  • A4260
  • A4261
  • A4262
  • A4263
  • A4264
  • A4265
  • A4267
  • A4268
  • A4348
  • A4349
  • A4350
  • A4351
  • A4354
  • A4355
  • A4356
  • A4360
  • A4361
  • A4362
  • A4363
  • A4364
  • A4365
  • A4367
  • A4368
  • BOOP100x40

Templates Testados

  • 3080
  • 6182

Documentação

Acesse na nossa Wiki para ter acesso a documentação Wiki

phppimaco's People

Contributors

dbemfica avatar edigomes avatar hboavent avatar joaoroyosilva avatar mrprompt avatar pronerinfo avatar puppe1990 avatar tobias-rocha avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

phppimaco's Issues

Quebra de página com QRCode

Olá,

Estou implementando com QRCode e percebi que ao quebrar a página, após gerado, algumas etiquetas são cortadas, sendo que o QRCode fica na próxima página. O restante fica na página anterior.

Obrigado,
Alexandre

Release v1.3.3 não está baixando no composer

Quando rodei o composer pra pegar a v1.3.3.
Só puxa até a v1.3.1.
Linha do meu composer: "proner/phppimaco" : "^1.3.1"

Se tentar forçar na v1.3.3 dá a seguinte mensagem.

Problem 1
- The requested package proner/phppimaco ^1.3.3 exists as proner/phppimaco[dev-master, v0.1.0, v0.2.0, v0.2.1, v0.3.1, v0.3.2, v0.4.2, v1.0.0, v1.1.0, v1.2.0, v1.2.1, v1.2.2, v1.2.3, v1.3.0, v1.3.1] but these are rejected by your constraint.

Já tentei remover o pacote proner/phppimaco e rodar o composer novamente. Sem sucesso.

Adicionar mais elementos HTML

Seria muito interessante criar novas maneiras de criar novos elementos HTML na etiqueta para justamente esta ser mais customizável.

Eu até poderia contribuir com esta feature mas atualmente estou sem tempo, porém alterei o código fonte aqui no meu projeto e já resolveu com o que eu precisava.

Abrçs.

Duvida

Boa tarde,

Gostaria de saber como faz para implemetar essa biblioteca no codeigniter

Abandoned dependency

When you install the plugin there is a dependency that is abandoned (moved to a different repository or renamed).

Package endroid/qrcode is abandoned, you should avoid using it. Use endroid/qr-code instead.

I didn't dig too deep into the issue to see if it is not as simple as update the composer file, but since the current version on the project is 1.7 and the latest version is 3.*, I think that it needs a little bit of testing

Parâmetro "align" no config.json

Antes de mais nada, me desculpe pois sou novato na área... Dá uma olhada nesse código da Tag.php, linhas 55 a 57
if(isset($std->tag->ln)){
$this->align = $std->tag->align;
}

Não deveria ser if(isset($std->tag->align)? Eu alterei isso e incluí o parâmetro "align" em um dos templates. Usei "align" : "center" e funcionou perfeitamente!

Reparei também que essas linhas, na mesma Tag.php, estão duplicadas nas linhas 43-45 e 47-49:
if( empty($this->padding) ){
$this->padding = 0;
}

Uso com CakePHP

Montei o exemplo no CakePHP e está apresentando os erros abaixo:

Notice (8): Undefined property: stdClass::$ln [ROOT\vendor\proner\phppimaco\src\Tag.php, line 51]
Notice (8): Undefined property: stdClass::$align [ROOT\vendor\proner\phppimaco\src\Tag.php, line 52]
Notice (8): Undefined property: stdClass::$ln [ROOT\vendor\proner\phppimaco\src\Tag.php, line 51]
Notice (8): Undefined property: stdClass::$align [ROOT\vendor\proner\phppimaco\src\Tag.php, line 52]
Notice (8): A non well formed numeric value encountered [ROOT\vendor\mpdf\mpdf\mpdf.php, line 30572]
Notice (8): A non well formed numeric value encountered [ROOT\vendor\mpdf\mpdf\mpdf.php, line 30572]

Tamanho de página com erro

Na Pimaco.php, linha 70 o código:
'margin_footer' => $this->marginBottom
Deveria ser:
'margin_bottom' => $this->marginBottom

Eu acertei isso e parou de pular a última linha de etiquetas. O código errado acima estava definindo um margin_footer de 12.7 mm e usando o margin_bottom default de 16 mm, o que causava a quebra de página antes da última linha de etiquetas.

Download da etiqueta

Olá boa tarde, gostaria de saber se há alguma forma de fazer um download da etiqueta pelo pimaco, alguma função ou algo do genero, pois estamos com um problema ao gerar uma etiqueta e acredito que baixando resolveria o problema, recebemos o seguinte erro:
image

HTML várias etiquetas

Boa tarde, o HTML para a geração de várias etiquetas, assim como o PDF, está funcionando ??

Adicionar novo Layout (Bobina) 34x22MM

Olá boa tarde, estou com um problema... estamos tentando imprimir em uma
impressora térmica do modelo: Elgin L42DT e com bobina no tamanho 34x22MM.

Tentamos entre vários layouts parecidos já disponíveis e imprime tudo torto e sem padrão, segue a imagem:
print: https://ibb.co/6bYg8b1

E olhando os layouts disponíveis acessei https://github.com/PronerInformatica/phppimaco/blob/master/templates/6182.json

E não encontrei nenhuma informação de A4 ou Bobina, gostaria de saber como faço para mudar o formato do papel e também aonde seto que o tamanho é 34 x 22M=mm?

Obrigado aguardo o retorno e assim que eu conseguir gostaria de incluir esse layout disponível para comunidade.

Abraços

Construtor da classe Pimaco não aceita outro tempDir

Tentei fazer um pullrequest mas não foi.
Se for interessante modificar o construtor para aceitar um tempDir diferente do padrão para class Mpdf, o código está abaixo. Testado.
Vou tentar outro pullrequest amanhã.

Desde já agradeço. Obrigado.

public function __construct($template, $path_template = null, $tempDir = null)
{
$this->path_template = dirname(DIR) . "/templates/";
if (!empty($path_template)) {
$this->path_template = $path_template;
}
$this->file_template = $template.".json";
$this->loadConfig();

    $this->tags = new \ArrayObject();

    $config = [
        'format' => [$this->width, $this->height],
        'default_font_size' => $this->fontSize,
        'margin_left' => $this->marginLeft,
        'margin_right' => $this->marginRight,
        'margin_top' => $this->marginTop,
        'margin_bottom' => $this->marginBottom,
        'margin_header' => $this->marginHeader,
        'margin_footer' => $this->marginFooter
    ];
    
    if(!empty($tempDir)) $config['tempDir'] = $tempDir;

    $this->pdf = new Mpdf($config);
}

Como rodar o script?

Boa tarde, parabéns pelo trabalho, coloquei o script em uma instancia da AWS mas não consigo fazer de forma alguma funcionar

Atualizar versões das dependências

Faz-se necessário atualizar as dependencias para compatibilizar com PHP 8.x +
No atual cenário, ao instalar pelo compose em um PHP 8.1, somente a versão 1.2 é instalada automaticamente devido aos conflitos de versão da bacon/qr-code e endroid/qr-code

Instalation issue

Hi, I'm trying to install and it gives me the following error, I can't find a solution, could you help me?

I use php 8

composer require proner/phppimaco
Using version ^1.4 for proner/phppimaco
./composer.json has been updated
Running composer update proner/phppimaco
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

Problem 1
- endroid/qr-code[2.5.0, ..., 2.5.1] require bacon/bacon-qr-code ^1.0.3 -> found bacon/bacon-qr-code[1.0.3] but it conflicts with your root composer.json require (^2.0).
- Root composer.json requires endroid/qr-code ^2.5 -> satisfiable by endroid/qr-code[2.5.0, 2.5.1].

You can also try re-running composer require with an explicit version constraint, e.g. "composer require proner/phppimaco:*" to figure out if any version is installable, or "composer require proner/phppimaco:^2.1" if you know which you need.

Installation failed, reverting ./composer.json to its original content.

Imagem não carrega ao gerar PDF

Olá, Gostaria de parabenizar e agradecer pelo ótimo projeto!!

Estou implementando a geração de etiquetas em php e me deparei com um problema.
Guardo uma imagem (logo) no banco de dados.
Quando gerando as etiquetas, passo o link para um arquivo php com parâmetros, que irá pegar a imagem do banco de dados, segundo os parâmetros passados.
O retorno deste link é a imagem.

Problema: Neste contexto, as etiquetas são geradas sem a imagem.

Andei fazendo uma analise bem superficial do código do seu projeto:

  • Na function output - Comentei a linha // $this->pdf->Output($name, $dest);
  • Alterei para imprimir o $html no fim da função WriteHTML.
    Resultado: Mostrou o html na tela com a imagem certinho

Obs.: Quando o link é direto para uma imagem (Não para um arquivo php que retorna a imagem do banco de dados), ele renderiza normalmente o pdf mostrando as etiquetas com a imagem.

Atualização para funcionar com PHP 7.4

Olá amigos. Sede já quero parabenizar por esta biblioteca que é extremamente útil pra nós. Recentemente nós atualizamos nosso servidor para utilizar PHP 7.4. Vimos que após isso essa biblioteca parou de funcionar porque a versão da biblioteca mPdf que é utilizada para gerar as etiquetas que está definida no seu arquivo de composer não funciona nessa versão do PHP. Para resolver isso, basta voce atualizar pra versão 8.0 da biblioteca do mPdf que tudo funciona.

Array and string offset access syntax with curly braces is no longer supported

Estou com problemas quando instancio Pimaco, tenta acessar o array de uma forma que aparentemente nao é mais prmitida pelo PHP

Na linha $this->bodyBackgroundColor{0} == 5, ele retorna o erro do título, acreditot que se estivesse bodyBackgroundColor[0], funcionaria corretamente, vocês ja tiveram relatos desse problema com mais alguem?

Arquivo é o mpdf\mpdf\mpdf.php

if ($this->bodyBackgroundColor) {

		$s .= 'q ' . $this->SetFColor($this->bodyBackgroundColor, true) . "\n";

		if ($this->bodyBackgroundColor{0} == 5) { // RGBa

			$s .= $this->SetAlpha(ord($this->bodyBackgroundColor{4}) / 100, 'Normal', true, 'F') . "\n";

		} elseif ($this->bodyBackgroundColor{0} == 6) { // CMYKa

			$s .= $this->SetAlpha(ord($this->bodyBackgroundColor{5}) / 100, 'Normal', true, 'F') . "\n";

		}

		$s .= sprintf('%.3F %.3F %.3F %.3F re f Q', ($clx * _MPDFK), ($cly * _MPDFK), $clw * _MPDFK, $clh * _MPDFK) . "\n";

	}

Etiqueta 6182

Estou tendo problemas com o layout da 6182, está saindo somente 6 linhas e pulando a última, já tentei mudar no template mas não está funcionando.

Travar uma P para não quebrar linha

Olá senhores.

Gostaria de sugerir uma alteração no objeto P para a geração das etiquetas. Eu estou tendo problemas quando o texto contido em uma etiqueta ultrapassa uma linha, então o comportamento natural é que ele continue na linha de baixo, mas quando isso acontece, quebra por completo as etiquetas.

Teria como adicionar uma funcionalidade para que o P não quebre linhas? Seria interessante que ele truncasse o texto semelhante ao comportamento elipse do HTML.

Desde já agradeço.

WhatsApp Image 2020-06-25 at 13 28 16

Instalar sem compose

Como faço a instalação sem utilizar o compose ?
não teria uma forma de eu baixar apenas a pasta dos arquivos e fazer um include ?
se sim, como eu faria isso ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.