在VB 2010中格式化Writeline输出

时间:2012-03-14 21:29:34

标签: vb.net rtf

美好的一天,

我一直在寻找一种使用writeline / write(streamwriter)格式化输出的方法 使用RTF标记并想知道是否存在此语法(如果存在)。我还没有 能够找到一个资源,清楚地解释了如何“漂亮”输出发送到 文件。

我之所以要问是因为我想从我的程序中“打印”结果 一个文件,至少可以在可能的情况下居中,标记甚至加粗 无需用户去使用它。我想我看过Crystal Reports 将无法使用VB 2010 Express,坦率地说,只是想创建一个文件 输出

我遇到的问题是如何使输出看起来不像writeline那样 (你知道,writeliney-ish)更像是有人花时间写了一些写作线 看起来它做得很棒。

以下是一些代码,向您展示我正在尝试做的事情:

sw.Write("                    RATE QUOTATION ")
            sw.WriteLine("   ")
            sw.WriteLine("           ")
            sw.WriteLine(mycompanyname)
            sw.WriteLine(mycompanyaddress1 + ControlChars.Tab + "Phone:", companyphone)
            sw.WriteLine(mycompanyaddress3 + ControlChars.Tab + "Fax:", companyfax)
            sw.WriteLine(cityname, stateprovince, zippostal)
            sw.WriteLine("Visit us online at:", websiteaddress)
            sw.WriteLine("    ")
            sw.WriteLine("Quoted by:", contactname + " " + "E-mail:", contactemail)
            sw.Write("Date: ")
            sw.WriteLine(DateTime.Now)
            sw.WriteLine(" ")
            sw.WriteLine(("Customer Name:" + "   " + quotename.Text), "Company:" + "   " + quotecompany.Text + " " + "Customer E-mail:" + "   " + quoteemail.Text)
            sw.WriteLine(("Phone:" + "   " + quotephone.Text + ControlChars.Tab + "Fax:" + "   " + quotefax.Text))
            sw.WriteLine("  ")
            sw.WriteLine("Shipment Details:")

有没有办法以这样的方式控制writeline,你可以通过streamwriter创建一个RTF并指定格式化标签,如居中和粗体等?我正在尝试一种方法,以便在streamwriter启动它的业务并打印出我想要的内容时创建RTF头信息。我不认为有一种优雅的方式来创建PDF,所以我现在有点选择旧的学校输出。

提前致谢!

2 个答案:

答案 0 :(得分:0)

StreamWriter仅用于将数据写入流。没有理由知道RTF是什么。

如果您想使用StreamWriter,则需要自己计算RTF。

在线可能有各种RTF库会有所帮助。我建议谷歌搜索一些。

答案 1 :(得分:0)

正如所承诺的那样,开始玩一些代码并认为我会分享它,虽然我仍在试图弄清楚为什么vbNewLine不起作用。 :/

最初,我试图使用streamwriter来嵌入RTF代码,例如(\ rtf1)和(\ b)等......但是这些在我尝试的writeline语句中不起作用,例如:

writeline(“\ b这是粗体\ b0”)

因此,通过假装有一个richtext框(rtb),你可以创建一个允许字体格式化和其他文本格式化的文件(虽然仍然试图找出一些东西大声笑), 如果你关心输出如何出现在文件中,它可能是一个替代流写器。

Public Class Form1

Private Property richtextbox1 As Object

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim something As String
    Dim somethingelse As String
    Dim butwaittheresstillmore As String

    something = TextBox1.Text
    somethingelse = TextBox2.Text
    butwaittheresstillmore = TextBox3.Text

    Save1.InitialDirectory = "c:\users\shawn\desktop"
    Save1.FileName = " "
    Save1.Filter = " RTF file | *.rtf"
    Save1.ShowDialog()


    Dim rtb As New RichTextBox
    rtb.SelectionAlignment = HorizontalAlignment.Center
    rtb.Text = something & vbNewLine

    rtb.SelectionAlignment = HorizontalAlignment.Left
    rtb.Text = somethingelse + (" another field: ") + butwaittheresstillmore
    rtb.SelectAll()
    rtb.SelectionFont = New Font(New FontFamily("Arial"), 12, FontStyle.Regular,
    GraphicsUnit.Pixel)
    rtb.SaveFile(Save1.FileName)
End Sub

结束班

我想控制字体和对齐,这似乎可以解决问题,尽管我正在尝试使用“制表符”位置和换行符进行整理。我看到我可以对齐左,中,右。无论如何,我希望这可以帮助那些可能想要快速制作可以控制字体的文档的人。

谢谢!