Vb.net 我打印的文本包含多个“\&引用';但是\S";变成了",;1“;

Vb.net 我打印的文本包含多个“\&引用';但是\S";变成了",;1“;,vb.net,text,printing,componentone,Vb.net,Text,Printing,Componentone,因此,我的表单上有一个C1TrueDBGrid(这是一个ComponentOne控件),我给用户打印网格内容的选项 打印时,我会包含一个标题和一些文本。这是我的打印代码: Dim dlgPrint As New PrintDialog dlgPrint.ShowDialog() dgvList.PrintInfo.PrintEmptyGrid = False dgvList.PrintInfo.PageHeader = txtDirectory.Text &am

因此,我的表单上有一个C1TrueDBGrid(这是一个ComponentOne控件),我给用户打印网格内容的选项

打印时,我会包含一个标题和一些文本。这是我的打印代码:

    Dim dlgPrint As New PrintDialog
    dlgPrint.ShowDialog()

    dgvList.PrintInfo.PrintEmptyGrid = False
    dgvList.PrintInfo.PageHeader = txtDirectory.Text & Environment.NewLine & "Search Term: " & txtSearch.Text & Environment.NewLine
    dgvList.PrintInfo.PageSettings.Landscape = True
    dgvList.PrintInfo.WrapText = C1.Win.C1TrueDBGrid.PrintInfo.WrapTextEnum.Wrap
    dgvList.PrintInfo.RepeatColumnHeaders = True

    dgvList.PrintInfo.Print(dlgPrint.PrinterSettings)

    dlgPrint.Dispose()
我相信您可以想象,Text包含目录的路径,其中包括反斜杠\。实际打印的内容将\S的实例转换为1

例如:txtDirectory.Text=\\Server02\Users\Me\J\Star

打印的页面=\1erver02\Users\Me\J1tar

“\S”是“1”的打印机命令还是其他命令?如果是这样的话,有没有列出所有这些命令的清单?不管怎样,我如何让它打印实际文本


谢谢大家!

您正在将该文本设置为页眉,
\S
是返回子页面总数的特殊字符,在示例中为“1”。您需要对该页列表中的任何字符进行双重转义。

更新已发布到

因此,我所做的只是将要打印的字符串分配给变量
printText
,然后相应地替换这些特殊字符:

    printText.Replace("\t", "\\t")
    printText.Replace("\p", "\\p")
    printText.Replace("\P", "\\P")
    printText.Replace("\g", "\\g")
    printText.Replace("\G", "\\G")
    printText.Replace("\s", "\\s")
    printText.Replace("\S", "\\S")
只需注意“\\t”还没有像其他人一样工作……他们正在研究它


感谢@DonBoitnott提供原始链接

谢谢你找到那个!但是,我需要“双重转义”这些类型的字符…如何,确切地说?C1似乎没有采用一种明显的方式来转义这些字符。监视可能的解决方案。