2012-03-14 65 views
0

好日子,格式的WriteLine輸出在VB 2010

我一直在尋找一種方法使用的WriteLine /寫(StreamWriter的) 使用RTF標記來格式化輸出,不知道是否有這個語法,如果它存在。我沒有 能夠找到一個資源,清楚地說明如何「漂亮」的輸出發送到 文件。

爲什麼我問的原因是因爲我想從我的程序「打印」結果到 的是,在最起碼,將爲本,標籤,甚至加粗的一個文件,其中可能 ,而不需要用戶去並與之共存。我想我看到水晶報表 將不能用於VB 2010 Express,並且很坦白地說,只是想創建一個帶有 輸出的文件。

我遇到的問題是,如何才能讓輸出看起來不怎麼樣的WriteLine做到了 (你知道,writeliney-ISH)越來越像有人花時間做的WriteLine 看上去像是做了一件真棒。

下面是一些代碼告訴你什麼是我想要做的事:

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,所以我現在選擇舊的輸出。

在此先感謝!

回答

0

正如承諾,開始玩一些代碼,並認爲我會分享它,雖然我仍然試圖找出爲什麼vbNewLine不起作用。 :/

本來,我是想使用的StreamWriter嵌入RTF代碼,如(\ RTF1)和(\ B)etc..but這些都不是我試過的WriteLine語句,如內工作:

writeline(「\ b這是粗體\ b0」)

所以通過假裝有一個富文本框(rtb),您可以創建一個允許字體格式設置和其他文本格式的文件(儘管仍然試圖出了幾件事大聲笑), 如果你關心輸出如何出現在文件中,它可能是Streamwriter的替代品。

公共類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 

末級

我想控制字體和對齊,這似乎做的伎倆,雖然我試圖理清使用「標籤」的位置換行。我看到我可以對齊左,中,右。無論如何,我希望這有助於那些可能想要快速創建文檔的人來控制字體。

謝謝!

0

A StreamWriter是爲將數據寫入流而設計的。沒有理由應該知道RTF是什麼。

如果你想使用StreamWriter,你需要自己計算RTF。

可能有各種RTF庫在線,這將有所幫助。我建議使用Google搜索一些。

+0

是的,我見過一些庫,但從未見過任何對Streamwriter的引用。看到一些人編寫他們自己的文本編輯器或使用RTF文本框的例子,但沒有真正寫和格式化輸出,所以我要去試一試,讓每個人都知道。我更擔心的是,因爲writeline有一定的語法,嵌入RTF標記可能會變得粗糙,並想知道是否有人嘗試過這種方法呢?我稍後會做一些實驗並報告會發生什麼。我只是覺得令人沮喪的是,writeline打印出來的東西就像是1989年的東西或者是其他的東西。 – Shawn 2012-03-15 00:13:53