{"id":626,"date":"2011-12-01T03:57:46","date_gmt":"2011-12-01T03:57:46","guid":{"rendered":"http:\/\/www.ericwhite.com\/home2\/bm8qcmjy\/public_html\/blog\/?page_id=626"},"modified":"2019-09-29T14:56:41","modified_gmt":"2019-09-29T14:56:41","slug":"documentbuilder-expanded","status":"publish","type":"page","link":"https:\/\/www.ericwhite.com\/blog\/documentbuilder-expanded\/","title":{"rendered":"DocumentBuilder"},"content":{"rendered":"<h2 style=\"font-size: small;\"><a href=\"https:\/\/www.ericwhite.com\/blog\/toc-expanded\">Back to TOC<\/a><a style=\"position: relative; left: 1em;\" href=\"https:\/\/www.ericwhite.com\/blog\/documentbuilder-video-expanded-3\">Just Videos<\/a><span style=\"position: relative; left: 2em;\"><a href=\"https:\/\/www.ericwhite.com\/blog\/documentbuilder-condensed\">Condensed TOC<\/a><\/span><\/h2>\n<p>A fundimental class of PowerTools for Open XML that enables you to combine \/ shred \/ compose Open XML WordprocessingML documents into new documents.<\/p>\n<ul>\n<li class=\"ericListItem\"><a class=\"ericListItem\" href=\"http:\/\/blogs.msdn.com\/ericwhite\/archive\/2008\/11\/03\/inserting-deleting-moving-paragraphs-in-open-xml-wordprocessing-documents.aspx\" target=\"_blank\" rel=\"noopener\">Inserting \/ Deleting \/ Moving Paragraphs in Open XML Wordprocessing Documents<\/a><\/li>\n<\/ul>\n<div style=\"margin-left: 2em; margin-bottom: 1em;\">If you are making a tool to manipulate paragraphs in Open XML Documents, then this post lists some of the constraints that you must pay attention to.<span style=\"color: #2b91af;\"> (Article)<\/span><\/p>\n<div style=\"vertical-align: text-top; margin-top: .5em;\"><span style=\"color: #2b91af;\">Keywords:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded\">Open XML SDK<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded\">PowerTools for Open XML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/documentbuilder-expanded\">DocumentBuilder<\/a><\/div>\n<\/div>\n<ul>\n<li class=\"ericListItem\"><a class=\"ericListItem\" href=\"http:\/\/blogs.msdn.com\/ericwhite\/archive\/2009\/02\/05\/move-insert-delete-paragraphs-in-word-processing-documents-using-the-open-xml-sdk.aspx\" target=\"_blank\" rel=\"noopener\">Move\/Insert\/Delete Paragraphs in Word Processing Documents using the Open XML SDK<\/a><\/li>\n<\/ul>\n<div style=\"margin-left: 2em; margin-bottom: 1em;\">Move\/Insert\/Delete Paragraphs in Word Processing Documents using the Open XML SDK<span style=\"color: #2b91af;\"> (Article)<\/span><\/p>\n<div style=\"vertical-align: text-top; margin-top: .5em;\"><span style=\"color: #2b91af;\">Keywords:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded\">Open XML SDK<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded\">PowerTools for Open XML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/documentbuilder-expanded\">DocumentBuilder<\/a><\/div>\n<\/div>\n<ul>\n<li class=\"ericListItem\"><a class=\"ericListItem\" href=\"http:\/\/blogs.msdn.com\/ericwhite\/archive\/2009\/03\/24\/interrelated-markup-in-open-xml-word-processing-documents.aspx\" target=\"_blank\" rel=\"noopener\">Interrelated Markup in Open XML Word Processing Documents<\/a><\/li>\n<\/ul>\n<div style=\"margin-left: 2em; margin-bottom: 1em;\">Interrelated Markup in Open XML Word Processing Documents<span style=\"color: #2b91af;\"> (Article)<\/span><\/p>\n<div style=\"vertical-align: text-top; margin-top: .5em;\"><span style=\"color: #2b91af;\">Keywords:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded\">Open XML SDK<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/documentbuilder-expanded\">DocumentBuilder<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded\">PowerTools for Open XML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a><\/div>\n<\/div>\n<ul>\n<li class=\"ericListItem\"><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2009\/04\/12\/generalized-approach-to-open-xml-markup-references.aspx\" target=\"_blank\" rel=\"noopener\">Generalized Approach to Open XML Markup References<\/a><\/li>\n<\/ul>\n<div style=\"margin-left: 2em; margin-bottom: 1em;\">An explanation of the issues around interrelated markup that DocumentBuilder (a class in PowerTools for Open XML) solves.<span style=\"color: #2b91af;\"> (Article)<\/span><\/p>\n<div style=\"vertical-align: text-top; margin-top: .5em;\"><span style=\"color: #2b91af;\">Keywords:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded\">Open XML SDK<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded\">PowerTools for Open XML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/documentbuilder-expanded\">DocumentBuilder<\/a><\/div>\n<\/div>\n<ul>\n<li class=\"ericListItem\"><a class=\"ericListItem\" href=\"http:\/\/blogs.msdn.com\/ericwhite\/archive\/2009\/04\/19\/comparison-of-altchunk-to-the-documentbuilder-class.aspx\" target=\"_blank\" rel=\"noopener\">Comparison of altChunk to the DocumentBuilder Class<\/a><\/li>\n<\/ul>\n<div style=\"margin-left: 2em; margin-bottom: 1em;\">This post compares and contrasts two approaches to assemble multiple Open XML word processing documents into a single document<span style=\"color: #2b91af;\"> (Article)<\/span><\/p>\n<div style=\"vertical-align: text-top; margin-top: .5em;\"><span style=\"color: #2b91af;\">Keywords:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded\">Open XML SDK<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/documentbuilder-expanded\">DocumentBuilder<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded\">PowerTools for Open XML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a><\/div>\n<\/div>\n<ul>\n<li class=\"ericListItem\"><a class=\"ericListItem\" href=\"http:\/\/blogs.msdn.com\/ericwhite\/archive\/2009\/04\/21\/using-documentbuilder-with-content-controls-for-document-assembly.aspx\" target=\"_blank\" rel=\"noopener\">Using DocumentBuilder with Content Controls for Document Assembly<\/a><\/li>\n<\/ul>\n<div style=\"margin-left: 2em; margin-bottom: 1em;\">DocumentBuilder is an example class that&#8217;s part of the PowerTools for Open XML project that enables you to assemble new documents from existing documents. DocumentBuilder fixes up interrelated markup when assembling a new document from existing documents. This post shows how to use DocumentBuilder in concert with content controls to control the document assembly.<span style=\"color: #2b91af;\"> (Article)<\/span><\/p>\n<div style=\"vertical-align: text-top; margin-top: .5em;\"><span style=\"color: #2b91af;\">Keywords:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded\">Open XML SDK<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/documentbuilder-expanded\">DocumentBuilder<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded\">PowerTools for Open XML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/content-controls-expanded\">Content Controls<\/a><\/div>\n<\/div>\n<ul>\n<li class=\"ericListItem\"><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2010\/01\/08\/how-to-control-sections-when-using-openxml-powertools-documentbuilder.aspx\" target=\"_blank\" rel=\"noopener\">How to Control Sections when using DocumentBuilder<\/a><\/li>\n<\/ul>\n<div style=\"margin-left: 2em; margin-bottom: 1em;\">When using DocumentBuilder, sometimes you want to control is how sections are copied to the document you are building. Sections carry a fair amount of formatting information, including the layout of the page, and the headers and footers that will be used for the section.<span style=\"color: #2b91af;\"> (Article)<\/span><\/p>\n<div style=\"vertical-align: text-top; margin-top: .5em;\"><span style=\"color: #2b91af;\">Keywords:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded\">PowerTools for Open XML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/documentbuilder-expanded\">DocumentBuilder<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a><\/div>\n<\/div>\n<ul>\n<li class=\"ericListItem\"><a class=\"ericListItem\" href=\"https:\/\/www.ericwhite.com\/blog\/introduction-to-documentbuilder-1\/\" target=\"_blank\" rel=\"noopener\">Introduction to DocumentBuilder 2.0 &#8211; Screen-Cast 1 of 3<\/a><\/li>\n<\/ul>\n<div style=\"margin-left: 2em; margin-bottom: 1em;\">This post contains the first of three screen-casts that introduces DocumentBuilder 2.0, talks about interrelated markup, and explores how DocumentBuilder solves developer issues with regards to interrelated markup. While this screen-cast is a bit long (20 minutes), it will be important for developers using DocumentBuilder who want to know how DocumentBuilder works.<span style=\"color: #2b91af;\"> (Video)<\/span><\/p>\n<div style=\"vertical-align: text-top; margin-top: .5em;\"><span style=\"color: #2b91af;\">Keywords:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/documentbuilder-expanded\">DocumentBuilder<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded\">PowerTools for Open XML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a><\/div>\n<\/div>\n<ul>\n<li class=\"ericListItem\"><a class=\"ericListItem\" href=\"https:\/\/www.ericwhite.com\/blog\/introduction-to-documentbuilder-2\/\" target=\"_blank\" rel=\"noopener\">Introduction to DocumentBuilder 2.0 &#8211; Screen-Cast 2 of 3<\/a><\/li>\n<\/ul>\n<div style=\"margin-left: 2em; margin-bottom: 1em;\">This screen-cast builds on the previous screen-cast where I walk through the process of transferring comments from multiple source documents into a destination document. In this screen-cast, I insert images into the comments. This introduces some complexity &#8211; the comments part has a relationship to an image part.<span style=\"color: #2b91af;\"> (Video)<\/span><\/p>\n<div style=\"vertical-align: text-top; margin-top: .5em;\"><span style=\"color: #2b91af;\">Keywords:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/documentbuilder-expanded\">DocumentBuilder<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded\">PowerTools for Open XML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a><\/div>\n<\/div>\n<ul>\n<li class=\"ericListItem\"><a class=\"ericListItem\" href=\"https:\/\/www.ericwhite.com\/blog\/introduction-to-documentbuilder-3\/\" target=\"_blank\" rel=\"noopener\">Introduction to DocumentBuilder 2.0 &#8211; Screen-Cast 3 of 3<\/a><\/li>\n<\/ul>\n<div style=\"margin-left: 2em; margin-bottom: 1em;\">This screen-cast builds on the previous two screen-casts where I walk through the process of transferring comments from multiple source documents into a destination document. In this final screen-cast in the series, I walk through some of the code in DocumentBuilder 2.0 &#8211; I explain how the code is data-driven to make it more robust, and discuss the structure of the code and how DocumentBuilder 2.0 works.<span style=\"color: #2b91af;\"> (Video)<\/span><\/p>\n<div style=\"vertical-align: text-top; margin-top: .5em;\"><span style=\"color: #2b91af;\">Keywords:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/documentbuilder-expanded\">DocumentBuilder<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded\">PowerTools for Open XML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a><\/div>\n<\/div>\n<ul>\n<li class=\"ericListItem\"><a class=\"ericListItem\" href=\"https:\/\/www.ericwhite.com\/blog\/short-introduction-to-documentbuilder\/\" target=\"_blank\" rel=\"noopener\">Short and Sweet Intro to DocumentBuilder 2.0<\/a><\/li>\n<\/ul>\n<div style=\"margin-left: 2em; margin-bottom: 1em;\">This is a short screen-cast that explains what DocumentBuilder 2.0 is all about, in less than seven minutes.<span style=\"color: #2b91af;\"> (Video)<\/span><\/p>\n<div style=\"vertical-align: text-top; margin-top: .5em;\"><span style=\"color: #2b91af;\">Keywords:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/documentbuilder-expanded\">DocumentBuilder<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded\">PowerTools for Open XML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a><\/div>\n<\/div>\n<ul>\n<li class=\"ericListItem\"><a class=\"ericListItem\" href=\"https:\/\/www.ericwhite.com\/blog\/advanced-use-of-documentbuilder\/\" target=\"_blank\" rel=\"noopener\">Advanced use of DocumentBuilder 2.0<\/a><\/li>\n<\/ul>\n<div style=\"margin-left: 2em; margin-bottom: 1em;\">The default approach to working with DocumentBuilder 2.0 enables you to take bits and pieces of multiple documents and assemble them together into a new document. However, there is an interesting scenario that this approach does not handle. You may want to import a document into a cell in a table, into a text box, or into a content control. You can do this with DocumentBuilder 2.0. This video shows how.<span style=\"color: #2b91af;\"> (Video)<\/span><\/p>\n<div style=\"vertical-align: text-top; margin-top: .5em;\"><span style=\"color: #2b91af;\">Keywords:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded\">PowerTools for Open XML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/documentbuilder-expanded\">DocumentBuilder<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Back to TOCJust VideosCondensed TOC A fundimental class of PowerTools for Open XML that enables you to combine \/ shred \/ compose Open XML WordprocessingML documents into new documents. Inserting \/ Deleting \/ Moving Paragraphs in Open XML Wordprocessing Documents If you are making a tool to manipulate paragraphs in Open XML Documents, then this [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"_s2mail":"","footnotes":""},"class_list":["post-626","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.ericwhite.com\/blog\/wp-json\/wp\/v2\/pages\/626","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ericwhite.com\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.ericwhite.com\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.ericwhite.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ericwhite.com\/blog\/wp-json\/wp\/v2\/comments?post=626"}],"version-history":[{"count":13,"href":"https:\/\/www.ericwhite.com\/blog\/wp-json\/wp\/v2\/pages\/626\/revisions"}],"predecessor-version":[{"id":8015,"href":"https:\/\/www.ericwhite.com\/blog\/wp-json\/wp\/v2\/pages\/626\/revisions\/8015"}],"wp:attachment":[{"href":"https:\/\/www.ericwhite.com\/blog\/wp-json\/wp\/v2\/media?parent=626"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}