Dot-Net

根據可用寬度和字型計算文本高度?

  • October 11, 2016

我們正在使用PDFsharp從數據庫中即時創建 PDF 文件。

我需要知道根據使用的字型和可用寬度計算文本區域高度的最佳方法。

我需要知道高度,以便在需要時處理分頁符。

在 .NET 中,您可以呼叫 Graphics.MeasureString 來確定繪製文本的大小。

對,但是當使用 PDFsharp 時,您呼叫 XGraphics.MeasureString。

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));

這應該可以幫助你。請考慮到我沒有測試這段程式碼,因為我是為了提供幫助而即時編寫的。它可能包含一些編譯時錯誤,但您可能會明白。

引用自:https://stackoverflow.com/questions/901304