2017-06-07 4 views
2

Ich möchte nur einen QR-Code mit rqrcode gem generieren. Wenn ich meine neue rqrcode Instanz erstellen:undefinierte Methode `two_dimensional? ' mit Barby CairoOutputter

qr = RQRCode::QRCode.new('test') 

ich die folgende Eingabe erhalten:

xxxxxxx x x x xxxxxx x xxxxxxx 
x  x xx xxxxx  xx x  x 
x xxx x x x xxxx xx x xxx x 
x xxx x x x x x x x xx x xxx x 
x xxx x x xxx xxx x x xxx x 
x  x xxx x xx  x  x 
xxxxxxx x x x x x x x x x xxxxxxx 
     x x  xx x x   
    xxxx xxxxx xxxx x xx x 
x xx xxxx xxxx xxxx x xxx 
xx x xx x x xxxx   xx 
    x x x xxx xxxxxxx x xx xxx x 
x xxxxxxx x x x xxxx xx xx xx 
x x x   xx xxx x x xxxx 
xx xxx xxx xxx x xxxxx xxx 
xx x xx  xxx xx x x 
    x xxxx xx xxxx x x x x x 
x xxx x x x xx x xx xx x 
xxx xx xx  x x xx  xx 
    x x x  x xx xx xx x 
x xxxx xx xx x x x xxxx xx 
x x x  xxx x  xx xxx xxx 
    x xx x xxx x  x x xx 
    xx x xxx xxxx x x x x x 
xx x xxxx xx x x xxxxxxxxx 
     x xx xx x x xx xx x 
xxxxxxx xx x  xxxxx x xxx 
x  x xx xx x xxxx xx x xx 
x xxx x xx x  xxx xxxxx xxx 
x xxx x xx x  xxxxxxxx xxx 
x xxx x x xx  xx x  
x  x xxxxxxxxx x xx xx xx 
xxxxxxx x xx x xx x x x xx x 

Für meine qr_code Druck verwende ich die CairoOutputter von Barby, aber wenn ich versuche, meine Ausgabe svg zu konvertieren, png , ... bekomme ich folgende Fehlermeldung:

NoMethodError (undefined method `two_dimensional?' for #<RQRCode::QRCode:0x0000000794bd88>) 

Haben Sie irgendwelche Ideen, was ich tun kann, um diesen Fehler zu korrigieren?

Gemfile:

gem 'rqrcode','~> 0.4.2' 
gem 'barby' 
gem 'cairo' 

In meinem Modell:

require 'barby' 
require 'barby/outputter/cairo_outputter' 
require 'rqrcode' 
qr = RQRCode::QRCode.new('test') 
puts qr 
outputter = Barby::CairoOutputter.new(qr).to_svg 
+0

outputter = Barby :: CairoOutputter.new (qr) .to_svg –

+0

Können Sie ein vollständiges, minimales, nachprüfbares Beispiel angeben? Dies könnte ein Fehler in der Bibliothek sein, der besser als Problem im github Projekt direkt angesprochen werden könnte ... –

+0

qr = RQRCode :: QRCode.new ('test') puts qr ausgabe = Barby :: CairoOutputter. neu (qr) .to_svg –

Antwort

2

Wie in the project README angegeben, müssen Sie eine der unterstützten barcode Klassen verwenden. Nämlich, Sie müssen Barby::QrCode, nicht RQRCode::QRCode verwenden.

Mit den folgenden Bibliotheken installiert:

gem install 'barby' # core library 
gem install 'cairo' # dependency for output 
gem install 'rqrcode' # dependency for barcode 

Die folgende Implementierung funktioniert:

require 'barby' 
require 'barby/outputter/cairo_outputter' 
require 'barby/barcode/qr_code' 

qr = Barby::QrCode.new('test') 
outputter = Barby::CairoOutputter.new(qr).to_svg 

Im Gegensatz zu RQRCode::QRCode, Barby::QrCode implementiert Methoden wie two_dimensional? und encoding - die von der Barby::CairoOutputter Implementierung erforderlich ist.

+0

Ich habe es auch versucht, aber die Ausgabe von Qr-Instanz ist "Test". Also meine Svg ist ein weißes Bild ... –

+0

Ah tut mir leid, es ist Arbeit! Danke vielmals! –

Verwandte Themen