-1
我正在使用wkHTMLtoPDF,並且我想根據HTML中標題的長度更改PDF的方向,但我不確定這是否是正確的方式。使用MeasureString的PDF橫向排列
private const double A4Width = 2480; // A4 pixel width
的字體結石景觀檢測方法
private bool IsLandscape(string html)
{
int start = html.IndexOf("<th>");
int end = html.LastIndexOf("</th>") - start;
string tableHeadings = html.Substring(start, end).Replace("<th>", string.Empty).Replace("</th>", string.Empty);
FontFamily fontFamily = new FontFamily("Arial");
Font font = new Font(fontFamily, 13);
var size = MeasureString(tableHeadings, font);
if(size.Width > A4Width)
{
return true;
}
return false;
}
方法
private SizeF MeasureString(string content, Font font)
{
SizeF result = SizeF.Empty;
using (var image = new Bitmap(1,1))
{
using (var g = Graphics.FromImage(image))
{
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
result = g.MeasureString(content, font, int.MaxValue, StringFormat.GenericTypographic);
}
}
return result;
}
注:此代碼庫中的所以這是我用this問題來衡量字符串的原因。
更新
要短:
我要找實施問題的最佳實踐。
問題總結:
我從HTML構建有一個表裏面的PDF文件。 我得到表格列(例如:Col1,Col2)並刪除標籤(例如:Col1Col2)。 接下來,我想計算該字符串結果的大小(以px爲單位)(使用具有指定文本大小的字體),並且如果該大小超過A4縱向大小,則會將PDF旋轉到橫向。
嗨,對不起,請你延長你的問題,我不明白你的問題。你是否正在尋找一個完美的最佳實踐? – Payedimaunt
我已經更新了這個問題。隨意問,如果你不明白的東西。謝謝! –
我還沒有找到確切的確切解決方案,但下面我找到了一些關於如何找到實際可打印區域的信息。 我希望它能幫助你 – Payedimaunt