Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# IText7-IText7未正确绘制SVG文档_C#_Svg_.net Core_Itext_Itext7 - Fatal编程技术网

C# IText7-IText7未正确绘制SVG文档

C# IText7-IText7未正确绘制SVG文档,c#,svg,.net-core,itext,itext7,C#,Svg,.net Core,Itext,Itext7,项目信息:.NETCore v3.1-IText7 v7.1.11 我们有一个由IText7 nuget软件包创建的PDF文档生成器库,在这里我们可以为客户动态构建大型PDF文件 通常我们使用的是.jpg格式,但我们的在线端增加了一个新功能,即我们已经开始使用交互式SVG文件,其中热点集成到我们的UI中 因此,当我们的应用程序构建PDF文档时,它还需要导入这些SVG文件,我们可以通过以下方式使用它: var image = SvgConverter.ConvertToImage(

项目信息:.NETCore v3.1-IText7 v7.1.11

我们有一个由IText7 nuget软件包创建的PDF文档生成器库,在这里我们可以为客户动态构建大型PDF文件

通常我们使用的是
.jpg
格式,但我们的在线端增加了一个新功能,即我们已经开始使用交互式
SVG
文件,其中热点集成到我们的UI中

因此,当我们的应用程序构建PDF文档时,它还需要导入这些SVG文件,我们可以通过以下方式使用它:

var image = SvgConverter.ConvertToImage(
                    new FileStream(imagePath, FileMode.Open, FileAccess.Read), pdfDocument);

原始文件(我无法上传SVG,因此我以jpg的形式上传,但这并不重要,因为我只想显示线条的粗细):

输出如下图所示,正如您在左侧看到的,线条变得非常粗,零件未按预期显示

步骤:

  • SvgConverter.DrawOnCanvas(svgStream,pdfCanvas)
  • SvgConverter.DrawOnDocument(svgStream、pdfDocument)
  • SvgConverter.DrawOnPage(svgStream,pdfPage)
  • SvgConverter.ConvertToXObject(svgStream、pdfDocument)
  • SvgConverter.ConvertToImage(svgStream、pdfDocument)
我都试过了,但结果都一样

问题:

  • PDF和SVG文件是矢量,所以我们不能通过IText将它们集成使用,为什么我们需要将其转换为光栅?我们为什么需要转换器
  • 有没有一种方法可以减少厚度,或者不损失图像质量

谢谢你抽出时间

调用
SvgConverter.ConvertToImage
SvgConverter.ConvertToXObject
时,SVG不会转换为光栅图像-它仍然是矢量图像。因此,您可以使用集成的SVG转换器工作流,实际上您正在将其与
SvgConverter
一起使用。转换程序需要将SVG文件格式处理为更多特定于PDF的结构,因此它会执行一些转换,因为PDF不直接支持SVG。这不是矢量->光栅转换


关于线条粗细的问题,首先你应该尝试使用最新版本——据我所知,你正在尝试使用7.1.11,而它可以追溯到大约一年前,7.1.15已经过时了。如果问题仍然存在,则这是iText中SVG支持中的一个错误,您可以尝试最小化SVG文件,以查看是否有解决方法来实现正确的转换,直到针对您的情况修复错误和/或将问题报告给iText(StackOverflow不是报告错误的正确位置)。

您好,亲爱的Alexey,感谢您抽出时间,我将首先尝试将版本升级到7.1.15,然后重试此方法。Is 7.1.15与.Net Core 3.1完全兼容吗?@Burak是的,它是