2017-02-20 2 views
0

Ich benutze jSignature Javascript, um eine Signatur in SVG zu speichern. Jetzt versuche ich, das SVG über ein Signatur-Feld auf ein PDF-Dokument zu legen.PDFSharp; SVG-Signatur zu PDF-Datei hinzufügen

Ich kann es tun, indem Sie die SVG in eine Datei konvertieren, diese Datei mit SVG (SVG Rendering Library 2.3.0) öffnen und in einen Stream verwandeln, den ich dann mit PDFSharp in die PDF-Datei einlege. Mein Problem ist, dass ich die SVG-Bibliothek nicht aus einer Zeichenfolge laden kann. Es muss von einer Datei geladen werden. Ich ziehe diese Signaturen zusammen mit ihren formularbezogenen Daten aus einer Datenbank.

Dim FileText As String 
Dim Bytes() As Byte 
Using DB As New wotcDB 
    FileText = (From t In DB.interviews Where t.ID = 1 Select t.Signature).FirstOrDefault 
End Using 

Bytes = System.Text.Encoding.ASCII.GetBytes(FileText) 
Using DataStream As New System.IO.MemoryStream(Bytes) 
    svgDocument = Svg.SvgDocument.Open(DataStream) 'Issue 
End Using 

Der Fehler, den ich bekomme, ist wie folgt;

Severity Code Description Project File Line Suppression State 
Error BC30518 Overload resolution failed because no accessible 'Open' can be called with these arguments: 
'Public Shared Overloads Function Open(Of T As {SvgDocument, New})(path As String) As T': Type parameter 'T' cannot be inferred. 
'Public Shared Overloads Function Open(Of T As {SvgDocument, New})(stream As Stream) As T': Type parameter 'T' cannot be inferred. WOTC-FE d:\Programming\Applications\frmDebug.vb 54 Active 

Ich hasse die Idee, eine Datei zu erstellen, um eine Grafik zu konvertieren, wenn die Überladungen deutlich zeigen, dass ich Streams verwenden kann. Was mache ich falsch?

+0

Verwenden Sie 'svgDocument.Draw()', wenn Sie es mit PDFSharp in Ihr PDF einfügen? – Azimuth

Antwort

0

Ich fand die Antwort. Es war etwas, das ich bereits versucht habe und obwohl es fehlgeschlagen ist, aber jetzt funktioniert es. Da der Typ nicht ableitbar war, musste ich es deklarieren. Ich habe versucht, dies als Stream zu tun und es ist fehlgeschlagen. Nun, heute habe ich beschlossen, es durchzuarbeiten, und ich habe es verstanden.

mySVG = SvgDocument.Open(Of SvgDocument)(newStream) 

Es ist so offensichtlich, und ich stolperte darüber. Für jeden anderen, der dieses Problem hat, löst es das Problem. Bitte beachten Sie, dass mein Programm Option Explicit, Option Strict ausführt.

0

Öffnen Sie die SVG-Datei in Editor und überprüfen Sie, dass es tatsächlich ASCII-Codierung verwendet. Ich denke, es ist wahrscheinlicher, dass es UTF-8 ist. Wenn ja, verwenden Sie stattdessen

.

+0

Der Fehler, den ich bekomme, ist zur Laufzeit, nicht zur Laufzeit. – Kayot