0
我使用的代碼,這將使用網絡打印機打印文檔:使用C#Socket類和失去一個Word文件格式
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.NoDelay = true;
IPAddress ip = IPAddress.Parse(ip);
IPEndPoint ipEndPoint = new IPEndPoint(ip, someport);
socket.Connect(ipEndPoint);
socket.Send(_byteArray);
socket.Close();
該代碼工作,但我失去的格式,在我的Word文件。
字節數組來自哪裏?
我使用Syncfusion庫(相關代碼片段):
... someMethod(){
WordDocument word = new WordDocument();
//... some code
word.Save(myMemoryStream, FormatType.Docx);
_byteArray=myMemoryStream.ToArray(); //Comment on Syncfusion-library: "Writes the stream contents to a byte array, regardless of the System.IO.MemoryStream.Position"
word.Close();
}
我能做些什麼嗎?
使用TCP時,您不會丟失數據,這個問題可能與您如何獲取數據以及如何在接收端解釋它並未顯示給我們有關。 –
你確定byteArray包含word文檔,而不僅僅是文本? – BugFinder
如果你丟失了格式,那麼流默認爲Ascii編碼而不是UTF8編碼。它不會在您發佈的代碼中發生。 TCP不會修改數據。 – jdweng