Simple QrCode ======================== [](https://travis-ci.org/SimpleSoftwareIO/simple-qrcode) [](https://packagist.org/packages/simplesoftwareio/simple-qrcode) [](https://packagist.org/packages/simplesoftwareio/simple-qrcode) [](https://packagist.org/packages/simplesoftwareio/simple-qrcode) [](https://packagist.org/packages/simplesoftwareio/simple-qrcode) - [Introdução](#docs-introduction) - [Traduções](#docs-translations) - [Configuração](#docs-configuration) - [Simples ideias](#docs-ideas) - [Uso](#docs-usage) - [Helpers](#docs-helpers) - [Uso comum do QrCode](#docs-common-usage) - [Uso sem Laravel](#docs-outside-laravel) ## Introdução Simple QrCode é wrapper de fácil uso do Framework Laravel, baseado no grande trabalho provide pelo [Bacon/BaconQrCode](https://github.com/Bacon/BaconQrCode). Criamos uma interface que é fácil e familiar de instalar para usuários Laravel. ## Traduções Estamos procurando por usuário que falem Árabe, Espanhol, Francês, Coreano ou Japonês, para nos ajudar a traduzir este documento. Por favor, crie um pull request if você é capar de fazer uma tradução! ## Configuração #### Composer Primeiramente, adicione o pacote Simple QrCode ao seu `require` no arquivo `composer.json`: "require": { "simplesoftwareio/simple-qrcode": "~1" } Próximo, execute o comando `composer update`. #### Provedor de Serviço ###### Laravel 4 Registre o `SimpleSoftwareIO\QrCode\QrCodeServiceProvider` em seu `app/config/app.php` dentro do array`providers`. ###### Laravel 5 Registre a `SimpleSoftwareIO\QrCode\QrCodeServiceProvider::class` em seu `config/app.php` dentro do array `providers`. #### Aliases ###### Laravel 4 Finalmente, registre o `'QrCode' => 'SimpleSoftwareIO\QrCode\Facades\QrCode'` em seu arquivo de configuração `app/config/app.php` dentro do array `aliases`. ###### Laravel 5 Finally, register the `'QrCode' => SimpleSoftwareIO\QrCode\Facades\QrCode::class` em seu arquivo de configuração `config/app.php` dentro do array `aliases`. ## Simple Ideas #### Print View Um dos principais itens que utilizam este pacote para é ter QRCodes em todos os nossos pontos de vista de impressão. Isto permite que nossos clientes para retornar para a página original depois de impresso, basta digitalizar o código. Conseguimos isso adicionando o seguinte em nosso arquivo footer.blade.php.
Scan me to return to the original page.
## Uso
#### Uso Básico
É muito fácil utilizar o gerador de Qrcode. A sintaxe mais básica é:
QrCode::generate('Me transforme em um QrCode!');
Isso criará um Qr que diz "Me transforme em um QrCode!"
#### Generate
`Generate` é usado para criar o QrCode.
QrCode::generate('Me transforme em um QrCode!');
>Atenção! Esse método deve ser chamado por último dentro da cadeia.
`Generate` por padrão irá retornar uma string de imagem SVG. Você pode exibir diretamente em seu browser, utilizando o Laravel's Blade com o código abaixo:
{!! QrCode::generate('Me transforme em um QrCode!'); !!}
O método `generate` tem um segundo parametro que aceita um arquivo e um path para salvar o Qrcode.
QrCode::generate('Me transforme em um QrCode!', '../public/qrcodes/qrcode.svg');
#### Alteração de Formato
>Por padrão o gerador de QrCode está configurado para retornar uma imagem SVG.
>Cuidao! O método `format` deve ser chamado antes de qualquer outra opção de formatação como `size`, `color`, `backgroundColor` e `margin`.
Atualmente são suportados três tipos de formatos; PNG, EPS, and SVG. Para alterar o formato, use o seguinte código:
QrCode::format('png'); //Retornará uma imagem no formato PNG
QrCode::format('eps'); //Retornará uma imagem no formato EPS
QrCode::format('svg'); //Retornará uma imagem no formato SVG
#### Alteração de Tamanho
>Por padrão, o gerador QrCode retornará o menos tamanho possível em pixels para criar o QrCode.
Você pode alterar o tamanho do QrCode usando o método `size`. Simplesmente especificando o tamanho desejado em pixels usando a seguinte sintaze:
QrCode::size(100);
#### Alteração de cor
>Cuidado quando estiver alterando a cor de um QRCode. Alguns leitores tem uma grande dificuldade em ler QrCodes coloridos.
Todas as cores devem ser definidas em RGB(Red Green Blue). Você pode alterar a cor de um qrCode usando o código abaixo. You can change the color of a QrCode by using the following:
QrCode::color(255,0,255);
Alterações do plano de fundo também são suportadas e definidas da mesma maneira.
QrCode::backgroundColor(255,255,0);
#### Alteração de Margem
A capacidade de alterar a margem ao redor do QrCode também é suportada. Simplesmente especifique o tamenho desejado da margem, utilizando a sintaxe abaixo:
QrCode::margin(100);
#### Correção de erros
Alterar o nível de correção de erros é simples. Utilize a seguinte sintaxe:
QrCode::errorCorrection('H');
As seguintes opções são suportadas para o método `errorCorrection`.
| Error Correction | Assurance Provided |
| --- | --- |
| L | 7% of codewords can be restored. |
| M | 15% of codewords can be restored. |
| Q | 25% of codewords can be restored. |
| H | 30% of codewords can be restored. |
>The more error correction used; the bigger the QrCode becomes and the less data it can store. Read more about [error correction](http://en.wikipedia.org/wiki/QR_code#Error_correction).
#### Codificação
Alterar a codificação que é usada para criar um QrCode. Por padrão, a encodificação padrão é a `ISO-8859-1`. Leia mais sobre [character encoding](https://pt.wikipedia.org/wiki/Codifica%C3%A7%C3%A3o_de_caracteres) Você pode alterar a codificação usando o seguinte código:
QrCode::encoding('UTF-8')->generate('Make me a QrCode with special symbols ♠♥!!');
| Character Encoder |
| --- |
| ISO-8859-1 |
| ISO-8859-2 |
| ISO-8859-3 |
| ISO-8859-4 |
| ISO-8859-5 |
| ISO-8859-6 |
| ISO-8859-7 |
| ISO-8859-8 |
| ISO-8859-9 |
| ISO-8859-10 |
| ISO-8859-11 |
| ISO-8859-12 |
| ISO-8859-13 |
| ISO-8859-14 |
| ISO-8859-15 |
| ISO-8859-16 |
| SHIFT-JIS |
| WINDOWS-1250 |
| WINDOWS-1251 |
| WINDOWS-1252 |
| WINDOWS-1256 |
| UTF-16BE |
| UTF-8 |
| ASCII |
| GBK |
| EUC-KR |
>Um erro de `Could not encode content to ISO-8859-1` significa que foi inserido algum caractere inválido. Recomendamos o `UTF-8` se você não tiver certeza.
#### Mesclar
O método `merge` mescla uma imagem sobre um Qrcode. É comumente usado para se colocar logos dentro de um QrCode.
QrCode::merge($filename, $percentage, $absolute);
//Gera um QrCode com uma imagem centralizada.
QrCode::format('png')->merge('path-to-image.png')->generate();
//Gera um QrCode com uma imagem centralizada. A imagem inserida ocupará 30% do QrCode.
QrCode::format('png')->merge('path-to-image.png', .3)->generate();
//Gera um QrCode com uma imagem centralizada. A imagem inserida ocupará 30% do QrCode.
QrCode::format('png')->merge('http://www.google.com/someimage.png', .3, true)->generate();
>O método `merge` suporta somente arquivos do tipo PNG.
>O filepath é relativo ao caminho base da aplicação, se o `$absolute` estiver setada para `false`. Altere essa variável para `true` para usar caminhos absolutos.
>Você deve usar um alto nível de correção de erros quando usado o método `merge`, para garantir que o QrCode será legível. Recomendamos usar `errorCorrection('H')`.

#### Merge Binary String
O método `mergeString` pode ser usado para alcaçar a mesma chamada do método `merge`, exceto que ele permite que você represente uma string de um arquivo ao invés do filepath. Isso é útil quando é utilizado o padrão `Storage` . A chamada a essa interface é bastante similar ao método `merge`.
QrCode::mergeString(Storage::get('path/to/image.png'), $percentage);
//Gera um QrCode com uma imagem centralizada.
QrCode::format('png')->mergeString(Storage::get('path/to/image.png'))->generate();
//Gera um QrCode com uma imagem centralizada. A imagem inserida ocupará 30% do QrCode.
QrCode::format('png')->mergeString(Storage::get('path/to/image.png'), .3)->generate();
>Assim como o método `merge`, somente arquivos do tipo PNG são suportados. O mesmo aplica-se para correção de erros, altos níveis são recomendados.
#### Uso Avançado
Todos os métodos suportam encadeamento. O método `generate` deve ser chamado por ultimo e o método `format` deve ser chamado primeiro. Por exemplo, vocẽ pode executar o código seguinte:
QrCode::size(250)->color(150,90,10)->backgroundColor(10,14,244)->generate('Make me a QrCode!');
QrCode::format('png')->size(399)->color(40,40,40)->generate('Make me a QrCode!');
Você pode exibir uma imagem PNG, sem salvar o arquivo e prover uma string encodificada pelo método `base64_encode`.