當我使用轉換時,我的打印輸出看起來不像打印預覽 (My printout doesn't look like the print preview when I use a Transform)


問題描述

當我使用轉換時,我的打印輸出看起來不像打印預覽 (My printout doesn't look like the print preview when I use a Transform)

I'm trying to print out a DataGridView using a PrintDocument.  In my PrintPage event handler, I use the e.Graphics object to draw some grid lines, then print some text in the "cells" created ‑‑ as an aside, this really should have been done by Microsoft, but I digress.

Anyway, this works just fine.  The PrintDocument is tied to a PrintPreviewDialog, and when I open it, the DGV is rendered correctly.  The user can click the Preview dialog's print button and get a printout.  My problem is that sometimes the DGV is too wide for the page, so I'd like to be able to scale it (horizontally only) to fit.  I'm calling

e.Graphics.ScaleTransform(printableWidth / gridWidth)

before I actually start drawing anything.  This makes the preview look exactly the way I want it to, but for some reason, the actual printout looks exactly like it did before I added the code for scaling ‑‑ if the report is too wide, it just falls right off the side of the page!

Is there some difference between the way that a PrintPage event is handled for preview versus how it's sent to the printer?  Would my run‑of‑the‑mill PostScript office laser printer not be able to handle the ScaleTransform function?  I would think it should just blindly print what's sent to it, but maybe there's more processing involved than I thought.

‑‑‑‑‑

參考解法

方法 1:

OK, I found my problem ‑‑ I thought I was calling ScaleTransform for each page, but it turns out it was only actually executing on the first call to the PrintPage handler.  Subsequent calls were skipping over the line due to a conditional it was wrapped in.  So a word to the wise ‑‑ make sure that if you want to transform your printout, you do it independently for every page.

(by CodererCoderer)

參考文件

  1. My printout doesn't look like the print preview when I use a Transform (CC BY‑SA 3.0/4.0)

#printing #datagridview #winforms #.net






相關問題

是否可以創建網頁打印視圖的 PDF? (Is it possible to create a PDF of a webpage's print view?)

使用 PHP 打印到共享的 windows 打印機 (Linux PHP Server) (Using PHP to print to a shared windows printer (Linux PHP Server))

printf 和自定義類 (printf and custom class)

Firefox 無法訪問同一域上的 iframe 打印 (Firefox can't access iframe print on the same domain)

在python 3中動態打印一行 (Printing a line dynamically in python 3)

用於打印 div 的 JS 函數 - 在 Chrome 中不起作用? (JS function to print div - Doesn't work in Chrome?)

進程 WaitForExit 不等待 (Process WaitForExit not waiting)

你能給我打印屏幕並在javascript或flash中轉換為jpg的功能嗎 (Could you please give me the function of taking print screen and convert in to jpg in javascript or flash)

當我使用轉換時,我的打印輸出看起來不像打印預覽 (My printout doesn't look like the print preview when I use a Transform)

如何在 C# 中使用 PrintDialog 打印文檔 (How to print a document using PrintDialog in C#)

MKMapView 遮擋是否剔除它的註釋? (Does MKMapView occlusion cull it's annotations?)

在網絡環境中從 Brother TD-4100N 打印機檢索打印機狀態 (Retrieving the printer status from the Brother TD-4100N printer in a network environment)







留言討論