-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