如何在没有手动格式化的情况下将文本打印到c#格式的文档中?

如何在没有手动格式化的情况下将文本打印到c#格式的文档中?,c#,printing,C#,Printing,正如在中一样,我不想使用print类手动放置文本,比如drawstring、drawsline或draw rectangle。是否有一个格式化工具,我可以使用它以格式化的方式将内容输出到打印机上? 例如: void printDocument_PrintPage(object sender, PrintPageEventArgs e) { Graphics graphic = e.Graphics; Font font = new Font("Courie

正如在中一样,我不想使用print类手动放置文本,比如drawstring、drawsline或draw rectangle。是否有一个格式化工具,我可以使用它以格式化的方式将内容输出到打印机上? 例如:

void printDocument_PrintPage(object sender, PrintPageEventArgs e)
    {
        Graphics graphic = e.Graphics;
        Font font = new Font("Courier New", 12);
        float fontHeight = font.GetHeight();


        int startX = 10;
        int startY = 10;
        int offset = 40;

        graphic.DrawString("OPTIQUE INDIA", new Font("Times New Roman", 18), new SolidBrush(Color.Black), 250, startY);
        string name = fname.Text + " " + lname.Text;
        string Age = age.Text;
        string date = dateTimePicker1.Text;
        graphic.DrawString("Name : " + name, new Font("Courier New", 12), new SolidBrush(Color.Black), startX, startY + offset);
        graphic.DrawString("Age : " + Age, new Font("Courier New", 12), new SolidBrush(Color.Black), startX + 450, startY + offset);
        graphic.DrawString("Date : " + date, new Font("Courier New", 12), new SolidBrush(Color.Black), startX + 450, startY + offset * 2);

        startY += offset * 2 + 40;
        Brush brush = new SolidBrush(Color.Black);

        Pen blackPen = new Pen(brush, 4);
        graphic.DrawRectangle(blackPen, startX, startY, 750, 200);

   }
在上面的代码中,我试图手动放置内容。因为我只知道文本可能出现的大致位置,但不知道确切的位置,所以每次我都要检查输出并调整代码,以使文本出现在正确的位置


那么,还有其他方法可以做到这一点吗?

创建streamreader时,需要添加布尔值[TRUE],这将使streamwriter在初始化文件时格式化文件。如果文件不存在,它还将创建该文件

例如:

StreamWriter sw = new StreamWriter(filePath, true);
private void FileCheck(string fp)
{        
    if (File.Exists(fp))
    {
        File.Delete(fp);
        File.Create(fp);
    }
}
您还可以使用这个简单的函数,并将其添加到要格式化文件的位置

例如:

StreamWriter sw = new StreamWriter(filePath, true);
private void FileCheck(string fp)
{        
    if (File.Exists(fp))
    {
        File.Delete(fp);
        File.Create(fp);
    }
}

但这并不是很有效(而且代码很糟糕,我知道:p)。

请分享你做了什么。