LocalReport в WinForms Шрифт Squashed (сжатый) - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть приложение Winforms, которое внезапно начало неправильно отображать RDLC как на физических принтерах, так и на принтере в PDF. Он нацелен на .NET 4.5.2 и начал показывать это после обновления до 4.7.2 на прошлой неделе. Я также могу воспроизвести проблему на моей тестовой системе.

Примеры:

Правильно напечатано:

Correctly Printed

Неверно напечатано:

Incorrectly Printed

Я рендерим RDLC в MemoryStream и передаю его в PrintDocument.

Я изменил DPI PrintDocument и попробовал разные шрифты в RDLC

Любая помощь или точка в правильном направлении была бы отличной.

EDIT:

        Private Sub Export()
    Dim RL As PageLayout = CType(_RenderLayout, PageLayout)
    Dim deviceInfo As String = RL.GetDeviceInfo
    Dim warnings() As Warning = Nothing
    _streams = New List(Of Stream)()

    _report.Render("Image", deviceInfo, AddressOf CreateStream, warnings)

    Dim exportStream As Stream
    For Each exportStream In _streams
        exportStream.Position = 0
    Next
End Sub

Private Function CreateStream(ByVal name As String, ByVal fileNameExtension As String, ByVal encoding As Encoding,
 ByVal mimeType As String, ByVal willSeek As Boolean) As Stream
    Dim stream As Stream = New MemoryStream
    _streams.Add(stream)
    _streamCount += 1
    Return stream
End Function

Private Sub PrintPage(ByVal sender As Object, ByVal ev As PrintPageEventArgs)
        Dim pageImage As New Metafile(_streams(_currentPageIndex))
    ev.Graphics.TextRenderingHint = Drawing.Text.TextRenderingHint.ClearTypeGridFit
    ev.Graphics.DrawImage(pageImage, ev.PageBounds)
    _currentPageIndex += 1
    ev.HasMorePages = (_currentPageIndex < _streams.Count) 

End Sub

...