2014-05-08 16 views
6

Io sono abbastanza nuovo in iTextSharp (la versione C# di iText):Come creare un oggetto iTextSharp.text.Image che inizia con un oggetto System.Drawing.Bitmap?

ho qualcosa di simile a questo:

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 }); 

Come potete vedere ho classico System.Drawing.Bitmap immage nome bitmap e voglio metterlo in una cella di una tabella di documenti PDF.

Il problema è che questa linea è firmato come errore:

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

L'errore è:

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

Quindi penso che ho bisogno di ottenere un oggettoiTextSharp.text.Image da un oggetto classico System.Drawing.Bitmap.

Cosa posso fare per farlo? Sto impazzendo cercando di farlo.

Tnx

risposta

15

ci sono sovraccarichi che prendono solo un System.Drawing.Image. È necessario utilizzare uno di questi:

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) 

La prima è probabilmente la scelta migliore e sono sicuro che il 99% è possibile passare null per il parametro color.

+0

Solo per verificare: è possibile passare null come il colore. Documentazione del codice: se diverso da null (il colore di base) i pixel di trasparenza sono sostituiti da questo colore –

+0

@Chris Haas Sto usando un GetInstance (immagine System.Drawing.Image, formato System.Drawing.Imaging.ImageFormat) - perché è sempre mi prende un rettangolo nero invece la mia bitmap? – whizzzkey

+1

L'ho usato per inserire l'immagine del codice a barre nel file pdf con null per colore: Zen.Barcode.Code128BarcodeDraw barcode = Zen.Barcode.BarcodeDrawFactory.Code128WithChecksum; System.Drawing.Image barCodeImage = barcode.Draw ("* y21456 *", 50); Colore baseColore = null; Immagine image = Image.GetInstance (barCodeImage, color); –