Welcome to the new EricWhite.com

Hi friends,

With the recent decision to shutter OpenXmlDeveloper.org, I will be focusing my efforts to support Open XML developers here at EricWhite.com.

Forums: I have set up forums on this web site, so that we have a convenient place to discuss Open XML specific questions.  I have set up forum categories based on my experience with OpenXmlDeveloper.org – there are fewer categories, which should make it easier to pick the appropriate forum for your questions. Feel free to suggest new forum categories. Forums link are in the sidebar. You will need to have an account here to post in the forums. Please feel free to create one. At the top of each forum, you can subscribe, which will send email notifying you of activity.

Content: I have moved much of the content from OpenXmlDeveloper.org to this web site. Over the next month or two, I’ll be moving the rest of the interesting content here.  In the process of moving this content over, I’ll be reviewing and updating it, making sure that it recommends current best practices for Open XML development.  In addition to moving the content over, I have created ‘Developer Centers’ around specific topics such as Open-Xml-PowerTools, DocumentAssembler, DocumentBuilder, PresentationBuilder, WmlToHtmlConverter, and HtmlToWmlConverter.

Blogging: I will be regularly blogging about my Open XML activities here.

Twitter: Follow me (@EricWhiteDev) on twitter to get the latest news about Open XML development and tools.

LinkedIn: Connect, especially if you are an Open XML developer.

I will continue to enhance and support Open-Xml-PowerTools – it is a ‘live project’, with interesting enhancements planned for the near future.  I consider that Open-Xml-PowerTools is perhaps 25% complete – there is an awful lot that we can do to make server-side Open XML document generation and processing easier.  My plans are firming up for the next round of enhancements – stay tuned – I’ll keep you posted.

We have done nowhere near enough with the Open-Xml-Sdk-for-JavaScript.  There are great advantages to processing Open XML with JavaScript – cross-platform – process in browser – process with NodeJs.  And should take advantage of TypeScript, I think.

I love document formats.  I love the capacity to create and process rich content that we have gained due to the standardization of the Open XML format.  We have made great progress over the years, and I am looking forward to continuing to advance the state-of-the-art of document generation and processing.

As an aside, one thing that I am going to enjoy a lot is moving off of the old version of Telligent Community Server that we were using for OpenXmlDeveloper.org – what a pain.  EricWhite.com is a WordPress site, updated to the latest version. It is a pleasure to move into a modern, blogging / content management platform.  The forums here are implemented using bbPress, which gives us a flexible, easy to use platform.

Cheers, Eric



  1. ron said,

    March 4, 2016 @ 8:36 am

    Good luck with the new site Eric.

  2. Eric White said,

    March 12, 2016 @ 1:54 am

    Thanks Ron, should be fun.

  3. mike said,

    March 4, 2016 @ 4:52 pm

    Hi Eric,

    Does OpenXmlPowerTools require WindowsManagementFramework to be installed as a prerequisite? I am getting a requirement for windows.management.infrastructure to be installed in the GAC when I include OpenXmlPowerTools in a clickonce installation.



  4. Eric White said,

    March 12, 2016 @ 1:52 am

    Hi Mike,

    What version are you using?

    There are some modules that are there only for the purposes of enabling integration with PowerShell. If you do not require enabling CmdLets to work, you can eliminate those modules without affecting the others. You can search for namespace. Or alternatively, if you are using only C# code, you can include just the files you need, which is better. Include the module you require, build, add modules that contained referenced types, and repeat. Only requires a couple of iterations.

    Cheers, Eric

  5. Email Spike OTO said,

    March 25, 2016 @ 7:42 am

    Regardless of the occasion, a catastrophe declaration begins the formal means of Business Continuity Plan.

  6. A Razak Subahan said,

    May 6, 2016 @ 9:06 pm

    Dear sir,

    I write my app in asp.net using vb. I tried you display DOCX file using xml…All is ok except that the to title area give me error says “BC30456: ‘CoreFilePropertiesPartDescendants’ is not a member of ‘DocumentFormat.OpenXml.Packaging.WordprocessingDocument’.

    Source Error:

    The SOurce Code
    Public Shared Sub ConvertToHtml(ByVal byteArray() As Byte, ByVal destDirectory As DirectoryInfo, ByVal htmlFileName As String)
    Dim fiHtml As New FileInfo(Path.Combine(destDirectory.FullName, htmlFileName))
    Using memoryStream As New MemoryStream()
    memoryStream.Write(byteArray, 0, byteArray.Length)
    Using wDoc As WordprocessingDocument = WordprocessingDocument.Open(memoryStream, True)
    Dim imageDirectoryFullName = fiHtml.FullName.Substring(0, fiHtml.FullName.Length – fiHtml.Extension.Length) & “_files”
    Dim imageDirectoryRelativeName = fiHtml.Name.Substring(0, fiHtml.Name.Length – fiHtml.Extension.Length) & “_files”
    Dim imageCounter As Integer = 0
    Dim pageTitle As String = CStr(wDoc.CoreFilePropertiesPartDescendants(DC.title).FirstOrDefault())

    Dim settings As New HtmlConverterSettings() With {.PageTitle = pageTitle, .FabricateCssClasses = True,
    .CssClassPrefix = “pt-“,
    .RestrictToSupportedLanguages = False,
    .RestrictToSupportedNumberingFormats = False,
    .ImageHandler = Function(imageInfo)

    Dim localDirInfo As DirectoryInfo = New DirectoryInfo(imageDirectoryFullName)
    If Not localDirInfo.Exists Then
    End If
    imageCounter += 1
    Dim extension As String = imageInfo.ContentType.Split(“/”c)(1).ToLower()
    Dim imageFormat As ImageFormat = Nothing
    If extension = “png” Then
    extension = “gif”
    imageFormat = imageFormat.Gif
    ElseIf extension = “gif” Then
    imageFormat = imageFormat.Gif
    ElseIf extension = “bmp” Then
    imageFormat = imageFormat.Bmp
    ElseIf extension = “jpeg” Then
    imageFormat = imageFormat.Jpeg
    ElseIf extension = “tiff” Then
    extension = “gif”
    imageFormat = imageFormat.Gif
    ElseIf extension = “x-wmf” Then
    extension = “wmf”
    imageFormat = imageFormat.Wmf
    End If
    ‘If Not imageFormat Then
    ‘ Return “”
    ‘ End If
    Dim imageFileName As FileInfo = New FileInfo(imageDirectoryFullName & “/image” & imageCounter.ToString() & “.” & extension)
    imageInfo.Bitmap.Save(imageFileName.FullName, imageFormat)
    Catch e1 As System.Runtime.InteropServices.ExternalException
    ‘ Return nothng
    End Try
    Dim img As XElement = New XElement(Xhtml.img, New XAttribute(NoNamespace.src, imageDirectoryRelativeName & “/” & imageFileName.Name), imageInfo.ImgStyleAttribute, If(imageInfo.AltText Nothing, New XAttribute(NoNamespace.alt, imageInfo.AltText), Nothing))
    ‘Dim img As [Return]
    End Function}
    Dim html As XElement = HtmlConverter.ConvertToHtml(wDoc, Settings)

    ‘ Note: the xhtml returned by ConvertToHtmlTransform contains objects of type
    ‘ XEntity. PtOpenXmlUtil.cs define the XEntity class. See
    ‘ for detailed explanation.

    ‘ If you further transform the XML tree returned by ConvertToHtmlTransform, you
    ‘ must do it correctly, or entities will not be serialized properly.

    Dim body = html.Descendants(Xhtml.body).First()
    body.AddFirst(New XElement(Xhtml.p, New XElement(Xhtml.a, New XAttribute(“href”, “/textxml.aspx”), “Go back to Upload Page”)))

    Dim htmlString = html.ToString(SaveOptions.DisableFormatting)

    File.WriteAllText(fiHtml.FullName, htmlString, Encoding.UTF8)
    End Using
    End Using
    End Sub

  7. A Razak Subahan said,

    May 8, 2016 @ 10:37 am

    thant you for your advise . I also have problem becauase when image jpeg will show when display but file stored image and xml show the link…Please advise thanls

  8. Pablo said,

    May 28, 2016 @ 4:12 pm

    Are there plans for WmlToHtmlConverter equivalent for PPTX?
    Are there other ways to convert PPTX to HTML or SVG?


  9. Rohit said,

    September 29, 2016 @ 4:26 am

    I am creating one slide PowerPoint file using open XML. I have tagged the placeholder in the PPT which i need to update programatically. I am able to find the placeholder and can update its value from the database.

    Now the problem is I need to display some HTML code which user has input using WYSIWYG editor in a same format as user has entered e.g. like in bullets.

    When i try to replace the place holder with the HTML text, the HTML text was pasted as is like all the tags etc.

    Below line is working fine when i need to paste simple plane text

    List textList = tableSlidePart.Slide.Descendants().Where(t => t.Text.Equals(“IntroText”)).ToList();
    foreach (DocumentFormat.OpenXml.Drawing.Text text in textList)
    text.Text = “Some Text”;

    But when i wanted to paste HTML into the placeholder it is treated as normal plain string.

    textList = null;
    textList = tableSlidePart.Slide.Descendants().Where(t => t.Text.Equals(“##DESCRIPTION##”)).ToList();
    foreach (DocumentFormat.OpenXml.Drawing.Text text in textList)
    text.Text = “Hello“;

    Any help or pointer would be appreciated. Thank you in advance.

  10. Eric White said,

    October 7, 2016 @ 4:27 pm

    Hi Rohit,

    There is no good way to import HTML into a PowerPoint slide, AFAIK.

    I have long contemplated writing an HtmlToPmlConverter module, similar to HtmlToWmlConverter. I already have much of the hard work done, i.e. a CSS parser, dom tree that applies the CSS, and so on. But this is a large project, and not on my radar right now.

    Sorry I don’t have a better answer for you, but right now I do not.

    Also, if you would be good enough to post on the forums on this site, would be more convenient. Also, you might get a response sooner – as I regularly check forums, but check for comments less often.

    Best, Eric

  11. Manognya said,

    December 6, 2016 @ 8:54 am

    I am using open xml to replace image in word header. But while all the operations are done and if i am opening the doc again then it is showing some error in the document.xml file.

    Please help me out.


  12. Arnold Curry said,

    December 16, 2016 @ 2:55 pm

    Hello Eric,

    I was wondering why I don’t see much effort in converting Microsoft PowerPoint presentations to HTML while I do see several Office Word documents to HTML. PowerTools manipulates .pptx files but doesn’t go the extra mile and convert to HTML. Do you plan on working on such an effort.

    Thank for your input,

  13. Eric White said,

    December 16, 2016 @ 4:08 pm

    @Arnold Curry, this is something that I’ve considered – it hasn’t yet risen to the top of the heap. I believe that with regards to document format processing and Open XML processing, we have realized only 20% of the benefit. There is so much more to do!

  14. sagar said,

    January 10, 2017 @ 7:12 pm

    Hi ,

    There are table tags in my html. When I tried to convert it into Word Doc using the library HtmlToWmlConverter , tables are not getting showed in word doc.

    Following is example of html file which I’m converting into Word Document.



  15. Eric White said,

    January 10, 2017 @ 10:51 pm

    @sagar, are you certain that it is not a table that has no borders in Word? It very well may be creating a table, but there are no borders, so it doesn’t appear that there is a table. If you click on text in the table, the little + will show at the upper left of the table, and in this fashion, you can determine that a table was inserted.

    The HtmlToWmlConverter attempts to honor all borders, and as such, if the html table has no borders, the word table will not either.

    Best, Eric

  16. Rambabu said,

    February 1, 2017 @ 7:35 am

    Hi Eric,

    How to add the comments in excel spreadsheet for a particular word using openxml c#. Can you please suggest me how to do that?


  17. mionica heyek said,

    March 17, 2018 @ 12:26 pm

    Your blog outstanding and mind blowing thanks!

  18. edwinsl4 said,

    April 13, 2018 @ 8:56 pm

    Updated engagement call:

  19. vineeta said,

    April 16, 2018 @ 10:16 am

    hello,here you can share all related information of RRB ALP Admit Card 2018.

  20. Quickbooks Enterprise Support Number +1-844-438-3711 said,

    April 22, 2018 @ 4:26 pm

    Nice And Informative Website. Please Keep Continue Such Kind Of Effort. Contact Us For Live Quickbooks Support. We Deal In Bookkeeping Services, Company Payroll Services, Cost Accounting, Quickbooks Enterprise, Quickbooks Pos Support, Quickbooks Pro Support And Other Company Related Financial Services. Our Website- http://www.Accountingexpert.Net Our Toll Free No +1-844-438-3711

  21. Hotmail said,

    May 5, 2018 @ 9:45 am

    Good job bro. I will miss that website.

  22. aprilia rsv1000r mille said,

    May 8, 2018 @ 5:42 pm

    The Aprilia RSV Mille was a sports motorcycle manufactured by Aprilia from 1998 to 2003. The Italian supersport bike was offered in three versions, RSV Mille, RSV Mille R, and RSV Mille SP.

RSS feed for comments on this post · TrackBack URI

Leave a Comment