我们正在使用 PDFsharp 从数据库中即时创建 PDF 文档。 .
我需要知道计算文本区域高度的最佳方法关于使用的字体和可用宽度。
我需要知道高度,以便在需要时处理分页符。
PdfSharp.Drawing.XGraphics 对象有一个 MeasureString 方法,可以返回您需要的内容。
var pdfDoc = new PdfSharp.Pdf.PdfDocument();
var pdfPage = pdfDoc.AddPage();
var pdfGfx = PdfSharp.Drawing.XGraphics.FromPdfPage(pdfPage);
var pdfFont = new PdfSharp.Drawing.XFont("Helvetica", 20);
while (pdfGfx.MeasureString("Hello World!").Width > pdfPage.Width)
--pdfFont.Size;
pdfGfx.DrawString("Hello World!", pdfFont
, PdfSharp.Drawing.XBrushes.Black
, new PdfSharp.Drawing.XPoint(100, 100));
这应该对您有所帮助。请考虑到我没有测试这段代码,因为我是为了提供帮助而即时编写的。它可能包含一些编译时错误,但您可能会明白。
我是一名优秀的程序员,十分优秀!