PrintDocument를 사용하여 DataGridView를 인쇄하려고합니다. 내 PrintPage 이벤트 핸들러에서 e.Graphics 객체를 사용하여 그리드 선을 그린 다음 "셀"에 일부 텍스트를 인쇄합니다. 제쳐두고, 이것은 Microsoft에서 수행 한 것이어야합니다.변환을 사용할 때 내 인쇄물이 인쇄 미리보기처럼 보이지 않습니다.
어쨌든, 이것은 정상적으로 작동합니다. PrintDocument는 PrintPreviewDialog에 묶여 있으며, 이것을 열면 DGV가 올바르게 렌더링됩니다. 사용자는 미리보기 대화 상자의 인쇄 버튼을 클릭하여 인쇄물을 얻을 수 있습니다. 내 문제는 때때로 DGV가 페이지에 비해 너무 넓기 때문에 수평으로 만 맞춰서 크기를 조정할 수 있기를 바랍니다. 내가 실제로 전화를 걸기 전에
e.Graphics.ScaleTransform(printableWidth/gridWidth)
을 호출하기 전에 호출합니다. 이렇게하면 미리보기가 원하는대로 정확하게 표시되지만, 어떤 이유로 인해 실제 인쇄물이 스케일링을위한 코드를 추가하기 전과 완전히 똑같아 보입니다. 보고서가 너무 넓 으면 바로 옆으로 떨어집니다. 그 페이지!
미리보기를 위해 PrintPage 이벤트를 처리하는 방식과 프린터로 보내는 방식간에 약간의 차이가 있습니까? 내 평범한 PostScript 사무용 레이저 프린터가 ScaleTransform 기능을 처리하지 못할 수 있습니까? 나는 그것이 맹목적으로 인쇄 된 것을 인쇄해야한다고 생각 하겠지만, 생각했던 것보다 더 많은 처리가 필요할지도 모릅니다.