2017-02-20 34 views
0

私はSVGに署名を保存するためにjSignature JavaScriptを使用しています。今私はSVGをPDF文書の上に署名の空白の上に置くようにしています。PDFSharp; PDFファイルにSVG署名を追加

私はSVGをファイルに変換し、そのファイルをSVG(SVG Rendering Library 2.3.0)で開き、それをストリームに変換してからPDFSharpでPDFに貼り付けます。私の問題は、SVGライブラリを文字列からロードすることができないということです。ファイルからロードする必要があります。私はこれらの署名をデータベースからフォーム関連のデータとともに引き出しています。

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 

エラーは次のとおりです。

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 

オーバーロードでストリームを使用できることが明確に示されたときに、グラフィックに変換するファイルを作成するという考えは嫌です。私は間違って何をしていますか?

+0

PDFSharpを使用して 'svgDocument.Draw()'をPDFに挿入するときに使用しますか? – Azimuth

答えて

0

答えが見つかりました。私はすでに試したことがありましたが、失敗しましたが、今はうまくいきます。型が推測できないので、宣言しなければなりませんでした。私はストリームとしてこれをやってみたが失敗した。まあ、今日私はそれを介して作業することを決めた、私はそれを得た。

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

これは明らかです。私はそれを乗り越えました。だからこの問題を抱えている誰かに、それはそれを解決する。私のプログラムはOption Explicit、Option Strictを実行していることに注意してください。

0

メモ帳でsvgファイルを開き、実際にASCIIエンコーディングを使用していることを確認します。私はそれがUTF-8である可能性が高いと思います。その場合は、

Bytes = System.Text.Encoding.UTF8.GetBytes(FileText) 

を代わりに使用してください。

+0

私が得ているエラーは、実行時ではなくビルド時です。 – Kayot

関連する問題