我想呈現一個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