This is a migrated thread and some comments may be shown as answers.

How to pass docx as byte[]

6 Answers 331 Views
Editor
This is a migrated thread and some comments may be shown as answers.
Stefania
Top achievements
Rank 2
Stefania asked on 09 Mar 2015, 09:17 AM
Hi,
How can I convert a radeditor into byte[]?
I need to pass something to my webservice and then save it as docx.
Is it possible?
Thanks

6 Answers, 1 is accepted

Sort by
0
Ianko
Telerik team
answered on 11 Mar 2015, 06:32 AM
Hi Stefania,

The RadEditro's content always returns String value. Therefore, the answer is to convert the string into a byte array.

This on other hand is a general .NET matter. I suggest looking for the answer in public forums and MSDN resources related to general C# or VB techniques. After a quick search, I found this thread, which might help you continue further your research--How to convert the string to byte in c# (https://social.msdn.microsoft.com/Forums/vstudio/en-US/08e4553e-690e-458a-87a4-9762d8d405a6/how-to-convert-the-string-to-byte-in-c-).

Regards,
Ianko
Telerik
 

Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.

 
0
Stefania
Top achievements
Rank 2
answered on 13 Mar 2015, 10:52 AM
Hi,
I tried to do this:

<telerik:RadEditor ID="editor1" runat="server" EditModes="Design">   </telerik:RadEditor>

On save button
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
byte[] docBytes = encoding.GetBytes(editor1.Content);
myService.Save(docByte);

and then in my webservice
using (FileStream fs = new FileStream(GetAttachmentsPath() + filename, FileMode.Create))
{
        fs.Write(docBytes.Value, 0, docBytes.Value.Length);
        fs.Flush();
        fs.Close();
}

When I open the .docx this is the result

<p>Test</p>
<img alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA0IAAAGxCAIAAADApZG9AAAgAElEQVR4nOy951cbWZ+oW/wjZ635fmbds9a5E87MOXfunZlzXrvfxn6N3+7pZLcjtrvdbrvd3QZjY4IDwQknMtjkKAQiCUlVKglEEkESSQEkIZSIygE86H6ooFIpAzbQ3ns9i1Uq7dq1axtLD7+dIIGADwAAPjRSqcRoNG5vb29vb5tMJqlUuu9VAgAAAIBAwJ+bm7VYLNvb29vb73U67fDwULRLEIKohZM5YYEAju2SCIXQL0cFfGjfmw8A+BQAGgcAAAAHk51onBAWCGGBMFrhWLbY7E1IIBCgAjzRbgc0DgDYJ4DGAQAAwMEEaBwAAIgC0DgAAAA4mOywU1WIhNQ4FPuJ8gM7Q3fWnUq5XUAhMAHQOADgowA0DgAAAA4m8WscHSHlGBXyBX6NI8/vRuOCwINzQOMAgI8F0DgAAAA4mOyxxmE/6RoXEyjKR9EIV9EmTACNAwA+FkDjAAAA4GByqDSOnPGK97FC+958AMCnANA4AAAAOJjsRuOEgQ63S6JrHNGXSgLte/MBAJ8CQOMAAADgYLL7aNzHAmgcALBPAI0DAACAg0mcGocIBIgARYQoLER5QpTXj/KEAcBCARItRIeVwOtHuf0oV4jCAhQRCLAyYbwQFA6a4go0DgDYJ4DGAQAAwMEkTo2DhQLeAMoZ4veIkY4xpG0caRtD2kcR1ii/Y4TPGuZ3D6AcoQCOWAgiQjlipEOKNEuRlhG0R4RyRALOML9nlN81irBG+V3D/J4BARdoHABwIAAaBwAAAAeT+DQO5Q2g7FF+l4TXKG55NlSd0V+eyitK5RTfEbzLHmp8MthWOMRjDgg4qICPClCUmPRAAREIeGKkfaQhV1T4g6jop7Ged6NIp5jPknFrkXcP+0ruoDW5U7z6EX5nP8oLuFBIj89B+958AMCnANA4AAAAOJjEpXH9KGeY3zXW1yBueSoq/GHk5ZnxN+dHi34aKr4xUv7bUOVt/tusIXajSMAWoHC/gDeAckR89iCBiN83gPYNoGwZ3DBeelWU8S+DWf82zXwq4zVO8erVva/gZxe67/+H4OUP6r6iSV7LML93AOWKUM4gv2+Qzx5EiXLQvgGUM4ByoH1vPgDgUwBoHAAAABxMYtc4oYAv4rMnkLYxZiG34EfkfuL0q/8wN/281pNj7H2u6sgT199nl2eK2I2Yb40iHWJOk7inZrS7arS7aoxdN8FtHkPaRpGOqe4S2ZtTkrv/beref1fWp86yXsx2FOgY6UN5f0Uzjow+/UbLvC/pLBVzmsVIxwTCHO9rpJYzzmseQ9pHkQ5o35sPAPgUABoHAAAAB5O4NG6Q3zvFa5I05fY++BLNOrJQdmajK13fW6DilE9zqye4DUMchojfO8hnjyPMub5KcV0m/PJqT97Z3rxzotJfpxiPldxKWV8159WNgaw/Td392+m7/1X04HNezjdwzleiB38eyviXoXv/S5T5b4KcJFb+ZWHdEzm3eqGvZLwmA8HKyT8nKv11mpGv6quQ9VVD+958AMCnANA4AAAAOJjEpXFD/N4pXpO0JZ+b+x2afXTiWdJcxaWpujRJa76kq0TCqx9DmINozzC/c7K3aqr+7mDB6dFX56RlVyWlP4qefDtRckXR+kDRVylrfih7dnL67t/Opv/XhdKzqppfVTU3dW8vTDz8t5F7/3My76i6

.....
/>

0
Stefania
Top achievements
Rank 2
answered on 16 Mar 2015, 09:53 AM
Hi,
I found the solution but I still have a problem with the copy and pasted image

private Byte[] contentEditor ;
 
 protected void editor1_ExportContent(object sender, EditorExportingArgs e)
        {
           ExportType exportType = e.ExportType;
 
            if (exportType == ExportType.Word)
            {
                string exportedOutput = e.ExportOutput;
                Byte[] output = Encoding.Default.GetBytes(exportedOutput);
 
                DocxFormatProvider docxProvider = new DocxFormatProvider();
                RadFlowDocument document = docxProvider.Import(output);
 
                Header defaultHeader = document.Sections.First().Headers.Add();
                Paragraph defaultHeaderParagraph = defaultHeader.Blocks.AddParagraph();
                defaultHeaderParagraph.TextAlignment = Alignment.Right;
                defaultHeaderParagraph.Inlines.AddRun("This is a sample header.");
 
                Footer defaultFooter = document.Sections.First().Footers.Add();
                Paragraph defaultFooterParagraph = defaultFooter.Blocks.AddParagraph();
                defaultFooterParagraph.TextAlignment = Alignment.Right;
                defaultFooterParagraph.Inlines.AddRun("This is a sample footer.");
 
               contentEditor = docxProvider.Export(document);
            }
            e.Cancel = true;
        }
 
 protected void SendButton_Click(object sender, EventArgs e)
        {
            Dictionary<string, byte[]> files = new Dictionary<string, byte[]>();         
            editor1.ExportToDocx();        
            files.Add(editor1.ExportSettings.FileName+".docx", contentEditor);
etc...
myService.Save(...);
}

I tried on your demo and it seems there is the same problem
http://demos.telerik.com/aspnet-ajax/editor/examples/import-export/docx-import-export/defaultcs.aspx

When you open the exported docx the image is 1px * 1px

How can I keep the right size of the image?
Thanks
0
Ianko
Telerik team
answered on 16 Mar 2015, 11:03 AM
Hi Stefania,

On my end exporting of images occurs as expected.

It would be helpful if you could provide more details about the the source of the pasted images, how it is pasted, and if possible to described the problem in steps, so to be able to accurately understand the situation.

Regards,
Ianko
Telerik
 

Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.

 
0
Stefania
Top achievements
Rank 2
answered on 16 Mar 2015, 01:35 PM
This is what I'm doing:
- Press "stamp" on the keyboard
- CTRL+V on the demo

or instead of "stamp" button using the window capture instrument and then press the copy button

- Export docx
- open the saved file with word 2003 and 2007

0
Ianko
Telerik team
answered on 19 Mar 2015, 07:41 AM
Hello Stefania,

Thank you for getting back with these details.

The encountered situation is more or less expected. The browser can render the base64 image with proper size. Although, MS Word content needs specific width and height values to render the image. 

Therefore, a possible solution is to implement either  Note that in order the image to be rendered in MS Word, the DOM Width and Height attributes should used.

Regards,
Ianko
Telerik
 

Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.

 
Tags
Editor
Asked by
Stefania
Top achievements
Rank 2
Answers by
Ianko
Telerik team
Stefania
Top achievements
Rank 2
Share this question
or