Преобразование System.Drawing.Font в PdfSharp.Drawing.XFontC#

Место общения программистов C#
Anonymous
Преобразование System.Drawing.Font в PdfSharp.Drawing.XFont

Сообщение Anonymous »

Как правильно создать объект XFont, размер которого соответствует Font.Size?
У меня есть XGraphics, System.Drawing.Font с FontFamily «Tahoma» и размером 6.
Когда я создаю XFont, как в Например, я получаю очень большой текст на обработанной PDF-странице.
Я предполагаю, что модуль Font.Size iz Points, а XFont необходимо создавать с помощью «emSize».

Код: Выделить всё

    void PDFCreateObjectOnLabel(XGraphics graphics, ObjectBase formatObject, string objectText)
{
XStringFormat objFormat = new XStringFormat();
objFormat.Alignment = XStringAlignment.Center;
XFont xFont = new XFont(formatObject.Font.FontFamily.Name, formatObject.Font.Size);
graphics.DrawString(objectText, xFont, someBrush, someRect, objFormat);
}
Когда я пытаюсь создать XFont вот так:

Код: Выделить всё

XFont xFont = new XFont(new Font(formatObject.Font.FontFamily.Name, formatObject.Font.Size, formatObject.Font.Style));
Я получаю исключение «Шрифт должен использовать GraphicsUnit.World».
Когда я пытаюсь передать GraphincUnit.World, я получаю очень большой текст.
Параметр «formatObject» передается из другой сборки и это не мой код. Объект шрифта в «formatObject» содержит тип единицы измерения «Point».

Подробнее здесь: https://stackoverflow.com/questions/633 ... wing-xfont

Вернуться в «C#»