我正在使用PdfSharp并保存.png文件。它工作正常。现在我需要保存SVG图像,我收到错误
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
代码是
(?<!\d)\d{2}(?!\d)
如果我将上述内容从.svg更改为.png,则可以正常工作(因为我同时拥有同名的.png和.svg文件)
如何使用PDF Sharp将SVG图像保存为PDF?
答案 0 :(得分:6)
PDFsharp支持PNG和JPEG等光栅图像。尚不支持SVG等矢量图像。这不是错误,这是一个实施限制。
XImage.FromFile
将图像传递给GDI +或WPF(取决于您正在使用的构建版本),并期望获得光栅图像作为回报。我不知道GDI +或WPF返回的SVG图像是什么。
如果您找到使用Graphics
对象绘制SVG图像的源代码,那么您可以轻松地将其用于PDFsharp的XGraphics
对象。
或尝试找到将SVG转换为光栅图像的库。
答案 1 :(得分:0)
您可以执行以下操作:
using (var doc = new PdfSharp.Pdf.PdfDocument())
{
var page = doc.AddPage();
using (var gr = PdfSharp.Drawing.XGraphics.FromPdfPage(page, PdfSharp.Drawing.XGraphicsPdfPageOptions.Append))
{
using (var imgForm = PdfSharp.Drawing.XPdfForm.FromFile("fileWithVectorImage.pdf"))
{
gr.DrawImage(imgForm, new PdfSharp.Drawing.XPoint(10, 10));
}
//other pdf stuff with gr.DrawString etc.
}
doc.Save("resultPdfFile.pdf");
}