Simple QrCode

Build Status Latest Stable Version Latest Unstable Version License Total Downloads

Introdução

Simple QrCode é wrapper de fácil uso do Framework Laravel, baseado no grande trabalho provide pelo 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": "~2"
}

Próximo, execute o comando composer update.

Provedor de Serviço

Laravel <= 5.4

Registre a SimpleSoftwareIO\QrCode\QrCodeServiceProvider::class em seu config/app.php dentro do array providers.

Aliases

Laravel <= 5.4

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.

<div class="visible-print text-center">
	{!! QrCode::size(100)->generate(Request::url()); !!}
	<p>Scan me to return to the original page.</p>
</div>

Embarcando um QrCode

Você pode incorporar um qrcode dentro de um e-mail, que permita que seus usuários escaneiem rapidamente. Abaixo, um exemplo de como fazer isso utilizando o Laravel.

//Inside of a blade template.
<img src="{!!$message->embedData(QrCode::format('png')->generate('Embed me into an e-mail!'), 'QrCode.png', 'image/png')!!}">

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.

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 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').

Merged Logo

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.

<img src="data:image/png;base64, {!! base64_encode(QrCode::format('png')->size(100)->generate('Make me into an QrCode!')) !!} ">

Ajudantes

O que são ajudantes?

Ajudantes são uma maneira fácil de criar QrCodes que executam uma ação quando escaneados.

E-Mail

Esse helper, gera um qrcode de e-mail que é capaz de ser preenchido no endereço de e-mail, assunto e corpo.

QrCode::email($to, $subject, $body);

//Fills in the to address
QrCode::email('foo@bar.com');

//Fills in the to address, subject, and body of an e-mail.
QrCode::email('foo@bar.com', 'This is the subject.', 'This is the message body.');

//Fills in just the subject and body of an e-mail.
QrCode::email(null, 'This is the subject.', 'This is the message body.');

Geo

Esse helper gera uma latitude e longituded que o pode ser lido por um aparelho celular e abrir a localização no Google maps ou outro aplicativo similar.

QrCode::geo($latitude, $longitude);

QrCode::geo(37.822214, -122.481769);

Phone Number

Esse helper, gera uma QrCode que pode ser escaneado exibido um telefone.

QrCode::phoneNumber($phoneNumber);

QrCode::phoneNumber('555-555-5555');
QrCode::phoneNumber('1-800-Laravel');

SMS (Mensagens de Texto)

Esse Helper, cria uma mensagem SMS que pode ser This helper makes SMS messages that can be preenchida com o emissoe e o corpo da mensagem.

QrCode::SMS($phoneNumber, $message);

//Cria uma mensagem de texto com o telefone preenchido.
QrCode::SMS('555-555-5555');

//Cria uma mensagem de text com o numero telefonico e a mensagem preenchida.
QrCode::SMS('555-555-5555', 'Body of the message');

WiFi

Esse Helper, faz com que QrCodes escaneaveis, permitam o aparelho celular se conectar a uma rede WI-FI.

QrCode::wiFi([
	'encryption' => 'WPA/WEP',
	'ssid' => 'SSID of the network',
	'password' => 'Password of the network',
	'hidden' => 'Whether the network is a hidden SSID or not.'
]);

//Connects to an open WiFi network.
QrCode::wiFi([
	'ssid' => 'Network Name',
]);

//Connects to an open, hidden WiFi network.
QrCode::wiFi([
	'ssid' => 'Network Name',
	'hidden' => 'true'
]);

//Connects to an secured, WiFi network.
QrCode::wiFi([
	'ssid' => 'Network Name',
	'encryption' => 'WPA',
	'password' => 'myPassword'
]);

Escaneamento WIFI atualmente não são suportados nos produtos Apple.

##Uso Comum do QRCode

Você pode usar um prefixo listado na tabela abaixo dentro da seção generate para criar um QrCode para armazenar informações mais avançadas:

QrCode::generate('http://www.simplesoftware.io');
Usage Prefix Example
Website URL http:// http://www.simplesoftware.io
Secured URL https:// https://www.simplesoftware.io
E-mail Address mailto: mailto:support@simplesoftware.io
Phone Number tel: tel:555-555-5555
Text (SMS) sms: sms:555-555-5555
Text (SMS) With Pretyped Message sms: sms::I am a pretyped message
Text (SMS) With Pretyped Message and Number sms: sms:555-555-5555:I am a pretyped message
Geo Address geo: geo:-78.400364,-85.916993
MeCard mecard: MECARD:Simple, Software;Some Address, Somewhere, 20430;TEL:555-555-5555;EMAIL:support@simplesoftware.io;
VCard BEGIN:VCARD See Examples
Wifi wifi: wifi:WEP/WPA;SSID;PSK;Hidden(True/False)

##Uso fora do Laravel

Você pode usar o pacote fora do Laravel instanciando a classe BaconQrCodeGenerator.

use SimpleSoftwareIO\QrCode\BaconQrCodeGenerator;

$qrcode = new BaconQrCodeGenerator;
$qrcode->size(500)->generate('Make a qrcode without Laravel!');