【发布时间】:2021-08-18 19:42:00
【问题描述】:
项目信息: .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 将它们作为集成使用,为什么需要将其转换为 Raster?为什么我们需要转换器?
- 有没有办法减少厚度或不损失图像质量?
感谢您的宝贵时间!
【问题讨论】:
标签: c# svg .net-core itext itext7