簡體   English   中英

如何將SVG轉換為PDF C#?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM