我想呈现一个HTML页面中的图像。abcpdf HTML图像拉伸
我有一个问题,当前图像的大小似乎变得越来越多,我的图像是304x112,当它呈现为pdf时,它是607x224。
我没有找到这个
屏幕分辨率通常为96 dpi的。因此,当您在显示器上查看HTML页面 时,Windows将以96 dpi的分辨率显示它。
屏幕分辨率与PDF分辨率之间的差异意味着HTML在打印文档中显示的大于屏幕上的 。
如果您希望两者的尺寸相同,则需要使用72/96(0.75)的比例来补偿此 。
例如,如果你是渲染网页的宽度参数提供800 一个值,你需要,如果你想都出现相同的大小来设置矩形 的宽度600。
和
PDF文档主要是基于矢量的。因此,他们不要 确实有一个dpi,因为他们是独立的分辨率。基于栅格的PDF的唯一 部分是图像。
HTML的大部分元素 - 文本,行 - 都是基于矢量的。所以他们是 分辨率无关的。
您的网页中的图像呈现的分辨率为 复杂。假设您有一个由 图片标签引用的300平方的图片。如果Doc.Rect的宽度与 传递给AddImageUrl的宽度相同,则会以72 dpi的分辨率渲染。但是,通过 更改这两个值之间的比率,图像将被缩放为 ,因此分辨率将会更改。
而且,如果您的300平方米位于宽度和高度为 150的img标记中,则默认分辨率将翻倍。
我的问题似乎是在那里的第二部分描述。
我的最终结果是将输出添加到a4纵向页面,以便它可以打印(以及文档中的其他文本,但工作正常)。
目前,渲染,当我用这个
doc.MediaBox.String = pageSize;
doc.Rect.String = pageSize;
doc.AddImageHtml(html, true, width, disableCache);
其中页面尺寸为“A4”且宽度在addimagehtml通话设置为800。
我已经尝试在设置页面大小并将宽度设置为addimagehtml调用800之后将doc.Rect.Width设置为600,但图像仍呈现错误。
还有什么我不见了?
编辑:页面转换的 HTML是这样的:
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Workpack</title>
<style>
body { font-family: Arial, Helvetica, sans-serif; }
</style>
</head>
<body style="border: 1px solid black;">
<div style="height: 1100px;">
<div style="position: absolute; top: 50%;">
<div style="text-align: center; width: 780px;" >
<div>
<% if (!string.IsNullOrWhiteSpace(Model.CompanyLogo)){%>
<img src="<%: Url.ToFullyQualifiedUrl(Model.CompanyLogo) %>"/>
<% } %>
</div>
<div>
<h1><%: Model.PlantName %></h1>
</div>
<div style="font-size: 15pt; font-weight: bold;">
<h1><%: Model.WorkpackTitle %> - <%: Model.WorkPackNumber %></h1>
</div>
</div>
</div>
</div>
</body>
</html>
我也尝试设置addimagehtml宽度和rect.width都相同,以595和800没有变化 – 2012-04-04 11:40:57
你能不能只使用doc.rendering选项,并设置PDF可72 dpi ?? – davethecoder 2012-04-17 21:13:41