还原文本文件中的替换

时间:2018-04-16 11:15:19

标签: c# replace printing

我有一个模板,我用来打印标签,我目前正在做的是模板的可变部分上的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);

1 个答案:

答案 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中编辑模板,甚至不需要写入磁盘。