所以我的表单上有一个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()正如我所能想象的那样,txtDirectory.Text包含目录的路径,其中包括反斜杠\。实际打印的内容将\S的实例转换为1。
例如: txtDirectory.Text =\Server02 02\Users\Me\J\Star
打印= \1erver02\Users\Me\J1tar的页面
"\S“是"1”之类的打印机命令吗?如果是这样的话,有没有列出所有这些命令的列表呢?不管怎样,我怎样才能让它打印出实际的文本?
谢谢!
发布于 2015-09-15 18:54:35
更新已经发布到这个ComponentOne论坛线程。
因此,我所做的就是简单地将要打印的字符串赋值给变量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“还没有像others...they正在调查的那样工作。
谢谢@DonBoitnott的原始链接!
发布于 2015-05-18 11:39:00
您正在将文本设置为PageHeader,而根据ComponentOne,\S是一个特殊字符,它返回示例中的子页面总数或"1“。您需要双转义该页列表中的任何字符。
https://stackoverflow.com/questions/30265501
复制相似问题