2016-06-24 8 views
1

Ich habe ein System.Drawing.Image und möchte es zu einer PDF an einer bestimmten Position hinzufügen. Das einzige Problem ist, dass die Überlastung fürErstellen Sie ein iTextSharp.text.Image von System.Drawing.Image [GetInstance Überladung nicht verfügbar]

iTextSharp.text.Image.GetInstance(System.Drawing.Image, iTextSharp.text.BaseColor);

aus irgendeinem Grund nicht verfügbar ist. Ich erhalte Compilerfehler:

Error 1 The best overloaded method match for 'iTextSharp.text.Image.GetInstance(System.Uri, bool)' has some invalid arguments

Ich weiß, diese Frage wurde here und here beantwortet, aber ohne die Überlastung Ich weiß nicht, wie man es an die Arbeit.

+0

Können Sie die Datentypen überprüfen, die Sie an die GetInstance-Methode übergeben? Es sieht so aus, als ob der Compiler eine andere Überladung annimmt, basierend auf einer oder mehreren der Variablen, die Sie senden. – ryancdotnet

+0

Welche Version von iText verwenden Sie? iText 7 für C# wurde komplett neu gestaltet. Es gibt keine 'GetInstance()' Methode für 'Image'. Stattdessen müssen Sie einen Konstruktor verwenden. Vielleicht verwenden Sie eine Version von iTextSharp, auf die die (gültigen!) Antworten, die Sie gefunden haben, nicht zutreffen. –

+0

@BrunoLowagie Ich habe gestern die Seite [Github] (https://github.com/itext/itextsharp) geklont und die DLL verwendet. Wenn es iText 7 ist, würde dann die 'GetInstance()' Methode immer noch erscheinen? Im Moment hat es 15 Überladungen, von denen keine ein System.Drawing.Image akzeptiert. Edit: Ich habe den Konstruktor für iTextSharp.text.Image gesucht, aber es hat nur zwei Überladungen. Eins für einen Uri und ein anderes für iTextSharp.text.Image – kubomax

Antwort

0

Die Antwort ist in den Kommentaren, aber ich füge eine echte Antwort für weitere Referenz.

Die GetInstance(System.Drawing.Image image, BaseColor color) existiert, aber wenn Sie den Code betrachten, sehen Sie, dass es eine #if DRAWING Compiler-Direktive vorausgeht. Keine der System.Drawing.Image Überladungen innerhalb der #if Drawing ... #endif wird beim Erstellen mit der Standardkonfiguration debug_woDrawing berücksichtigt. Sie müssen die Konfiguration zu release ändern, wenn Sie alles selbst kompilieren möchten.

Oder verwenden Sie die official release, wenn Sie nicht auf diese Art von Problemen stoßen möchten.

+0

Dies ist die richtige Antwort. Vielen Dank. – kubomax

Verwandte Themen