【发布时间】:2018-06-08 10:28:08
【问题描述】:
我的任务是制作一个程序,该程序将使用输入数据请求的数字制作 PDF 文件。在这张图片中,我们可以看到输入数据是什么,即大小、形状之间的间隙、形状类型、蓝图编号。等等,下面是实际图表的样子。
input data above and actual graphics below
使用矢量图形对项目来说非常重要,所以我考虑使用 SVG,因为它们非常灵活,并且以编程方式生成它们相对容易。 然后,我目前正在使用 .NET 库 (Select.HtmltoPdf) 将 HTML 字符串转换为 PDF,这非常方便,因为直接在 C# 中设计 PDF 是一件很痛苦的事情。 使用 HTML 给了我使用 CSS 的优势以及我相对熟悉的东西。唯一的缺点是我不能直接使用那个库来渲染 svgs,我必须先把它们放在一个 html 文件中。
当我将 SVG 插入 HTML 中,然后使用库将其呈现为 PDF 时,就会出现问题。 如果我直接在 Corel Draw 或 Adobe Illustrator 中打开 svg,尺寸会保持不变,一切都应该是这样。但是,如果我将文件的扩展名更改为 .html 并在 Chrome 中打开它,然后打印为 PDF,或者直接从我的程序渲染 PDF,则形状会略微缩小。
我的问题是如何在 html 页面中显示路径的尺寸时保持不变。
这是我当前的 .svg:
<svg x="0" y="0" width="215.9mm" height="279.4mm" viewBox="0 0 215.9 279.4">
<rect x="40" y="40" width="25" height="25" rx="1.5875" ry="1.5875" stroke="black" stroke-width="0.5" fill-opacity="1"/>
<ellipse cx="20" cy="20" rx="20" ry="20" stroke="black" stroke-width="0.5" fill-opacity="0"/>
</svg>
还有我尝试使用的 html,它基本上是相同的 svg,周围有 <html> 标签。
<!DOCTYPE html>
<html>
<meta HTTP-EQUIV="Content-Style-Type" CONTENT="text/css" CHARSET="UTF-8"/>
<svg x="0" y="0" width="215.9mm" height="279.4mm" viewBox="0 0 215.9 279.4">
<rect x="40" y="40" width="25" height="25" rx="1.5875" ry="1.5875" stroke="black" stroke-width="0.5" fill-opacity="1"/>
<ellipse cx="20" cy="20" rx="20" ry="20" stroke="black" stroke-width="0.5" fill-opacity="0"/>
</svg>
</html>
谢谢!
【问题讨论】: