2014-05-08 4 views
6

ich ziemlich neu bin in iTextSharp (C# Version von iText):Wie erstellt man ein iTextSharp.text.Image-Objekt, das mit einem System.Drawing.Bitmap-Objekt beginnt?

ich so etwas wie dieses:

System.Drawing.Bitmap bitmap = (System.Drawing.Bitmap)ChartHelper.GetPdfChart((int)currentVuln.UrgencyRating * 10); 

iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(bitmap); 

vulnerabilityDetailsTable.AddCell(new PdfPCell(img) { Border = PdfPCell.RIGHT_BORDER, BorderColor = new BaseColor(79, 129, 189), BorderWidth = 1, Padding = 5, MinimumHeight = 30, PaddingTop = 10 }); 

Wie Sie Ich habe klassische System.Drawing.Bitmap sehen Immage namens Bitmap und ich möchte es in eine Zelle einer PDF-Dokumententabelle legen.

Das Problem ist, dass diese Zeile als Fehler signiert ist:

iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(bitmap); 

Der Fehler ist:

Error 75 The best overloaded method match for 'iTextSharp.text.Image.GetInstance(iTextSharp.text.Image)' has some invalid arguments c:\Develop\EarlyWarning\public\Implementazione\Ver2\PdfReport\PdfVulnerability.cs 120 27 PdfReport

Deshalb denke ich, dass ich ein iTextSharp.text.Image Objekt zu erhalten von einem klassischen System.Drawing.Bitmap Objekt.

Was kann ich tun, um es zu tun? Ich werde verrückt, wenn ich versuche, es zu tun.

Tnx

Antwort

15

Es gibt keine Überlastungen, die nur ein System.Drawing.Image nehmen. Sie müssen eine von diesen verwendet:

GetInstance(System.Drawing.Image image, BaseColor color) 
GetInstance(System.Drawing.Image image, BaseColor color, bool forceBW) 
GetInstance(System.Drawing.Image image, System.Drawing.Imaging.ImageFormat format) 

Die erste ist wahrscheinlich die beste Wahl, und ich bin 99% sicher, dass Sie null für den color Parameter übergeben kann.

+0

Nur zur Bestätigung: Sie können Null als Farbe übergeben. Code-Dokumentation: Wenn ungleich Null (die Basisfarbe) die Transparenz Pixel durch diese Farbe ersetzt werden –

+0

@Chris Haas Ich benutze ein GetInstance (System.Drawing.Image Bild, System.Drawing.Imaging.ImageFormat Format) - warum es immer bekomme ich statt meiner Bitmap ein schwarzes Rechteck? – whizzzkey

+1

Ich verwendete es für Barcode Bild einfügen in PDF-Datei mit Null für Farbe: Zen.Barcode.Code128BarcodeDraw Barcode = Zen.Barcode.BarcodeDrawFactory.Code128WithChecksum; System.Drawing.Image barCodeImage = barcode.Draw ("* y21456 *", 50); BaseColor color = null; Image image = Image.GetInstance (barCodeImage, Farbe); –