현재이 문제를 해결하기 위해 엄청난 양의 종이를 낭비하고 있습니다. 스택 패널, 테두리 및 텍스트 상자가있는 독 (Dock)이라는 Dockpanel이 있으며 전체 독을 한 페이지에 인쇄하려고합니다.DockPanel을 인쇄하여 페이지에 맞추기
Private Sub Button_Click_1(sender As Object, e As RoutedEventArgs)
'Define Printer Dialog
Dim dialog As New PrintDialog
'Define Printer Capabilities
Dim capabil As PrintCapabilities = dialog.PrintQueue.GetPrintCapabilities(dialog.PrintTicket)
'Scale content to capabilities of printer
Dim scale As Double = Math.Min(capabil.PageImageableArea.ExtentWidth/Dock.ActualWidth, capabil.PageImageableArea.ExtentHeight/
Dock.ActualHeight)
Dock.LayoutTransform = New ScaleTransform(scale, scale)
'Create a margin
Dim pagemargin As Integer = 20
'Define the size of the page
Dim pagesize As New Size(capabil.PageImageableArea.ExtentWidth - pagemargin, capabil.PageImageableArea.ExtentHeight - pagemargin)
Dock.Measure(pagesize)
'Resize dock to optimal page size
Dock.Arrange(New Rect(New Point(capabil.PageImageableArea.OriginWidth, capabil.PageImageableArea.OriginHeight), pagesize))
'Prompt and Print
If dialog.ShowDialog = True Then
dialog.PrintVisual(Dock, "Printed Page.")
End If
End Sub
나는이 문제를 이해하고 있지 않습니까? 내가이 문제에 접근해야하는 또 다른 방법이 있습니까?
EDIT : 내가 직면하고있는 문제는 도크가 올바르게 크기가있는 것처럼 보이지만 인쇄 할 때 거대한 왼쪽 여백과 아래쪽 여백이 있다는 것입니다. 여백을 조정 해 보았지만 시작점이 꺼져있는 것 같습니다. 이 페이지는 오른쪽 상단과 오른쪽 상단에서 잘린 상태입니다.
당신이 지금까지 얻은 것의 무엇이 잘못되었는지 자세히 설명해 줄 수 있습니까? – Daniel
@Doc 죄송합니다. 곧 업데이트 될 것입니다. – GamerJ5