[英]How to convert SVG to PDF C#?
我已經有幾天這個問題,並嘗試過很多東西。 基本上,我讓用戶編輯SVG,一旦完成,他們就會將其保存回服務器上的文件路徑。 我的問題是我的SVG包含目錄中文件的href。 作為一個SVG,它可以毫無問題地引用該文件,但是當我將文件轉換為PDF時,它沒有圖像,但它確實有其他SVG元素,如行和文本。 有沒有人有這個問題或知道如何解決? 我正在使用ImageMagick進行轉換,但它仍然存在這個問題。 請參閱下面的控制器代碼:
[HttpPost]
public void ConvertToPDF(string[] svgs, string pdfFilePath, List<string> files)
{
MagickReadSettings settings = new MagickReadSettings();
using (MagickImageCollection images = new MagickImageCollection())
{
foreach(var s in svgs)
{
var fileName = System.Web.HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["ConvertFromXMLToSvgTempPath"] + s + ".svg");
//images.Read(fileName, settings);
//var readSettings = new MagickReadSettings() { Format = MagickFormat.Svg };
using (var image = new MagickImage(fileName))
{
image.Format = MagickFormat.Pdf;
}
}
images.Write(pdfFilePath);
}
}
僅供參考 - 我最終將圖像路徑轉換為Base64。 SVG的其余部分正確轉換。 希望這對未來的任何人都有幫助。
更好你可以嘗試使用Syncfusion HTML到PDF庫。這個對我來說效果更好。
HtmlToPdfConverter htmlConverter = new HtmlToPdfConverter(HtmlRenderingEngine.WebKit);
WebKitConverterSettings settings = new WebKitConverterSettings();
// WebKit library path
settings.WebKitPath = @"../../QtBinaries/";
//Assign WebKit settings to HTML converter
htmlConverter.ConverterSettings = settings;
//Convert a SVG file to PDF with HTML converter
PdfDocument document = htmlConverter.Convert(@"../../Sample.svg");
document.Save("Output.pdf");
document.Close(true);
要下載webkit庫WebKit HTML Converter: https : //www.syncfusion.com/downloads/latest-version
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.