在C#中将像素转换为mm

时间:2016-05-19 08:41:32

标签: c# html

我不确定使用的标题是否正确。

这是我的问题。我正在使用名为nreco的库将html文件转换为pdf。 我正在使用他们的免费dll。 (这意味着没有他们的支持)

我有一个高度和宽度为1200px的html文档(我已经阅读了它的源代码)。

但是nreco使用mm。所以1200px是317.5mm。 但是,输出pdf有空白区域,因此我将其调整为250mm。这已解决了问题,并且已删除空格。

这是我的代码。

var htmlToPdf = new NReco.PdfGenerator.HtmlToPdfConverter();
htmlToPdf.Margins = new NReco.PdfGenerator.PageMargins { Left = 0, Top = 0, Right = 0, Bottom = 0 };
htmlToPdf.PageWidth = 250;
htmlToPdf.PageHeight = 250;

这是真正的问题: 为什么317.5mm等于1200px但它仍然包含空格, 当我将它减少到250mm时,空白被删除,输出就像这样适合页面?

enter image description here

我是否错误地从像素转换为mm?或者是nreco使用不同的公式吗?如果是这样,有人可以帮我确定所需的公式吗?非常感谢你

以下是带空格的输出

enter image description here

html源代码:

注意:我删除了一些标签以获得更清晰的代码。原文包含的代码比这个要多很多,但我很确定它没有问题。

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
<head>
  <title>this is a title</title>
  <link href="../Styles/Stylesheet.css" rel="stylesheet" type="text/css" />
  <meta content="width=1200, height=1200" name="viewport" />
</head>

<body>
  <div style="background-image:url(../Images/p-3.jpg); background-size:cover; width:1200px; height:1200px; background-repeat:no-repeat;">



</div>
</body>
</html>

0 个答案:

没有答案