如何在 PrintPreviewDialog 中呈现扩展的 unicode 字符

How to render extended unicode character in PrintPreviewDialog

我想显示 (a WIDE-HEADED LEFTWARDS HEAVY BARB ARROW Symbol) in a PrintDocument。它没有正确呈现;它只显示一个框。使用 Windows Forms with vb.net 4.6; Visual Studio 2017 .

我知道我的字符和字体是正确的,因为它显示在表单上的按钮中很好。然而在 PrintPreviewDialog 中它不会正确呈现。我需要做什么?

Public WithEvents Doc As New PrintDocument

Public Sub ShowDialog()

    'page settings
    Me.Doc.DefaultPageSettings = ... set letter size, default printer, margins
    Me.Doc.PrinterSettings = ...default printer
    Me.Doc.DefaultPageSettings.PaperSize.RawKind = PaperKind.Letter
    
    'show dialog
    Dim dlgPreview As New PrintPreviewDialog
    dlgPreview.Document = Me.Doc
    dlgPreview.WindowState = FormWindowState.Maximized
    dlgPreview.ShowDialog()

End Sub

Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As PrintPageEventArgs) Handles Doc.PrintPage

    Dim arrow As String = Char.ConvertFromUtf32(&H1F87A)
    Dim f As New System.Drawing.Font("Microsoft Sans Serif", 11, FontStyle.Regular)
    e.Graphics.DrawString(arrow, f, Brushes.Black, 100, 100)

End Sub

通过遍历我安装的所有字体,我找到了显示正确字符的字体。在我的例子中是“Segoe UI Symbol”。