2017-11-21 22 views
1

私はPdfSharpを使用し、.pngファイルを保存しています。それはうまく動作します。私は両方を持って、私はそれが正常に動作.pngをする.SVGから上記変更した場合は今、私はSVG画像を保存する必要があり、私はエラーPdfSharpで.SVGをPDFに書き込む方法

System.OutOfMemoryException: Out of memory. 
を取得しています

コードが

var path = @"D:\Projects\ProjectName\Content\Images\Instruments"; 
path += Path.GetFileName(instrument.Src); //instrument.src is a valid name and the path is a valid path on the local machine, which is where I'm testing 

if (!File.Exists(path)) 
    return; //never hit as the path is correct 

var img = XImage.FromFile(path); //out of memory 
//more code 

です(ので、 、同じ名前の.pngと.svgファイル)

PDFシャープを使用してSVGイメージをPDFに保存するにはどうすればよいですか?

+0

あなたのコードを変更して、 'using(){}'構造の周りに必要なオブジェクトをすべてラップしてください。あなたは 'outputPdf'を返すこともそれは文字列か実際のPDFですか?メソッドから戻す前に、新しく作成された他のオブジェクトを破棄する必要があります。どの時点でエラーが出ますか?最初に走って..?または複数回実行しています..? – MethodMan

+0

デバッガを使用するときのディレクトリの値を教えてください 'inputSvg'このアプリケーションでは、あなたのアプリケーションは特別なフォルダにアクセスできますか、手動でフォルダパスにナビゲートしますか? – MethodMan

+0

このリンクもチェックしてくださいhttp://www.pdfsharp.net/wiki/PageSizes-sample.ashx?AspxAutoDetectCookieSupport=1 – MethodMan

答えて

4

PDFsharpは、PNGやJPEGなどのラスターイメージをサポートしています。 SVGのようなベクター画像はまだサポートされていません。これはバグではなく、実装上の制限です。

XImage.FromFileは、イメージをGDI +またはWPF(使用しているビルドによって異なる)に渡し、その代わりにラスタイメージを取得することを想定しています。私はGDI +またはWPFがSVGイメージのために返すものを知りません。

Graphicsオブジェクトを使用してSVGイメージを描画するソースコードを見つけたら、PDFsharpのXGraphicsオブジェクトに簡単に採用できます。

または、SVGをラスターイメージに変換するライブラリを探してみてください。

関連する問題