我正在使用该代码,它将使用网络打印机打印文档:
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文档中的格式。
Byte-Array来自哪里?
我正在使用Syncfusion-library(相关代码段):
... 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();
}
我可以在这做什么?
答案 0 :(得分:1)
我怀疑您可能没有在生产环境中安装字体(在Word文档中使用)。如果是这样,请在生产环境中安装所有使用过的字体以解决报告的问题。
如果您没有修改任何Word文档内容,则可以尝试以下代码。
// Open Word document using FileStream.
FileStream fileStream = new FileStream("input.docx", FileMode.Open);
// Copy file stream to MemoryStream.
MemoryStream memoryStream = new MemoryStream();
fileStream.CopyTo(memoryStream);
// Gets byte array from memory stream of file.
byte[] temp = memoryStream.ToArray();
如果您遇到同样的问题,那么输入文档中使用的字体可能不会安装在您的生产环境中,因此请安装所有使用过的字体来解决问题。
如果您没有遇到此方法中报告的问题,请与您的输入和结果Word文档分享您的代码以进一步验证。