iText 7は 2016 年 5 月にリリースされたばかりで、チュートリアルの一部は役に立ちましたが、より高度な機能の一部は理解しにくいものでした。このページには、テキストを透かしとして使用する方法の例があります (ページの約 90% まで) が、画像を透かしとして使用する方法がわかりません。新しいリリースで。iText 7で画像を透かしとして使用する方法を知っている人はいますか? どこから始めればよいですか?
1 に答える
これが正しい方法であると 100% 確信しているわけではありませんが、95% の自信があると思います。
リンクした iText 7のチュートリアルをスターティング ガイドとしてiText 5 バージョンと共に使用すると、「グラフィックス状態」を使用して現在のキャンバスを変更できます。
(以下のコードは C# ですが、非常に簡単に Java に変換できるはずです。プロパティとメソッドの最初の文字を小文字にするだけです。また、どこにあるかがわかるように完全な名前空間パスを使用しています。)
まず、カスタム ステートを作成し、その透明度を設定します。
//Create a transparent state
iText.Kernel.Pdf.Extgstate.PdfExtGState tranState = new iText.Kernel.Pdf.Extgstate.PdfExtGState();
tranState.SetFillOpacity(0.5f);
次に、イメージを取得します。
//Get your image somehow
iText.IO.Image.ImageData myImageData = ImageDataFactory.Create("D:\\14.jpg", false);
iText.Layout.Element.Image myImage = new iText.Layout.Element.Image(myImageData);
3 番目 (およびオプション) で、必要に応じてイメージを変更します。
//Position, rotate and scale it as needed
myImage.SetFixedPosition(100, 100);
myImage.SetRotationAngle(45);
myImage.ScaleAbsolute(200, 200);
4 番目に、(チュートリアルから) pdfCanvas 状態を保存し、新しい状態を設定します。
pdfCanvas.SaveState().SetExtGState(tranState);
5番目に、画像をより高いレベルのキャンバスに追加します(チュートリアルからもう一度):
canvas.Add(myImage);
そして 6 番目に、pdfCanvas の状態をリセットします。
pdfCanvas.RestoreState();
ブルーノによる更新:
画像の追加については、「iText 7: Building Blocks」チュートリアルの第 3 章で説明されています。「iText 7: Jump-Start チュートリアル」の第 3 章では、PdfCanvas
andCanvas
オブジェクトを使用します。画像を作成して追加する方法に関する不足情報は、「Building Blocks」チュートリアルにあります。