如何在c#中打印文本到文档而不需要手动格式化
本文关键字:文档 不需要 格式化 文本 打印 | 更新日期: 2023-09-27 18:19:23
在我不想使用打印类和手动放置文本,说drawstring或drawline或绘制矩形。是否有格式化工具可以将内容以格式化的方式输出到打印机上?例如:
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);
}
在上面的代码中,我试图手动放置内容。因为我只知道文本可能出现的大致位置,但不知道确切的位置,所以我必须每次检查输出并调整代码以使文本出现在正确的位置。
那我还有别的办法吗?
当你创建流阅读器时,你需要添加一个布尔值[TRUE],这将使流阅读器在初始化时格式化文件。如果该文件不存在,它也会创建该文件。
的例子:
StreamWriter sw = new StreamWriter(filePath, true);
你也可以使用这个简单的函数,并在你想要格式化文件的地方添加它
的例子:
private void FileCheck(string fp)
{
if (File.Exists(fp))
{
File.Delete(fp);
File.Create(fp);
}
}
这不是那么有效(代码很糟糕,我知道:p)。