|
3 недель назад | |
---|---|---|
.. | ||
README.md | 3 недель назад |
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.
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!
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
.
Registre a SimpleSoftwareIO\QrCode\QrCodeServiceProvider::class
em seu config/app.php
dentro do array providers
.
Finally, register the 'QrCode' => SimpleSoftwareIO\QrCode\Facades\QrCode::class
em seu arquivo de configuração config/app.php
dentro do array aliases
.
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>
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')!!}">
É 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
é 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');
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 comosize
,color
,backgroundColor
emargin
.
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
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);
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);
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);
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.
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 oUTF-8
se você não tiver certeza.
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 parafalse
. Altere essa variável paratrue
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 usarerrorCorrection('H')
.
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.
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 são uma maneira fácil de criar QrCodes que executam uma ação quando escaneados.
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.');
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);
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');
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');
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.
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) |
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!');