首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将SVG添加到PDF时出现异常

将SVG添加到PDF时出现异常
EN

Stack Overflow用户
提问于 2022-04-04 16:08:17
回答 1查看 217关注 0票数 2

我试图在PDF文档中插入一个SVG,但是我一直得到这样的异常:

代码语言:javascript
运行
复制
Nullable object must have a value.

堆栈跟踪显示:

代码语言:javascript
运行
复制
   at System.ThrowHelper.ThrowInvalidOperationException_InvalidOperation_NoValue()
   at iText.Svg.Renderers.Path.Impl.AbstractPathShape.CreatePoint(String coordX, String coordY)
   at iText.Svg.Renderers.Impl.PathSvgNodeRenderer.AddMoveToShapes(IPathShape pathShape, String[] pathProperties)
   at iText.Svg.Renderers.Impl.PathSvgNodeRenderer.ProcessPathOperator(String[] pathProperties, IPathShape previousShape)
   at iText.Svg.Renderers.Impl.PathSvgNodeRenderer.GetShapes()
   at iText.Svg.Renderers.Impl.PathSvgNodeRenderer.DoDraw(SvgDrawContext context)
   at iText.Svg.Renderers.Impl.AbstractSvgNodeRenderer.Draw(SvgDrawContext context)
   at iText.Svg.Renderers.Impl.GroupSvgNodeRenderer.DoDraw(SvgDrawContext context)
   at iText.Svg.Renderers.Impl.ClipPathSvgNodeRenderer.DoDraw(SvgDrawContext context)
   at iText.Svg.Renderers.Impl.AbstractSvgNodeRenderer.Draw(SvgDrawContext context)
   at iText.Svg.Renderers.Impl.AbstractSvgNodeRenderer.DrawInClipPath(SvgDrawContext context)
   at iText.Svg.Renderers.Impl.AbstractSvgNodeRenderer.Draw(SvgDrawContext context)
   at iText.Svg.Renderers.Impl.AbstractBranchSvgNodeRenderer.DoDraw(SvgDrawContext context)
   at iText.Svg.Renderers.Impl.SvgTagSvgNodeRenderer.DoDraw(SvgDrawContext context)
   at iText.Svg.Renderers.Impl.AbstractSvgNodeRenderer.Draw(SvgDrawContext context)
   at iText.Svg.Renderers.Impl.PdfRootSvgNodeRenderer.Draw(SvgDrawContext context)
   at iText.Svg.Converter.SvgConverter.ConvertToXObject(ISvgNodeRenderer topSvgRenderer, PdfDocument document, SvgDrawContext context)
   at iText.Svg.Converter.SvgConverter.ConvertToXObject(ISvgProcessorResult processorResult, PdfDocument document, ISvgConverterProperties props)
   at iText.Svg.Converter.SvgConverter.ConvertToXObject(Stream stream, PdfDocument document, ISvgConverterProperties props)
   at iText.Svg.Converter.SvgConverter.ConvertToXObject(Stream stream, PdfDocument document)
   at iText.Svg.Converter.SvgConverter.ConvertToImage(Stream stream, PdfDocument document)
   at HPT.Files.Infrastructure.Pdf.PdfProcessingService.GeneratePdfFile(List`1 customPlanStreams, PdfContent pdfContent, ICompressor compressor) in C:\--omited--\PdfProcessingService.cs:line 438

以下是我的SVG的内容:

https://drive.google.com/file/d/1xT941Ps_ulIkv4VUQ1v8iDlE2r6VOUT0/view?usp=sharing

下面是我试图生成这幅图片的方式:

代码语言:javascript
运行
复制
var img = SvgConverter.ConvertToImage(planStream, pdf);

奇怪的是,对于一些SVG,它可以工作,但是大多数SVG都会抛出这个异常。

-what我该试试吗?-what,我做错了吗?

我还尝试将SVG解析为一个XObject,但我得到了相同的异常。如果我接受SVG的内容,它将在浏览器中正确显示。

EN

回答 1

Stack Overflow用户

发布于 2022-04-08 21:05:43

看起来,iText可能有一个bug。SVG的最后一条路,

代码语言:javascript
运行
复制
<path d="M-4.5474735E-13 527.02695L698.51578 527.02695L698.51578 1.364242E-12L-4.5474735E-13 1.364242E-12L-4.5474735E-13 527.02695" stroke="#FF0000" stroke-width="0.068529764" stroke-linecap="round" fill="none" />

具有非常小的震级点,用科学符号表示:-4.5474735E-13

通过调试器,它被解析为x:-4.5474735E,y:-13

至于为什么对某些人有效,我猜他们在任何地方都没有那么小的价值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71740377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档