2012-03-16 48 views
1

請幫助我,我在內存流中創建一個PDF,我想通過這個流作爲utf字符串到Dropbox API上傳Put call,我使用spring.social與Dropbox進行通信。使用接受只有UTF的API上傳到DropBOX

  MemoryStream ms = new MemoryStream(); 
      Document document = new Document(PageSize.A4); 
      PdfWriter writer = PdfWriter.GetInstance(document, ms); 
      iTextSharp.text.Image img = text.Image.GetInstance(CurrRecipt.imgurl); 
      writer.CloseStream = false; 
      document.Open(); 
      document.Add(img); 
      document.Close(); 

當我使用Encoding.GetString或Utf8.convert將流轉換爲字符串時,Pdfis不可讀。 因爲我的spring rest框架無法將其轉換爲Http請求體,所以我無法將其作爲byte []數組傳遞。

當我從磁盤讀取PDF到流中並將此流轉換爲字符串並寫入新的pdf文件時,觀察到相同的行爲。

回答

0

System.Text.Encoding.GetBytes方法用於將.NET的字符串實現轉換爲特定格式的原始字節數組。 PDFs是二進制文件,所以使用字符串轉換器是沒有意義的。

當Dropbox的這樣說:

每個字符串傳遞,並從Dropbox的API需要是UTF-8編碼

他們談論的命令本身,你送,不數據。只要您堅持使用基本的低128個ASCII字符(英文字母,數字,標點等),那麼您通常不必擔心這一點,因爲這些映射與Unicode一對一映射並且以相同的方式表示使用UTF-8。

相關問題