我有一个模板,我用来打印标签,我目前正在做的是模板的可变部分上的Replace()并按原样打印。 打印后恢复原始模板的最佳方法是什么?手动还原所有更改?最初没有修改模板但是创建了我修改,打印和删除的副本?
模板如下:
data1 : $1
data2 : $2
data3 : $3
data4 : $4
然后替换()+打印:
string text = File.ReadAllText(filePath);
text = text.Replace("$1", textBoxNumOF.Text);
text = text.Replace("$2", designation);
text = text.Replace("$3", textBoxNumOF.Text.Substring(textBoxNumOF.Text.Length - 4));
text = text.Replace("$4", "1");
File.WriteAllText(filePath, text, UTF8Encoding.UTF8);
PrintDialog pd1 = new PrintDialog();
pd1.PrinterSettings = new PrinterSettings();
EnvoiImpression.SendFileToPrinter(@"Datamax-O'Neil H-4310 (Copie 1)", filePath);
答案 0 :(得分:3)
读取模板并将发送到打印机的输出写入windows临时目录中的临时文件中。
请参阅以下功能:
public static string GetTempFile()
{
// get temporary path
var tempPath = Path.GetTempPath();
// get temporary filename
string tempFileName = Path.GetRandomFileName();
//combine
return Path.Combine(tempPath, tempFileName);
}
这样,您无需还原模板并遵守Windows上临时文件的规则。我建议你记住在程序/方法成功后从磁盘上再次删除所有临时文件的文件。
功能
EnvoiImpression.SendFileToPrinter(@"Datamax-O'Neil H-4310 (Copie 1)", filePath);
我很遗憾地不知道。但也许还有一个超载接受一个流?如果是这样,您可以在MemoryStream中编辑模板,甚至不需要写入磁盘。