Products Technologies Demo Docs Blog Support Company

Demo: Signature Fields in the Document Editor

We just published a new online demo that shows how to insert and handle signature fields in the document editor. Additionally, signature fields are exported to PDF and signed individually using digital certificates.

Demo: Signature Fields in the Document Editor

SignatureField objects are compatible to the Document Viewer to acquire signatures using a signature soft pad, but can be also used to digitally sign documents when exported to Adobe PDF. SignatureField objects are inherited from the FrameBase class and are handled similar to TextFrames, Images and other FrameBase objects.

Online Demo

Launch the online demos to test this new sample on your own.

Text Control Technical Demos

Signature Fields

Setting a Signature Image

After one or more signature fields are inserted, you can use the first button Set Signature Image to apply an image to the signature field. Therefore, select the signature field you would like to apply an image for and click the button Set Signature Image.

Signature Fields

The JavaScript function setSignatureImage uses the SignatureField.setImage method to apply an SVG as a base64 encoded string to the field.

function setSignatureImage() {

    $('.alert').hide();

    TXTextControl.signatureFields.getItem(function (sf) {

        if (sf === null) {
            $('.alert .alert-text').text("Please add a Signature Field first.");
            $('.alert').show();
            return;
        }

        sf.setImage("PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyNi41LjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCA1NjYgMTM2IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1NjYgMTM2OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8Zz4NCgk8cGF0aCBkPSJNMTAwLjksMjAuOWMwLDIuNC0xLDMuOS00LjMsNS41Yy0xLDAuNi0yLjQsMC4xLTIuNC0wLjhjMC0wLjMsMC45LTEuMywyLjEtMi40bDItMS44bC0wLjktMC45Yy0wLjYtMC40LTEuNi0wLjktMi41LTEuMQ0KCQljLTExLjktMy4yLTQyLjgsMS40LTY0LjIsOS43Yy03LjQsMi44LTkuOSw0LjEtOS45LDQuOWMwLDEuMi00LjYsMi41LTUuNSwxLjVjLTEuNC0xLjUsMC0yLjgsNi45LTUuOWM5LjQtNC41LDIxLjgtOC40LDMzLjktMTAuOA0KCQljMTEtMi4zLDIxLTMuMywyOC42LTMuM0M5NC43LDE1LjYsMTAwLjksMTcuNCwxMDAuOSwyMC45eiBNNjEuMSwyMmMwLjEsMCwwLjIsMCwwLjQsMC4xYzEuNSwwLjUsMC44LDQuMi0wLjksNC4yDQoJCWMtMSwwLTIsMC45LTUuMiw1LjNjLTUuNiw3LjQtMTIuOSwxOS4yLTIwLjgsMzMuMWMtOC4yLDE0LjYtMTIsMjIuNi0xMi40LDI1LjhjLTAuMywxLjQtMC41LDEuOC0xLDEuOWMtMC41LDAuMS0xLTAuMS0xLjMtMC40DQoJCWMtMS4zLTEuMy0wLjItNC45LDQuNS0xNC4xYzEwLjMtMjAuNiwyNS4yLTQ0LjUsMzMtNTNDNTkuMiwyMi42LDYwLjIsMjEuOSw2MS4xLDIyeiIvPg0KCTxwYXRoIGQ9Ik01OS42LDY5LjFjLTEuMywyLjQtMS4zLDMuNy0wLjEsNC45YzAuOSwwLjksMS4zLDAuOSwzLjcsMC45YzQuNiwwLDE0LjYtMS45LDIyLTQuM2MyLjUtMC44LDMuNy0wLjYsMy43LDAuNg0KCQljMCwyLjgtMjMuOSw3LjgtMjkuNCw2LjFjLTEuNi0wLjUtMy4yLTIuNC0zLjUtNC4xYy0wLjUtMi42LDEuNS03LDMuMi03LjNjMC4xLDAsMC4yLDAsMC4zLDBDNjAuNiw2Niw2MC42LDY3LjEsNTkuNiw2OS4xeg0KCQkgTTYyLjEsNjIuMmMtMC42LDAuOC0xLjksMC44LTIuMiwwYy0wLjQtMC45LDAuNC0yLDEuNC0yQzYyLjQsNjAuMiw2Mi44LDYxLjMsNjIuMSw2Mi4yeiIvPg0KCTxwYXRoIGQ9Ik05MS4xLDY2LjVjNi45LTEyLjMsMTEuNi0xNy43LDEzLTE1YzAuNSwwLjgtMC4xLDItMC45LDJzLTMuOSw0LjMtNi45LDkuNGMtMS4zLDIuMy0yLjQsNC4yLTIuNCw0LjNjMCwwLjEsMS42LTEsMy42LTIuNg0KCQljMTAuNy04LjIsMjEtMTAuMiwyMi44LTQuNWMwLjUsMS4yLDAuNSwyLjEtMC4yLDQuNmMtMC4zLDEtMC4yLDAuOSwzLjgtMWM3LjEtMy43LDEyLjQtNSwxNC40LTMuNmMyLjMsMS42LDIsNS4zLTAuOCwxMQ0KCQljLTAuOSwxLjktMS43LDMuNC0xLjYsMy40YzAsMCwyLTAuOSw0LjQtMmM1LjEtMi41LDEzLjQtNS4yLDE3LjUtNmMyLjgtMC41LDMuMS0wLjQsMy44LDAuMmMxLjEsMS4yLDAuMiwyLTMuNywyLjgNCgkJYy01LjUsMS4xLTExLjMsMy4yLTE4LDYuNWMtNC42LDIuMi02LjUsMi45LTcuMSwyLjhjLTEuOS0wLjUtMS43LTEuNiwxLjEtNy4xYzIuNy01LjEsMy42LTguNCwyLjYtOS4xYy0wLjktMC42LTQuNywwLjctOS43LDMuMQ0KCQljLTcuNCwzLjYtOS4zLDQuOC0xMy41LDguOGMtMy42LDMuNS03LjEsNi04LjUsNmMtMC44LDAtMS45LTEtMS45LTEuOGMwLTEsMi44LTMuNyw2LjktNi41YzIuMy0xLjUsNC42LTMuMyw1LjEtNC4xDQoJCWMyLjMtMy4xLDMuMi02LjUsMi4xLTcuN2MtMC45LTAuOS00LjUtMC42LTcuNywwLjdjLTguMywzLjItMTguMSwxMS44LTIyLjIsMTkuM2MtMS4yLDIuMy0xLjgsMi44LTIuNSwyLjhjLTAuNiwwLTEtMC4xLTEuMi0wLjINCgkJQzgyLjYsODEuOSw4My4zLDgwLjMsOTEuMSw2Ni41eiIvPg0KCTxwYXRoIGQ9Ik0xODkuNiw5My40Yy0xLTIuMi0wLjktNS4xLDAuNS05LjRjMC45LTIuOSw0LjQtMTAuMyw3LTE1LjFsMS42LTIuOGwtMC45LTAuNGMtMC43LTAuMy0xLTAuOC0xLTEuNGMwLTEuMSwxLjMtMi4yLDMuOC0zLjINCgkJYzEuNi0wLjcsMi4yLTEuMiw0LjgtNWM5LjUtMTMuOCwyMC40LTI2LjgsMjktMzQuNWMyLjEtMS44LDMuNy0zLjQsMy42LTMuNGMtMC4yLTAuMi03LjQsMS41LTEwLjIsMi41Yy0zLDEtNCwxLjctMi4yLDEuNw0KCQljMS4zLDAsMi44LDEuMywyLjYsMi4xYy0wLjMsMC45LTEuNCwwLjktNC40LDAuM2MtNi41LTEuNC0zLjctNC44LDYuMi03LjdjNy44LTIuMiwxNy0zLDI4LjYtMi41YzEyLjgsMC42LDIwLjQsMi40LDIyLjEsNS4yDQoJCWMwLjksMS40LDAuOSwyLjMsMC4yLDMuOGMtMSwyLTMuNCwxLjEtMi42LTAuOWMwLjMtMC44LDAuMi0xLjEtMC40LTEuNmMtMi4yLTItMTEuMS0zLjQtMjMtMy43Yy04LjQtMC4yLTguNS0wLjItOC43LDAuNw0KCQljLTAuMywxLjItMS40LDEuNS0yLjEsMC43Yy0wLjYtMC44LTAuNi0wLjgtMi4xLDBjLTIuMSwxLjEtMTIuNCwxMS4zLTE4LDE3LjhjLTQuNiw1LjQtMTAuNywxMy4zLTE1LDE5LjINCgkJYy0xLjcsMi41LTEuOCwyLjgtMC45LDIuNmMwLjYtMC4yLDMuNC0wLjksNi4zLTEuNmM3LjEtMS45LDExLjktMi43LDE3LjYtMi45YzguMy0wLjQsMTUuMiwxLjUsMTMsMy43Yy0wLjUsMC42LTAuOSwwLjUtMy40LTAuMQ0KCQljLTYtMS41LTE2LjItMC43LTI3LjgsMi40Yy05LjEsMi40LTEwLjQsMy4xLTEwLjQsNS44YzAsMC41LTAuMywwLjktMC44LDAuOWMtMS4zLDAuNC04LDEzLTkuOSwxOC43Yy0wLjUsMS40LTAuOSwzLjYtMC45LDQuOQ0KCQljLTAuMSwyLjEsMCwyLjUsMC45LDMuMmMyLjMsMiw2LjMsMS4yLDIzLjctNC42YzI0LTgsMzMuOS0xMC41LDQzLjktMTEuNWM0LjctMC41LDYuMi0wLjMsNi41LDAuN2MwLjUsMS4yLTAuNywxLjctNS4zLDIuMQ0KCQljLTEwLDAuOS0yMC40LDMuNi00NC44LDExLjZjLTE2LDUuMi0xOS41LDYuMS0yMy4xLDUuNEMxOTEuNyw5Ni40LDE5MC40LDk1LjQsMTg5LjYsOTMuNHoiLz4NCgk8cGF0aCBkPSJNMjY5LjgsODAuNmMwLjMsMC41LDAuNCwxLDAuMiwxLjRjLTAuMywwLjgtMi42LDAuNy0yLjgtMC4xQzI2Ni41LDgwLjMsMjY5LDc5LjEsMjY5LjgsODAuNnoiLz4NCgk8cGF0aCBkPSJNMzk5LDIwLjljMCwyLjQtMSwzLjktNC4zLDUuNWMtMSwwLjYtMi40LDAuMS0yLjQtMC44YzAtMC4zLDAuOS0xLjMsMi4xLTIuNGwyLTEuOGwtMC45LTAuOWMtMC42LTAuNC0xLjYtMC45LTIuNS0xLjENCgkJYy0xMS45LTMuMi00Mi44LDEuNC02NC4yLDkuN2MtNy40LDIuOC05LjksNC4xLTkuOSw0LjljMCwxLjItNC42LDIuNS01LjUsMS41Yy0xLjQtMS41LDAtMi44LDYuOS01LjljOS40LTQuNSwyMS44LTguNCwzMy45LTEwLjgNCgkJYzExLTIuMywyMS0zLjMsMjguNi0zLjNDMzkyLjgsMTUuNiwzOTksMTcuNCwzOTksMjAuOXogTTM1OS4zLDIyYzAuMSwwLDAuMiwwLDAuNCwwLjFjMS41LDAuNSwwLjgsNC4yLTAuOSw0LjJjLTEsMC0yLDAuOS01LjIsNS4zDQoJCWMtNS42LDcuNC0xMi45LDE5LjItMjAuOCwzMy4xYy04LjIsMTQuNi0xMiwyMi42LTEyLjQsMjUuOGMtMC4zLDEuNC0wLjUsMS44LTEsMS45Yy0wLjUsMC4xLTEtMC4xLTEuMy0wLjQNCgkJYy0xLjMtMS4zLTAuMi00LjksNC41LTE0LjFjMTAuMy0yMC42LDI1LjItNDQuNSwzMy01M0MzNTcuNCwyMi42LDM1OC4zLDIxLjksMzU5LjMsMjJ6Ii8+DQoJPHBhdGggZD0iTTM4OS4xLDYxLjZjMS40LDEuMSwxLjIsNC43LTAuNCw5LjFjLTAuNywxLjktMS4xLDMuNC0xLjEsMy40YzAuMSwwLjEsMi40LTAuNyw1LjItMS42YzIuOC0wLjksNy0yLjIsOS42LTIuOA0KCQljNC4yLTEsNC41LTEsNS4xLTAuNWMxLjIsMS4yLDAuMiwyLTUuNSwzLjVjLTguNCwyLjQtMTYuMiw1LjEtMTYuNyw2LjFjLTYuOCwxMy40LTEyLjQsMjEuMi0yMS4yLDMwDQoJCWMtMTMuNiwxMy41LTI4LjIsMjAuNi0zNi41LDE3LjVjLTMuOC0xLjMtNS45LTQuNy01LjMtOC40YzEuMi03LjEsOS0xNS4xLDIyLjctMjMuMmM5LjQtNS42LDI5LjYtMTUuNiwzNi44LTE4LjENCgkJYzEuMS0wLjQsMS43LTAuOSwyLjUtMi4zYzEuNC0zLDIuOS03LjksMi44LTkuM2wtMC4xLTEuNEwzODQsNjVjLTEuNywwLjktNS43LDMtOC45LDVjLTYuNSw0LjEtOS45LDUuNC0xMi45LDUuNA0KCQljLTQsMC01LjktMi4xLTUuOC02LjdjMC0zLjIsMS01LjksMi41LTUuOWMxLjYsMCwyLDAuOSwxLDIuNGMtMC43LDAuOS0wLjksMS43LTAuOSwzLjVjLTAuMSwzLjEsMC43LDQsMy4xLDRjMi41LDAsNS40LTEuMywxMi01LjUNCgkJYzcuNC00LjYsMTAuOS02LjQsMTMuMS02LjNDMzg4LjEsNjEuMSwzODguNyw2MS4yLDM4OS4xLDYxLjZ6IE0zNDYuNiw5Ny4yYy0xMy41LDguMS0yMS4zLDE2LjMtMjEuMywyMi4yYzAsMS42LDAuMiwyLjEsMS4yLDMNCgkJYzAuNywwLjcsMS44LDEuMiwyLjcsMS40YzAuOCwwLjEsMS42LDAuMywxLjgsMC40YzAuNywwLjEsMy40LTAuMyw2LTAuOWMxMS4xLTIuOCwyNy42LTE2LjYsMzcuNi0zMS41YzIuOC00LjIsNi45LTExLjMsNi42LTExLjUNCgkJYzAtMC4xLTAuMS0wLjEtMC4xLTAuMUMzNzguOCw4MC40LDM1NS4yLDkyLDM0Ni42LDk3LjJ6Ii8+DQoJPHBhdGggZD0iTTQyMi43LDUyLjdjMC40LDAuNywwLjEsMS0xLjgsMi44Yy0xLjIsMS4xLTIuNiwyLjYtMi45LDMuMWMtMC44LDEtMC44LDEsMi4zLTAuNWMxMC4zLTUsMjAuMy01LjEsMjIuNC0wLjENCgkJYzAuOCwxLjksMC4zLDQuNC0xLjIsNi44Yy0wLjYsMC45LTAuOSwxLjctMC45LDEuOGMwLjEsMC4xLDIuMS0wLjIsNC41LTAuNmM0LjMtMC45LDEwLTEuMSwxMC43LTAuN2MwLjcsMC40LDAuNiwxLjUsMCwyLjENCgkJYy0wLjMsMC4zLTEuNSwwLjUtMi45LDAuNWMtMi43LDAtNy45LDAuOS0xMi41LDIuMWMtMi43LDAuNy0zLjQsMS01LjgsM2MtNy4zLDYuNC0xNSwxMC4xLTE2LjgsOC4zYy0yLjgtMi43LDQuOS04LjgsMTUtMTIuMQ0KCQljMi0wLjcsMi44LTEuMiwzLjgtMi4zYzQuNi02LjEsNC43LTguOCwwLjEtOS41Yy01LjgtMC45LTE0LjUsMi0yMC43LDdjLTYuNyw1LjQtOC43LDkuMi0xMi42LDI0LjljLTIuOCwxMS4yLTYuMSwxOC45LTExLjEsMjYuNA0KCQljLTMsNC41LTMuMyw0LjctNC42LDUuN2MtMS4xLDAuOC0yLDAuOS0yLjgsMC4yYy0zLjItMi41LTEuMS0xMi42LDQuOS0yNS4zYzYuNS0xMy43LDE1LjItMjYuOCwyNS40LTM4LjVjNC41LTUuMSw0LjYtNS4zLDYuMS01LjcNCgkJYzAuMi0wLjEsMC40LTAuMSwwLjUtMC4xQzQyMi4yLDUyLDQyMi40LDUyLjIsNDIyLjcsNTIuN3ogTTQwMi44LDc5LjNjLTAuNC0wLjUtOC45LDE0LjctMTEuNiwyMC42Yy0zLjEsNy01LjgsMTYuMy01LDE4LjINCgkJYzAuMywwLjksMC43LDAuNSwzLjEtMy4yYzMtNC41LDYtMTAuNCw4LjEtMTUuOUMzOTguOCw5NC44LDQwMy4xLDc5LjYsNDAyLjgsNzkuM3ogTTQyNy44LDc0LjVjLTAuNCwwLTMuNywxLjktNC43LDIuOA0KCQljLTEuNiwxLjItMC4zLDAuNywyLjMtMC45QzQyNi43LDc1LjUsNDI3LjgsNzQuNiw0MjcuOCw3NC41QzQyNy44LDc0LjUsNDI3LjgsNzQuNSw0MjcuOCw3NC41eiIvPg0KCTxwYXRoIGQ9Ik00NTYuOSw2NC4xYzAuOSwwLDEuNywwLjMsMi4yLDAuOWMwLjQsMC41LDAuOCwxLjIsMC44LDEuNmMwLDItNiw2LjMtOC44LDYuM2MtMSwwLTEuMSwwLjItMC45LDEuM2MwLjIsMiwyLDIuOCw1LjgsMi41DQoJCWM1LjYtMC40LDE4LjItMy42LDMxLjktOC4yYzQuNi0xLjUsOC44LTIuNyw5LjMtMi43YzEuMywwLjIsMSwxLjUtMC40LDIuNWMtMy40LDEuOS0yMy45LDguMS0zMy44LDEwLjINCgkJYy02LjgsMS40LTEwLjQsMS41LTEyLjgsMC4zYy0zLjktMS45LTQuMS02LjktMC40LTEwLjdDNDUyLjEsNjUuNiw0NTQuOSw2NC4xLDQ1Ni45LDY0LjF6IE00NTYuMiw2N2MtMC43LDAtMS44LDAuNy0zLjIsMS44DQoJCWMtMi41LDItMC4zLDEuMiwyLjUtMC44QzQ1Ni4yLDY3LjUsNDU2LjUsNjcsNDU2LjIsNjd6Ii8+DQoJPHBhdGggZD0iTTUxMC4yLDU0LjVjLTEuNSwyLjgtNy41LDguMS0xMi4yLDEwLjhjLTEuOCwwLjktMi41LDEuNS0yLjEsMS43YzAuOSwwLjYsNC4yLTAuMywxMy4yLTMuM2MxMi00LjEsMjAuMy01LjgsMjMuMy00LjgNCgkJYzAuNSwwLjIsMSwwLjgsMS4zLDEuNGMwLjYsMS41LDAuMSwyLjgtMi41LDcuMWMtMi41LDQuMi00LjgsOC45LTUuMiwxMC4zYy0wLjIsMC45LTAuMSwxLjEsMC42LDEuMWMwLjksMCw1LjUtMi4zLDExLjYtNS43DQoJCWMxMS4zLTYuMywxNi45LTguMiwxNy43LTZjMC40LDEtMC40LDEuNy0yLjMsMmMtMC45LDAuMi01LjIsMi4yLTkuNyw0LjVjLTQuNSwyLjMtOS44LDUtMTEuOSw2LjFzLTQuNSwyLTUuNCwyLjINCgkJYy0xLjQsMC4yLTEuOCwwLTIuNy0wLjljLTAuOS0wLjktMS0xLjMtMC45LTNjMC4yLTIuMSwyLjEtNi4yLDUuNi0xMi4xYzEuMi0yLjEsMi4yLTMuOSwyLjItNC4xYzAtMS4zLTkuNSwwLjktMjEuMyw0LjgNCgkJYy0xMC4yLDMuNC0xMy4yLDQtMTUuMiwyLjljLTAuNy0wLjMtMS40LTAuOS0xLjctMS4zYy0wLjctMS40LTAuNS00LjIsMC43LTYuNGMxLjQtMi45LDcuNC04LjgsMTAuNi0xMC41YzEuNi0wLjksMi45LTEuMiw0LjEtMS4zDQoJCUM1MTAuNSw1MCw1MTEuNiw1MS43LDUxMC4yLDU0LjV6IE01MDEsNTcuMWMtMS4xLDEtMi43LDIuNy0zLjQsMy43Yy0yLjMsMy0xLjksMywyLjMsMGM0LjItMi45LDguOC04LDcuNi04DQoJCUM1MDYuOSw1Mi44LDUwMyw1NS40LDUwMSw1Ny4xeiIvPg0KPC9nPg0KPC9zdmc+DQo=")
    });
}

Creating a PDF

The second button Export Signature Fields to PDF creates a PDF document including unsigned signature fields. These fields can be signed in Acrobat Reader after the PDF has been created.

Signature Fields

After opening this PDF in Acrobat Reader, the unsigned fields can be signed using a digital ID:

Signature Fields

Signing Signature Fields

The third button is calling an HttpPost controller method that uses a ServerTextControl instance to sign the signature fields using the SaveSettings.SignatureFields property.

Learn More

Using TX Text Control, there are two ways of signing PDF documents: The whole document and individual signature fields. This article shows how to implement both ways in a .NET 6 command line application.

Digitally Signing Adobe PDF Documents

[HttpPost]
public string PDFSignSignatureFields(string document) {
   byte[] bDocument;

   // create temporary ServerTextControl
   using (TXTextControl.ServerTextControl tx = new TXTextControl.ServerTextControl()) {
      tx.Create();

      tx.Load(Convert.FromBase64String(document), BinaryStreamType.InternalUnicodeFormat);

      X509Certificate2 cert = new X509Certificate2(Server.MapPath("~/App_Data/textcontrolself.pfx"), "123");

      List<DigitalSignature> digitalSignatures = new List<DigitalSignature>();

      foreach (SignatureField field in tx.SignatureFields) {
         field.Name = Guid.NewGuid().ToString();
         digitalSignatures.Add(new DigitalSignature(cert, null, field.Name));
         field.Image = new SignatureImage(Server.MapPath("~/App_Data/Documents/signature.svg"), 4);
         field.SignerData = new SignerData("Tim Typer", "Developer", "", "", "Online Demo");
      }

      TXTextControl.SaveSettings saveSettings = new TXTextControl.SaveSettings() {
         CreatorApplication = "TX Text Control Sample Application",
         SignatureFields = digitalSignatures.ToArray()
      };

      // export to PDF
      tx.Save(out bDocument, BinaryStreamType.AdobePDF, saveSettings);
   }

   // return as Base64 encoded string
   return Convert.ToBase64String(bDocument);

}

When loading this document into Acrobat Reader, the signature fields are shown as visual representations in the document. If you click on a field, a dialog confirms the validation status. Additionally, the signature field names are shown in the sidebar.

Signature Fields

Online Demo

Test this on your own using the live demos:

Text Control Technical Demos

Stay in the loop!

Subscribe to the newsletter to receive the latest updates.

ASP.NET

Integrate document processing into your applications to create documents such as PDFs and MS Word documents, including client-side document editing, viewing, and electronic signatures.

ASP.NET Core
Angular
Blazor
JavaScript
React
  • Angular
  • Blazor
  • React
  • JavaScript
  • ASP.NET MVC, ASP.NET Core, and WebForms

Learn more Trial token Download trial

Related Posts

ASP.NETASP.NET CorePDF/UA

PDF/UA vs. PDF/A-3a: Which Format Should You Use for Your Business Application?

In this blog post, we will explore the differences between PDF/UA and PDF/A-3a, helping you choose the right format for your business needs. We will discuss the key features, benefits, and use…


ASP.NETASP.NET CorePDF/UA

Validating PDF/UA Documents in .NET C#

Creating accessible and compliant PDF documents is becoming an increasingly important requirement across industries. In this blog post, we explore how to validate PDF/UA documents using Text…


ASP.NETWindows FormsWPF

Sneak Peek: TX Text Control 34.0 Coming November 2025

We are excited to announce the upcoming release of TX Text Control 34.0, scheduled for November 2025. This update brings a host of new features and improvements to enhance your document processing…


ASP.NETWindows FormsWPF

TX Text Control 33.0 SP3 is Now Available: What's New in the Latest Version

TX Text Control 33.0 Service Pack 3 is now available, offering important updates and bug fixes for all platforms. If you use TX Text Control in your document processing applications, this service…


ASP.NETASP.NET CoreDocument Viewer

High-Performance Text Replacement in Large DOCX Files using C# .NET

Learn how to efficiently replace text in large DOCX files using C# .NET and the ServerTextControl component from Text Control. This article demonstrates the performance benefits of using the…