C# PrintDocument 文字旋轉列印 範例

C# PrintDocument 文字旋轉列印 範例

C# PrintDocument 文字旋轉列印 範例

資料來源: chatgpt

code

using System;
using System.Drawing;
using System.Drawing.Printing;
using System.Windows.Forms;

namespace PrintRotationExample
{
    public partial class Form1 : Form
    {
        private PrintDocument printDocument;

        public Form1()
        {
            InitializeComponent();

            // 建立 PrintDocument
            printDocument = new PrintDocument();
            printDocument.PrintPage += PrintPageHandler;

            // 建立按鈕觸發預覽
            Button printButton = new Button
            {
                Text = "列印預覽",
                Location = new Point(10, 10),
                AutoSize = true
            };
            printButton.Click += (s, e) =>
            {
                PrintPreviewDialog preview = new PrintPreviewDialog
                {
                    Document = printDocument,
                    Width = 800,
                    Height = 600
                };
                preview.ShowDialog();
            };

            Controls.Add(printButton);
        }

        private void PrintPageHandler(object sender, PrintPageEventArgs e)
        {
            Graphics g = e.Graphics;
            Font font = new Font("Arial", 16);

            // === 第一行:正常列印 ===
            string text1 = "這是正常方向的文字(第1行)";
            g.DrawString(text1, font, Brushes.Black, 100, 100);

            // === 第二行:旋轉90度列印 ===
            string text2 = "這是旋轉90度的文字(第2行)";
            // 將原點移到 (300, 200)
            g.TranslateTransform(300, 200);
            // 旋轉90度
            g.RotateTransform(90);
            // 在旋轉後的座標系列印
            g.DrawString(text2, font, Brushes.Blue, 0, 0);
            // 還原變換
            g.ResetTransform();

            // === 第三行:正常方向列印 ===
            string text3 = "這是恢復正常方向的文字(第3行)";
            g.DrawString(text3, font, Brushes.DarkGreen, 100, 300);
        }
    }
}

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *