ITextSharp 4.2.0を使用して、画像のサイズを159x159ポイントのサイズに変更できるようにしたいのですが、結果の画像は正確に指定されたサイズである必要があります。
私はこれを試しました:
Image image = Image.GetInstance(imagePath);
image.ScaleAbsolute(159f, 159f);
しかし、画像は正方形ではありません。アスペクト比を維持します。
例:私はこの画像を持っています:
そして、結果の画像は次のようになります。
ありがとう。
あなたが説明する問題は、通常、AddCell()
を呼び出してImage
をPdfPTable
に直接追加しようとするとどうなるかです。これは常にスケーリングします。 PdfPCell
に合う画像。したがって、次のように画像をDocument
に追加する場合は次のようになります。
_Image img = Image.GetInstance(imagePath);
img.ScaleAbsolute(159f, 159f);
PdfPTable table = new PdfPTable(1);
table.AddCell(img);
document.Add(table);
_
ScaleAbsolute()
呼び出しは無視されます。必要なスケーリングを取得するには:
_PdfPTable table = new PdfPTable(1);
table.AddCell(new PdfPCell(img));
document.Add(table);
_
PdfPCell画像をセルに収めるプロパティがあるため、trueに設定するだけです。
iTextSharp.text.Image logo = iTextSharp.text.Image.GetInstance("/test.png");
PdfPCell logocell = new PdfPCell(logo,true); // **PdfPCell(Image,Boolean Fit)**