2016-02-05 118 views
2

我想在BIRT中生成QR碼。在生成報告之前,我將輸入標籤數量作爲輸入x,然後報告應該包含x標籤以及QR碼.QR代碼數據是動態的,並基於輸入。我在網上搜索了很多,但沒有找到合適的解決方案。我想要報告如下所示QR碼在BIRT

+0

這可以通過使用BIRT基於腳本數據集列表元素來實現,但你應該更具體的瞭解你嘗試過什麼以及目前遇到了哪些問題。 – Dominique

+0

請在QR代碼上指導我 –

+0

您嘗試生成QR碼的哪個庫,以及您獲得了哪些錯誤?有幾個關於生成QR碼的java教程,例如我跟着這個http://crunchify.com/java-simple-qr-code-generator-example/ – Dominique

回答

2

QRCode本身可以使用ZXing庫創建,例如使用this tutorial

this example一個使用zxing的小型生成器被開發來保持腳本儘可能簡單,但這是兼容的,你可以把所有的java東西直接放到BIRT腳本中。這裏基本上是這個劇本的樣子:

importPackage(Packages.java.awt); 
importPackage(Packages.org.my.package.using.zxing); 

var url="Generate a URL or a message with data bindings, report parameters etc."; 
try{ 
    vars["QRCode"]=QRcodeGenerator.getImage64QR(url, Color(params["QRColor"].value), Color.WHITE,params["QRSize"].value); 
}catch(e){ 
    vars["QRexception"]=e.message; 
} 

在你的情況類似的腳本可以在數據動態圖像的結合放,或在OnCreate事件,等等。此時有兩種選擇:

  • 生成每個數據集行一個不同的臨時.PNG或.jpg,並設置一個本地BIRT圖像元素與URI表達式返回該臨時文件
  • 生成每個數據集行一個base64圖像和嵌入它動態圖像元素或HTML文本元素

這個例子是使用與HTML文本元素的第二種方法和這樣的表達:

<img alt="This QRCode can't be displayed" src='<VALUE-OF>vars["QRCode"]</VALUE-OF>'/> 
+0

感謝您的幫助@Dominique。 –