1

iTextを使用してQRコードの背景色を透明な背景に設定しようとしていますが、機能しません。白いバーと黒い背景のみを表示します。

私がこれまでにしたこと:

私のコードスニペット:

    PdfContentByte cb = writer.getDirectContent();
    BarcodeQRCode qrcode = new BarcodeQRCode("sample message on qr", 100, 100, null);
    java.awt.Image qrImage = qrcode.createAwtImage(Color.WHITE,new Color(0, 0, 0, 0));
    Image finalImage = Image.getInstance(writer, qrImage, 1);
    finalImage.setAbsolutePosition(positionX, positionY);
    cb.addImage(finalImage);

すでにQRコードを生成してPDFを作成しましたが、

qrcode.createAwtImage(Color.WHITE、new Color(0、0、0、0));

アルファ背景は生成されず、代わりに黒の背景色のみが表示されます。

私も試しました:

java.awt.Image qrImage = qrcode.createAwtImage(Color.WHITE、Color.OPAQUE);

しかし、明らかに、私の議論は正しくありません。

助けていただければ幸いです。私はこれに1日取り組んできました。

Graphics、Graphics2gも試し、BufferedImageに変換しました。

4

2 に答える 2

2

この問題を次のように解決します。

BarcodeQRCode qrcode = new BarcodeQRCode("sample message on qr", 100, 100, null);
Image image = qrcode.getImage();
Image mask = qrcode.getImage();
mask.makeMask();
image.setImageMask(mask);
document.add(image);

AWT ソリューションもあるかもしれませんが、私は AWT 回避策を使用するよりもネイティブ PDF ソリューションに精通しています。

于 2013-01-07T10:53:28.180 に答える
2

の割り当てをfinalImage次の作品に変更します。

Image finalImage = Image.getInstance(qrImage, null)

ただし、最初の引数としてgetInstancea を取るメソッドを使用すると透明度が損なわれる理由はわかりません...PdfWriter

于 2013-01-07T10:54:41.223 に答える