【问题标题】:Keep the size of svg inside an html page将 svg 的大小保持在 html 页面中
【发布时间】: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 或 Adob​​e 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,周围有 &lt;html&gt; 标签。

<!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>

谢谢!

【问题讨论】:

    标签: c# html css pdf svg


    【解决方案1】:

    实际上并不清楚“形状略微缩小”的确切含义。

    但您的问题可能与 CSS 中的“215.9mm”并不意味着与现实世界中的 215.9mm 相同这一事实有关。 CSS 值“1in”(或“25.4mm”)被定义为相当于 96 个“CSS 像素”。由浏览器决定在屏幕上呈现多大或何时打印。

    当 SVG 嵌入 HTML 时,由浏览器决定 HTML 页面中的“215.9mm”代表什么以及由此生成的 PDF。另外不要忘记,它可能还决定扩展其对 HTML 页面的想法,以适应它认为的打印机页面大小。

    当您的矢量软件生成 PDF 时,我希望它能够根据您的 PDF 大小(A4 或其他大小)使用这些长度值的更准确表示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-24
      • 2015-05-08
      • 2016-12-01
      • 2019-04-10
      • 2018-11-15
      • 2018-06-23
      • 1970-01-01
      相关资源
      最近更新 更多