2017-12-30 54 views
0

私は、コンボボックスの内容をPDFsharpのテキストに変換して印刷しようとしています。残念ながら、すべての "✓"は "?"になります。私はUnicodeを使ってみましたが、何も変わりません。PDFsharp認識できない文字は「?」と表示されます。

私はこれを使用しています。

For Each cbx In Crt.Controls.OfType(Of ComboBox) 
     If cbx.Visible = True Then 
      Using Gra As XGraphics = XGraphics.FromPdfPage(Pg(Doc.PageCount - 1)) 
       Dim tf As Layout.XTextFormatter = New Layout.XTextFormatter(Gra) 
       Dim x = cbx.Location.X * WScale 
       Dim y = cbx.Location.Y * HScale 
       Dim w = cbx.Width * WScale 
       Dim h = cbx.Height * HScale 
       Dim Brush As XBrush = New XSolidBrush(XColor.FromArgb(cbx.BackColor.ToArgb)) 
       Dim xrect As New XRect(x, y, w, h) 
       Gra.DrawRectangle(Brush, xrect) 
       Dim options As XPdfFontOptions = New XPdfFontOptions(PdfFontEncoding.Unicode, PdfFontEmbedding.Always) 
       Dim xFt As New XFont("Times New Roman", 7, XFontStyle.Regular, options) 
       tf.Alignment = Drawing.Layout.XParagraphAlignment.Justify 
       tf.DrawString(cbx.Text, xFt, XBrushes.Black, xrect, XStringFormats.TopLeft) 
      End Using 
     End If 
    Next 

答えて

0

「✓」という文字は、選択した「Times New Roman」フォントに含まれていない可能性があります。したがって、表示されません。

「Times New Roman」に含まれる文字のみを使用するか、「✓」が必要な場合は適切なフォントを使用してください。

+0

「Times New Roman」から「Microsoft Sans Serif」に変更してみましたが、これはティックが表示されるフォントです。私はまたいくつかの他のフォントを試してみましたが、何も動作しません。代わりに?ボックスになります – Kimberly

+0

ここに投稿したチェックマーク(Unicode 2713)は "Segoe UI Symbol"に表示されますが、 "MS Sans Serif"ではなく "Times New Roman"では表示されません。自分のコンピュータに「Microsoft Sans Serif」はありません。 –

関連する問題