現: 2024-04-09 (火) 12:25:18 yuji ソース
Line 1: Line 1:
 +* Google Chart APIを使ってQRコードを作成する [#o4d8f377]
 +Google ChartsはGoogleがオンラインで提供しているグラフ描画サービスで,JavaScriptが動作するWEBブラウザで手軽にグラフを作成できるサービス。~
 +また,これをWEBサービス化したのがGoogle Chart APIのようだ。~
 +Google Chart APIでは,QRコード作成もサポートされている。~
 +利用するには''インターネットにアクセスできる環境からでないと利用は出来ない''が,使いやすいサービス。~
 +
 +問題としては,Google側のサービスの不具合や,API仕様が突然変更されたり,サービスを突然停止し使用出来なくなってしまう問題がある。~
 +
 +Googleから&color(#ff0000){''03/14/2019をもってこのサービスが使えなくなるとアナウンスされていて,実際に3/18/2019から使用できなくなった。3/20/2019になぜか復活した。''};~
 +まあ,復活してもいつまで使えるかはわかりません・・・~
 +
 +代替えサービスとしては,[[Google Chart APIの代わりのサービス>#ec00b711]]が使用出来る。~
 +
 +** Goolge Chart APIって [#vef083bc]
 +[[Google Charts>https://developers.google.com/chart/]]は,Googleが提供しているグラフ作成サービス。~
 +Googleは,WEB API(Google Chart API)としてもサービスしてくれていて,URLにパラメータを指定するだけでグラフをPNG画像として取得出来ちゃいます。 このGoogle Chartを使った''WEB APIでは,QRコードもサポートされている。(Google Charts自体にはQRコードはサポートされていない。)''
 +
 +残念ながらGoogle Chart APIでは''MicroQRコードには対応していなかった。''
 +
 +使用例:~
 + http://chart.apis.google.com/chart?cht=qr&chs=100x100&chco=000000&chl=https://yueno.net/
 +
 +//実行例:(%%03/14/2019以降は表示されないと思う。%% 03/20/2019に使えるように復活したがいつまで使えるかは不明。下に表示されていなければ動作していません。)~
 +//#iframe(http://chart.apis.google.com/chart?cht=qr&chs=100x100&chco=000000&chl=https://yueno.net/,style=width:100px;height:100px;,iestyle=width:100px;height:100px;)
 +
 +wgetコマンドで直接QRコード画像が得られる。~
 + > wget -O yueno.png "http://chart.apis.google.com/chart?cht=qr&chs=100x100&chco=000000&chl=https://yueno.net/"
 +
 +*** Google Chart APIでのQRコード用パラメータ [#q65c7410]
 +使い方は,以下のような形式で指定する。~
 + http://chart.apis.google.com/chart?cht=qr&chs=<QRコードのサイズ>&chco=<色>&choe=<QRコード画像の出力エンコード>&chl=<QRコードにしたい文字列>
 +
 +|パラメータ                            |必須 or オプション|説明|h
 +|cht=qr                                |必須              |QRコードを指定|
 +|chs=<幅>x<高さ>                      |必須              |イメージサイズ|
 +|chl=<入力データ>                      |必須              |エンコードするデータ。 数字(0-9),英文字,バイナリデータ,漢字コード。&br;''データが日本語の場合は,UTF-8文字列でURLエンコードしたデータが必要''。max.2K(POSTで送る)|
 +|choe=<出力エンコードタイプ>          |オプション        |QRコードの出力エンコードタイプの指定。以下が可能:&br;UTF-8(デフォルト)&br;Shift_JIS&br;ISO-8859-1|
 +|chld=<エラー訂正レベル> or <マージン> |オプション        |エラー訂正レベル:&br;L - 約7%が復元可能(デフォルト)&br;M - 約15%が復元可能&br;Q - 約25%が復元可能&br;H - 約30%が復元可能&br;マージン - QRコードのデータ部分の周囲の白い境界線の幅。行単位(ピクセルサイズではない)&br;(デフォルト):4|
 +|chco=<色>                            |オプション        |作成データの色。RGBの並びで各色ごとに8bit16進数で指定。&br;(デフォルト):000000|
 +
 +** Microsoft EXCELで使ってみる [#qa7bbf54]
 +以下の''VBAマクロ''をEXCELの標準モジュールに追加する。~
 +#code(vb,nonumber){{
 +'
 +' QRimg(QRコード化する文字列 as string)
 +'
 +' by Yuji ueno
 +'
 +Public Function QRimg(ByVal str As String) As String
 +   Dim TopPosition As Double
 +   Dim LeftPosition As Double
 +   Dim wkSheet As Worksheet
 +   Dim xRange As Range
 +   Dim xAddr As String
 +   Dim QRShape As Shape
 + 
 +   ' 文字列がなかったらエラーで終了
 +   If Len(str) = 0 Then
 +       QRimg = "False"
 +       Exit Function
 +   End If
 + 
 +   If TypeName(Application.Caller) <> "Range" Then
 +       QRimg = "False"
 +       Exit Function
 +   End If
 + 
 +   ' 呼ばれたワークシートを取得
 +   Set wkSheet = Application.Caller.Worksheet
 +   Set xRange = Application.Caller
 +   xAddr = xRange.Address
 + 
 +   ' 前にセルに貼られていた画像を削除
 +   Range(xAddr).Select
 +   For Each selectRange In Selection
 +       For Each myShape In wkSheet.Shapes
 +           Set myRange = Range(myShape.TopLeftCell, myShape.BottomRightCell)
 +           If Intersect(myRange, Range(xAddr)) Is Nothing = False Then
 +               myShape.Delete
 +           End If
 +       Next
 +   Next
 + 
 +   ' 画像の位置
 +   TopPosition = xRange.Top
 +   LeftPosition = xRange.Left
 + 
 +   ' QRコードを作成するリクエストを作成(Google Chart APIを使用する)
 +   url = "http://chart.apis.google.com/chart?cht=qr&chs=80x80&chco=000000&chl=" & str & ""
 +   'url = "https://bwipjs-api.metafloor.com/?bcid=qrcode&&size=100&text=" & str & ""
 + 
 +   If Not url = "" Then
 +       ' QRコードのイメージを表示
 +       Set QRShape = wkSheet.Shapes.AddPicture(url, LinkToFile:=False, SaveWithDocument:=True, Left:=LeftPosition, Top:=TopPosition, Width:=80, Height:=80)
 +   End If
 + 
 +   QRimg = ""
 + 
 +End Function
 +}}
 +
 +ワークシートの''B1''に「=QRimg(A1)」と入れて,''A1''にQRコードに埋め込むデータを入れると,''B1''にQRコード画像が挿入される。~
 +#ref(excel.png,,70%)
 +
 +* Google Chart APIの代わりのサービス [#ec00b711]
 +使えなくなったGoogle Chart APIの代わりになるようなサービス。~
 +
 +** Online Barcode API [#n7f3a8cb]
 +[[Online Bardode API>https://github.com/metafloor/bwip-js/wiki/Online-Barcode-API]]というサービスがあります。~
 +QRコードだけでなく一般的なほとんどのバーコードを作成することが出来る。ただ,通常の棒グラフとか円グラフといったグラフはサポートされていない。~
 +MicroQRコードにも対応している。~
 +
 +WEB APIはオープンソース・ソフトウェアなので,自前のサーバーでも動かすことも可能。~
 +
 +使用例:
 + https://bwipjs-api.metafloor.com/?bcid=qrcode&text=https://yueno.net
 + https://bwipjs-api.metafloor.com/?bcid=microqrcode&version=M4&text=yueno.net
 +//上記の実行例:
 +//#iframe(https://bwipjs-api.metafloor.com/?bcid=qrcode&text=https://yueno.net,style=width:100px;height:100px;,iestyle=width:100px;height:100px;)
 +
 +curlを使って,直接QRコード画像が得られます。
 + > curl -o yueno.png "https://bwipjs-api.metafloor.com/?bcid=qrcode&text=https://yueno.net"
 +
 +** QuickChart [#x585056c]
 +Google Cart APIのようなサービスとして[[QuickChart>http://quickchart.io]]がある。~
 +QRコード以外は,[[Chart.js>https://www.chartjs.org/]]を使用していると思われる。~
 +MicroQRコードには対応していない。~
 +
 +WEB APIとしていつまでサービスしてくれるかは不明だが,オープンソース・ソフトウェアなので,自前のサーバーでも動かすことも可能。~
 +
 +使用例:
 + https://quickchart.io/qr?size=100&text=https://yueno.net
 +
 +//上記の実行例:
 +//#iframe(https://quickchart.io/qr?size=100&text=http://www.nalux.co.jp,style=width:100px;height:100px;,iestyle=width:100px;height:100px;)
 +
 +curlを使って,直接QRコード画像が得られます。
 + > curl -o yueno.png "https://quickchart.io/qr?size=100&text=https://yueno.net"
 +
 +** QR code API [#x10250d8]
 +[[QR code API>http://goqr.me/api/]]という,QRコードを作成するWEB APIがあります。~
 +残念ながらMicroQRコードには対応していないようだ。~
 +
 +APIに関するドキュメントは,[[こちらのページ>http://goqr.me/api/doc/]]に書かれている。~
 +
 +使い方は簡単です。
 + https://api.qrserver.com/v1/create-qr-code/?data=https://yueno.net&size=100x100
 +とすればOK。
 +
 +//上記の実行してみると,
 +//#iframe(https://api.qrserver.com/v1/create-qr-code/?data=https://yueno.net&size=100x100,style=width:100px;height:100px;,iestyle=width:100px;height:100px;)
 +//のようにQRコードが取得できます。
 +//
 +curlを使って,直接QRコード画像が得られます。
 + > curl -o nalux.png "https://api.qrserver.com/v1/create-qr-code/?data=https://yueno.net&size=100x100"
  

  • 開発/Barcode/QRコード/Google Chart APIを使ってQRコードを作成する のバックアップ差分(No. All)
    • 現: 2024-04-09 (火) 12:25:18 yuji

トップ   差分 バックアップ 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 25, today: 1, yesterday: 2