2010-03-12 68 views
1

我有一個函數來創建一個PDF,它應該返回bitarray。下面是代碼類型1維數組的值不能轉換爲system.collections.bitarray

Public Function GenPDF() As BitArray 
     Dim pdfdoc1 As BitArray 

     Dim doc As New Document(iTextSharp.text.PageSize.LETTER, 10, 10, 42, 35) 
     Try 
      Dim MemStream As New MemoryStream 
      Dim wri As PdfWriter = PdfWriter.GetInstance(doc, MemStream) 
      'Open Document to write 
      doc.Open() 

      'Write some content 
      Dim paragraph As New Paragraph("This is my first line using Paragraph.") 
      Dim pharse As New Phrase("This is my second line using Pharse.") 
      Dim chunk As New Chunk(" This is my third line using Chunk.") 
      ' Now add the above created text using different class object to our pdf document 
      doc.Add(paragraph) 
      doc.Add(pharse) 
      doc.Add(chunk) 
      pdfdoc1 = MemStream.GetBuffer() 
     Catch dex As DocumentException 


      'Handle document exception 

     Catch ex As Exception 
      'Handle Other Exception 
     Finally 
      'Close document 
      doc.Close() 

     End Try 

但它在該線pdfdoc1引發錯誤= MemStream.GetBuffer()類型1維陣列的 值不能被轉換爲system.collections.bitarray 請幫幫

回答

0

BitArray的BitArray類的MSDN文檔表示類似的布爾值的數組的內容:

管理比特值,其被表示爲布爾值的緊湊陣列,其中真指出第e位打開(1),false表示該位關閉(0)。

雖然你可能會解釋這意味着它存儲1和0,但它真正說的是它存儲了True和False。另一方面,MemoryStream.GetBuffer()返回字節數組。所以,兩者不兼容,因爲字節不是布爾值。

試試這個:

Public Function GenPDF() As Byte() ' Don't forget to change your return type. 
    Dim pdfdoc1 As Byte()   ' Changed this to the correct type. 
    Dim doc As New Document(iTextSharp.text.PageSize.LETTER, 10, 10, 42, 35) 
    Try 
     Dim MemStream As New MemoryStream 
     Dim wri As PdfWriter = PdfWriter.GetInstance(doc, MemStream) 
     'Open Document to write 
     doc.Open() 

     'Write some content 
     Dim paragraph As New Paragraph("This is my first line using Paragraph.") 
     Dim pharse As New Phrase("This is my second line using Pharse.") 
     Dim chunk As New Chunk(" This is my third line using Chunk.") 
     ' Now add the above created text using different class object to our pdf document 
     doc.Add(paragraph) 
     doc.Add(pharse) 
     doc.Add(chunk) 
     pdfdoc1 = MemStream.GetBuffer() 
    Catch dex As DocumentException 
     'Handle document exception 
    Catch ex As Exception 
     'Handle Other Exception 
    Finally 
     'Close document 
     doc.Close() 
    End Try 
相關問題