c# - 如何将 SVG 转换为 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 的其余部分正确转换。希望这对将来的任何人都有帮助。
推荐阅读
- ios - 如果另一个 UITextField 具有特定值,则启用特定 UITextField
- php - php dyld:未为 libldap 加载库
- javascript - 如何模拟 ajax 响应
- amazon-web-services - Jenkins 重置 AWS 密码的作业
- python - 组合按列中的值分组的 2d numpy 数组
- c# - 具有设置间隔或 SignalR 的 Ajax
- spring - 如何将字符串 [] 从 Thymeleaf 多选表单发送到控制器
- php - Laravel 循环中的查询范围
- amazon-web-services - EC2 安全组入站规则未按预期工作
- elasticsearch - 如何更改 Elasticsearch 网络主机