How to pass docx as byte[]

7 posts, 0 answers
  1. Stefania
    Stefania avatar
    107 posts
    Member since:
    May 2013

    Posted 09 Mar 2015 Link to this post

    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
  2. Ianko
    Admin
    Ianko avatar
    1535 posts

    Posted 11 Mar 2015 Link to this post

    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.

     
  3. UI for ASP.NET Ajax is Ready for VS 2017
  4. Stefania
    Stefania avatar
    107 posts
    Member since:
    May 2013

    Posted 13 Mar 2015 in reply to Ianko Link to this post

    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

    .....
    />

  5. Stefania
    Stefania avatar
    107 posts
    Member since:
    May 2013

    Posted 16 Mar 2015 in reply to Stefania Link to this post

    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
  6. Ianko
    Admin
    Ianko avatar
    1535 posts

    Posted 16 Mar 2015 Link to this post

    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.

     
  7. Stefania
    Stefania avatar
    107 posts
    Member since:
    May 2013

    Posted 16 Mar 2015 in reply to Ianko Link to this post

    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

  8. Ianko
    Admin
    Ianko avatar
    1535 posts

    Posted 19 Mar 2015 Link to this post

    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.

     
Back to Top
UI for ASP.NET Ajax is Ready for VS 2017