CINXE.COM

For Hr | Printfection

<!DOCTYPE html> <html lang="en-US"> <head><meta charset="UTF-8" /><script>if(navigator.userAgent.match(/MSIE|Internet Explorer/i)||navigator.userAgent.match(/Trident\/7\..*?rv:11/i)){var href=document.location.href;if(!href.match(/[?&]nowprocket/)){if(href.indexOf("?")==-1){if(href.indexOf("#")==-1){document.location.href=href+"?nowprocket=1"}else{document.location.href=href.replace("#","?nowprocket=1#")}}else{if(href.indexOf("#")==-1){document.location.href=href+"&nowprocket=1"}else{document.location.href=href.replace("#","&nowprocket=1#")}}}}</script><script>(()=>{class RocketLazyLoadScripts{constructor(){this.v="2.0.2",this.userEvents=["keydown","keyup","mousedown","mouseup","mousemove","mouseover","mouseenter","mouseout","mouseleave","touchmove","touchstart","touchend","touchcancel","wheel","click","dblclick","input","visibilitychange"],this.attributeEvents=["onblur","onclick","oncontextmenu","ondblclick","onfocus","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onscroll","onsubmit"]}async t(){this.i(),this.o(),/iP(ad|hone)/.test(navigator.userAgent)&&this.h(),this.u(),this.l(this),this.m(),this.k(this),this.p(this),this._(),await Promise.all([this.R(),this.L()]),this.lastBreath=Date.now(),this.S(this),this.P(),this.D(),this.O(),this.M(),await this.C(this.delayedScripts.normal),await this.C(this.delayedScripts.defer),await this.C(this.delayedScripts.async),this.T("domReady"),await this.F(),await this.j(),await this.I(),this.T("windowLoad"),await this.A(),window.dispatchEvent(new Event("rocket-allScriptsLoaded")),this.everythingLoaded=!0,this.lastTouchEnd&&await new Promise((t=>setTimeout(t,500-Date.now()+this.lastTouchEnd))),this.H(),this.T("all"),this.U(),this.W()}i(){this.CSPIssue=sessionStorage.getItem("rocketCSPIssue"),document.addEventListener("securitypolicyviolation",(t=>{this.CSPIssue||"script-src-elem"!==t.violatedDirective||"data"!==t.blockedURI||(this.CSPIssue=!0,sessionStorage.setItem("rocketCSPIssue",!0))}),{isRocket:!0})}o(){window.addEventListener("pageshow",(t=>{this.persisted=t.persisted,this.realWindowLoadedFired=!0}),{isRocket:!0}),window.addEventListener("pagehide",(()=>{this.onFirstUserAction=null}),{isRocket:!0})}h(){let t;function e(e){t=e}window.addEventListener("touchstart",e,{isRocket:!0}),window.addEventListener("touchend",(function i(o){Math.abs(o.changedTouches[0].pageX-t.changedTouches[0].pageX)<10&&Math.abs(o.changedTouches[0].pageY-t.changedTouches[0].pageY)<10&&o.timeStamp-t.timeStamp<200&&(o.target.dispatchEvent(new PointerEvent("click",{target:o.target,bubbles:!0,cancelable:!0})),event.preventDefault(),window.removeEventListener("touchstart",e,{isRocket:!0}),window.removeEventListener("touchend",i,{isRocket:!0}))}),{isRocket:!0})}q(t){this.userActionTriggered||("mousemove"!==t.type||this.firstMousemoveIgnored?"keyup"===t.type||"mouseover"===t.type||"mouseout"===t.type||(this.userActionTriggered=!0,this.onFirstUserAction&&this.onFirstUserAction()):this.firstMousemoveIgnored=!0),"click"===t.type&&t.preventDefault(),this.savedUserEvents.length>0&&(t.stopPropagation(),t.stopImmediatePropagation()),"touchstart"===this.lastEvent&&"touchend"===t.type&&(this.lastTouchEnd=Date.now()),"click"===t.type&&(this.lastTouchEnd=0),this.lastEvent=t.type,this.savedUserEvents.push(t)}u(){this.savedUserEvents=[],this.userEventHandler=this.q.bind(this),this.userEvents.forEach((t=>window.addEventListener(t,this.userEventHandler,{passive:!1,isRocket:!0})))}U(){this.userEvents.forEach((t=>window.removeEventListener(t,this.userEventHandler,{passive:!1,isRocket:!0}))),this.savedUserEvents.forEach((t=>{t.target.dispatchEvent(new window[t.constructor.name](t.type,t))}))}m(){this.eventsMutationObserver=new MutationObserver((t=>{const e="return false";for(const i of t){if("attributes"===i.type){const t=i.target.getAttribute(i.attributeName);t&&t!==e&&(i.target.setAttribute("data-rocket-"+i.attributeName,t),i.target.setAttribute(i.attributeName,e))}"childList"===i.type&&i.addedNodes.forEach((t=>{if(t.nodeType===Node.ELEMENT_NODE)for(const i of t.attributes)this.attributeEvents.includes(i.name)&&i.value&&""!==i.value&&(t.setAttribute("data-rocket-"+i.name,i.value),t.setAttribute(i.name,e))}))}})),this.eventsMutationObserver.observe(document,{subtree:!0,childList:!0,attributeFilter:this.attributeEvents})}H(){this.eventsMutationObserver.disconnect(),this.attributeEvents.forEach((t=>{document.querySelectorAll("[data-rocket-"+t+"]").forEach((e=>{e.setAttribute(t,e.getAttribute("data-rocket-"+t)),e.removeAttribute("data-rocket-"+t)}))}))}k(t){Object.defineProperty(HTMLElement.prototype,"onclick",{get(){return this.rocketonclick},set(e){this.rocketonclick=e,this.setAttribute(t.everythingLoaded?"onclick":"data-rocket-onclick","this.rocketonclick(event)")}})}S(t){function e(e,i){let o=e[i];e[i]=null,Object.defineProperty(e,i,{get:()=>o,set(s){t.everythingLoaded?o=s:e["rocket"+i]=o=s}})}e(document,"onreadystatechange"),e(window,"onload"),e(window,"onpageshow");try{Object.defineProperty(document,"readyState",{get:()=>t.rocketReadyState,set(e){t.rocketReadyState=e},configurable:!0}),document.readyState="loading"}catch(t){console.log("WPRocket DJE readyState conflict, bypassing")}}l(t){this.originalAddEventListener=EventTarget.prototype.addEventListener,this.originalRemoveEventListener=EventTarget.prototype.removeEventListener,this.savedEventListeners=[],EventTarget.prototype.addEventListener=function(e,i,o){o&&o.isRocket||!t.B(e,this)&&!t.userEvents.includes(e)||t.B(e,this)&&!t.userActionTriggered||e.startsWith("rocket-")?t.originalAddEventListener.call(this,e,i,o):t.savedEventListeners.push({target:this,remove:!1,type:e,func:i,options:o})},EventTarget.prototype.removeEventListener=function(e,i,o){o&&o.isRocket||!t.B(e,this)&&!t.userEvents.includes(e)||t.B(e,this)&&!t.userActionTriggered||e.startsWith("rocket-")?t.originalRemoveEventListener.call(this,e,i,o):t.savedEventListeners.push({target:this,remove:!0,type:e,func:i,options:o})}}T(t){"all"===t&&(EventTarget.prototype.addEventListener=this.originalAddEventListener,EventTarget.prototype.removeEventListener=this.originalRemoveEventListener),this.savedEventListeners=this.savedEventListeners.filter((e=>{let i=e.type,o=e.target||window;return"domReady"===t&&"DOMContentLoaded"!==i&&"readystatechange"!==i||("windowLoad"===t&&"load"!==i&&"readystatechange"!==i&&"pageshow"!==i||(this.B(i,o)&&(i="rocket-"+i),e.remove?o.removeEventListener(i,e.func,e.options):o.addEventListener(i,e.func,e.options),!1))}))}p(t){let e;function i(e){return t.everythingLoaded?e:e.split(" ").map((t=>"load"===t||t.startsWith("load.")?"rocket-jquery-load":t)).join(" ")}function o(o){function s(e){const s=o.fn[e];o.fn[e]=o.fn.init.prototype[e]=function(){return this[0]===window&&t.userActionTriggered&&("string"==typeof arguments[0]||arguments[0]instanceof String?arguments[0]=i(arguments[0]):"object"==typeof arguments[0]&&Object.keys(arguments[0]).forEach((t=>{const e=arguments[0][t];delete arguments[0][t],arguments[0][i(t)]=e}))),s.apply(this,arguments),this}}if(o&&o.fn&&!t.allJQueries.includes(o)){const e={DOMContentLoaded:[],"rocket-DOMContentLoaded":[]};for(const t in e)document.addEventListener(t,(()=>{e[t].forEach((t=>t()))}),{isRocket:!0});o.fn.ready=o.fn.init.prototype.ready=function(i){function s(){parseInt(o.fn.jquery)>2?setTimeout((()=>i.bind(document)(o))):i.bind(document)(o)}return t.realDomReadyFired?!t.userActionTriggered||t.fauxDomReadyFired?s():e["rocket-DOMContentLoaded"].push(s):e.DOMContentLoaded.push(s),o([])},s("on"),s("one"),s("off"),t.allJQueries.push(o)}e=o}t.allJQueries=[],o(window.jQuery),Object.defineProperty(window,"jQuery",{get:()=>e,set(t){o(t)}})}P(){const t=new Map;document.write=document.writeln=function(e){const i=document.currentScript,o=document.createRange(),s=i.parentElement;let n=t.get(i);void 0===n&&(n=i.nextSibling,t.set(i,n));const a=document.createDocumentFragment();o.setStart(a,0),a.appendChild(o.createContextualFragment(e)),s.insertBefore(a,n)}}async R(){return new Promise((t=>{this.userActionTriggered?t():this.onFirstUserAction=t}))}async L(){return new Promise((t=>{document.addEventListener("DOMContentLoaded",(()=>{this.realDomReadyFired=!0,t()}),{isRocket:!0})}))}async I(){return this.realWindowLoadedFired?Promise.resolve():new Promise((t=>{window.addEventListener("load",t,{isRocket:!0})}))}M(){this.pendingScripts=[];this.scriptsMutationObserver=new MutationObserver((t=>{for(const e of t)e.addedNodes.forEach((t=>{"SCRIPT"!==t.tagName||t.noModule||t.isWPRocket||this.pendingScripts.push({script:t,promise:new Promise((e=>{const i=()=>{const i=this.pendingScripts.findIndex((e=>e.script===t));i>=0&&this.pendingScripts.splice(i,1),e()};t.addEventListener("load",i,{isRocket:!0}),t.addEventListener("error",i,{isRocket:!0}),setTimeout(i,1e3)}))})}))})),this.scriptsMutationObserver.observe(document,{childList:!0,subtree:!0})}async j(){await this.J(),this.pendingScripts.length?(await this.pendingScripts[0].promise,await this.j()):this.scriptsMutationObserver.disconnect()}D(){this.delayedScripts={normal:[],async:[],defer:[]},document.querySelectorAll("script[type$=rocketlazyloadscript]").forEach((t=>{t.hasAttribute("data-rocket-src")?t.hasAttribute("async")&&!1!==t.async?this.delayedScripts.async.push(t):t.hasAttribute("defer")&&!1!==t.defer||"module"===t.getAttribute("data-rocket-type")?this.delayedScripts.defer.push(t):this.delayedScripts.normal.push(t):this.delayedScripts.normal.push(t)}))}async _(){await this.L();let t=[];document.querySelectorAll("script[type$=rocketlazyloadscript][data-rocket-src]").forEach((e=>{let i=e.getAttribute("data-rocket-src");if(i&&!i.startsWith("data:")){i.startsWith("//")&&(i=location.protocol+i);try{const o=new URL(i).origin;o!==location.origin&&t.push({src:o,crossOrigin:e.crossOrigin||"module"===e.getAttribute("data-rocket-type")})}catch(t){}}})),t=[...new Map(t.map((t=>[JSON.stringify(t),t]))).values()],this.N(t,"preconnect")}async $(t){if(await this.G(),!0!==t.noModule||!("noModule"in HTMLScriptElement.prototype))return new Promise((e=>{let i;function o(){(i||t).setAttribute("data-rocket-status","executed"),e()}try{if(navigator.userAgent.includes("Firefox/")||""===navigator.vendor||this.CSPIssue)i=document.createElement("script"),[...t.attributes].forEach((t=>{let e=t.nodeName;"type"!==e&&("data-rocket-type"===e&&(e="type"),"data-rocket-src"===e&&(e="src"),i.setAttribute(e,t.nodeValue))})),t.text&&(i.text=t.text),t.nonce&&(i.nonce=t.nonce),i.hasAttribute("src")?(i.addEventListener("load",o,{isRocket:!0}),i.addEventListener("error",(()=>{i.setAttribute("data-rocket-status","failed-network"),e()}),{isRocket:!0}),setTimeout((()=>{i.isConnected||e()}),1)):(i.text=t.text,o()),i.isWPRocket=!0,t.parentNode.replaceChild(i,t);else{const i=t.getAttribute("data-rocket-type"),s=t.getAttribute("data-rocket-src");i?(t.type=i,t.removeAttribute("data-rocket-type")):t.removeAttribute("type"),t.addEventListener("load",o,{isRocket:!0}),t.addEventListener("error",(i=>{this.CSPIssue&&i.target.src.startsWith("data:")?(console.log("WPRocket: CSP fallback activated"),t.removeAttribute("src"),this.$(t).then(e)):(t.setAttribute("data-rocket-status","failed-network"),e())}),{isRocket:!0}),s?(t.fetchPriority="high",t.removeAttribute("data-rocket-src"),t.src=s):t.src="data:text/javascript;base64,"+window.btoa(unescape(encodeURIComponent(t.text)))}}catch(i){t.setAttribute("data-rocket-status","failed-transform"),e()}}));t.setAttribute("data-rocket-status","skipped")}async C(t){const e=t.shift();return e?(e.isConnected&&await this.$(e),this.C(t)):Promise.resolve()}O(){this.N([...this.delayedScripts.normal,...this.delayedScripts.defer,...this.delayedScripts.async],"preload")}N(t,e){this.trash=this.trash||[];let i=!0;var o=document.createDocumentFragment();t.forEach((t=>{const s=t.getAttribute&&t.getAttribute("data-rocket-src")||t.src;if(s&&!s.startsWith("data:")){const n=document.createElement("link");n.href=s,n.rel=e,"preconnect"!==e&&(n.as="script",n.fetchPriority=i?"high":"low"),t.getAttribute&&"module"===t.getAttribute("data-rocket-type")&&(n.crossOrigin=!0),t.crossOrigin&&(n.crossOrigin=t.crossOrigin),t.integrity&&(n.integrity=t.integrity),t.nonce&&(n.nonce=t.nonce),o.appendChild(n),this.trash.push(n),i=!1}})),document.head.appendChild(o)}W(){this.trash.forEach((t=>t.remove()))}async F(){try{document.readyState="interactive"}catch(t){}this.fauxDomReadyFired=!0;try{await this.G(),document.dispatchEvent(new Event("rocket-readystatechange")),await this.G(),document.rocketonreadystatechange&&document.rocketonreadystatechange(),await this.G(),document.dispatchEvent(new Event("rocket-DOMContentLoaded")),await this.G(),window.dispatchEvent(new Event("rocket-DOMContentLoaded"))}catch(t){console.error(t)}}async A(){try{document.readyState="complete"}catch(t){}try{await this.G(),document.dispatchEvent(new Event("rocket-readystatechange")),await this.G(),document.rocketonreadystatechange&&document.rocketonreadystatechange(),await this.G(),window.dispatchEvent(new Event("rocket-load")),await this.G(),window.rocketonload&&window.rocketonload(),await this.G(),this.allJQueries.forEach((t=>t(window).trigger("rocket-jquery-load"))),await this.G();const t=new Event("rocket-pageshow");t.persisted=this.persisted,window.dispatchEvent(t),await this.G(),window.rocketonpageshow&&window.rocketonpageshow({persisted:this.persisted})}catch(t){console.error(t)}}async G(){Date.now()-this.lastBreath>45&&(await this.J(),this.lastBreath=Date.now())}async J(){return document.hidden?new Promise((t=>setTimeout(t))):new Promise((t=>requestAnimationFrame(t)))}B(t,e){return e===document&&"readystatechange"===t||(e===document&&"DOMContentLoaded"===t||(e===window&&"DOMContentLoaded"===t||(e===window&&"load"===t||e===window&&"pageshow"===t)))}static run(){(new RocketLazyLoadScripts).t()}}RocketLazyLoadScripts.run()})();</script> <meta name='viewport' content='width=device-width, initial-scale=1.0' /> <meta http-equiv='X-UA-Compatible' content='IE=edge' /> <link rel="profile" href="https://gmpg.org/xfn/11" /> <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> <style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style> <!-- This site is optimized with the Yoast SEO plugin v24.4 - https://yoast.com/wordpress/plugins/seo/ --> <title>For Hr | Printfection</title><link rel="preload" data-rocket-preload as="image" href="https://www.printfection.com/wp-content/uploads/2021/07/Frame-1987.png" fetchpriority="high"> <link rel="canonical" href="https://www.printfection.com/how-it-works/for-hr/" /> <meta property="og:locale" content="en_US" /> <meta property="og:type" content="article" /> <meta property="og:title" content="For Hr | Printfection" /> <meta property="og:url" content="https://www.printfection.com/how-it-works/for-hr/" /> <meta property="og:site_name" content="Printfection" /> <meta property="article:modified_time" content="2023-11-17T19:19:55+00:00" /> <meta property="og:image" content="https://www.printfection.com/wp-content/uploads/2023/09/PF_by_CI_Vertical_FC@300.png" /> <meta property="og:image:width" content="912" /> <meta property="og:image:height" content="782" /> <meta property="og:image:type" content="image/png" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:site" content="@printfection" /> <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://www.printfection.com/how-it-works/for-hr/","url":"https://www.printfection.com/how-it-works/for-hr/","name":"For Hr | Printfection","isPartOf":{"@id":"https://www.printfection.com/#website"},"datePublished":"2021-07-26T14:03:22+00:00","dateModified":"2023-11-17T19:19:55+00:00","breadcrumb":{"@id":"https://www.printfection.com/how-it-works/for-hr/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://www.printfection.com/how-it-works/for-hr/"]}]},{"@type":"BreadcrumbList","@id":"https://www.printfection.com/how-it-works/for-hr/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"How It Works","item":"https://www.printfection.com/how-it-works/"},{"@type":"ListItem","position":2,"name":"For Hr"}]},{"@type":"WebSite","@id":"https://www.printfection.com/#website","url":"https://www.printfection.com/","name":"Printfection","description":"Swag Management Platform","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://www.printfection.com/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}</script> <!-- / Yoast SEO plugin. --> <link rel='dns-prefetch' href='//fonts.googleapis.com' /> <link href='https://fonts.gstatic.com' crossorigin rel='preconnect' /> <link rel="alternate" type="application/rss+xml" title="Printfection &raquo; Feed" href="https://www.printfection.com/feed/" /> <link rel="alternate" type="application/rss+xml" title="Printfection &raquo; Comments Feed" href="https://www.printfection.com/comments/feed/" /> <link rel="preload" href="https://www.printfection.com/wp-content/plugins/bb-plugin/fonts/fontawesome/5.15.4/webfonts/fa-solid-900.woff2" as="font" type="font/woff2" crossorigin="anonymous"> <style id='wp-emoji-styles-inline-css'> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 0.07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <link rel='stylesheet' id='wp-block-library-css' href='https://www.printfection.com/wp-includes/css/dist/block-library/style.min.css?ver=6.7.1' media='all' /> <style id='wp-block-library-theme-inline-css'> .wp-block-audio :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-audio :where(figcaption){color:#ffffffa6}.wp-block-audio{margin:0 0 1em}.wp-block-code{border:1px solid #ccc;border-radius:4px;font-family:Menlo,Consolas,monaco,monospace;padding:.8em 1em}.wp-block-embed :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-embed :where(figcaption){color:#ffffffa6}.wp-block-embed{margin:0 0 1em}.blocks-gallery-caption{color:#555;font-size:13px;text-align:center}.is-dark-theme .blocks-gallery-caption{color:#ffffffa6}:root :where(.wp-block-image figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme :root :where(.wp-block-image figcaption){color:#ffffffa6}.wp-block-image{margin:0 0 1em}.wp-block-pullquote{border-bottom:4px solid;border-top:4px solid;color:currentColor;margin-bottom:1.75em}.wp-block-pullquote cite,.wp-block-pullquote footer,.wp-block-pullquote__citation{color:currentColor;font-size:.8125em;font-style:normal;text-transform:uppercase}.wp-block-quote{border-left:.25em solid;margin:0 0 1.75em;padding-left:1em}.wp-block-quote cite,.wp-block-quote footer{color:currentColor;font-size:.8125em;font-style:normal;position:relative}.wp-block-quote:where(.has-text-align-right){border-left:none;border-right:.25em solid;padding-left:0;padding-right:1em}.wp-block-quote:where(.has-text-align-center){border:none;padding-left:0}.wp-block-quote.is-large,.wp-block-quote.is-style-large,.wp-block-quote:where(.is-style-plain){border:none}.wp-block-search .wp-block-search__label{font-weight:700}.wp-block-search__button{border:1px solid #ccc;padding:.375em .625em}:where(.wp-block-group.has-background){padding:1.25em 2.375em}.wp-block-separator.has-css-opacity{opacity:.4}.wp-block-separator{border:none;border-bottom:2px solid;margin-left:auto;margin-right:auto}.wp-block-separator.has-alpha-channel-opacity{opacity:1}.wp-block-separator:not(.is-style-wide):not(.is-style-dots){width:100px}.wp-block-separator.has-background:not(.is-style-dots){border-bottom:none;height:1px}.wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots){height:2px}.wp-block-table{margin:0 0 1em}.wp-block-table td,.wp-block-table th{word-break:normal}.wp-block-table :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-table :where(figcaption){color:#ffffffa6}.wp-block-video :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-video :where(figcaption){color:#ffffffa6}.wp-block-video{margin:0 0 1em}:root :where(.wp-block-template-part.has-background){margin-bottom:0;margin-top:0;padding:1.25em 2.375em} </style> <style id='safe-svg-svg-icon-style-inline-css'> .safe-svg-cover{text-align:center}.safe-svg-cover .safe-svg-inside{display:inline-block;max-width:100%}.safe-svg-cover svg{height:100%;max-height:100%;max-width:100%;width:100%} </style> <style id='classic-theme-styles-inline-css'> /*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} </style> <style id='global-styles-inline-css'> :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--fl-heading-text: #2a2f57;--wp--preset--color--fl-body-bg: #f5f6fc;--wp--preset--color--fl-body-text: #2a2f57;--wp--preset--color--fl-accent: #4cbde5;--wp--preset--color--fl-accent-hover: #4cbde5;--wp--preset--color--fl-topbar-bg: #2a2f57;--wp--preset--color--fl-topbar-text: #ffffff;--wp--preset--color--fl-topbar-link: #c2d2e0;--wp--preset--color--fl-topbar-hover: #ffffff;--wp--preset--color--fl-header-bg: #2a2f57;--wp--preset--color--fl-header-text: #ffffff;--wp--preset--color--fl-header-link: #ffffff;--wp--preset--color--fl-header-hover: #f5f6fc;--wp--preset--color--fl-nav-bg: #ffffff;--wp--preset--color--fl-nav-link: #e8f6ff;--wp--preset--color--fl-nav-hover: #ffffff;--wp--preset--color--fl-content-bg: #ffffff;--wp--preset--color--fl-footer-widgets-bg: #326796;--wp--preset--color--fl-footer-widgets-text: #c2d2e0;--wp--preset--color--fl-footer-widgets-link: #c2d2e0;--wp--preset--color--fl-footer-widgets-hover: #ffffff;--wp--preset--color--fl-footer-bg: #428bca;--wp--preset--color--fl-footer-text: #c2d2e0;--wp--preset--color--fl-footer-link: #c2d2e0;--wp--preset--color--fl-footer-hover: #ffffff;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} </style> <link data-minify="1" rel='stylesheet' id='fl-builder-layout-5129-css' href='https://www.printfection.com/wp-content/cache/min/1/wp-content/uploads/bb-plugin/cache/5129-layout.css?ver=1737782106' media='all' /> <link data-minify="1" rel='stylesheet' id='contact-form-7-css' href='https://www.printfection.com/wp-content/cache/min/1/wp-content/plugins/contact-form-7/includes/css/styles.css?ver=1737771671' media='all' /> <link rel='stylesheet' id='wpcf7-redirect-script-frontend-css' href='https://www.printfection.com/wp-content/plugins/wpcf7-redirect/build/css/wpcf7-redirect-frontend.min.css?ver=1.1' media='all' /> <link rel='stylesheet' id='ivory-search-styles-css' href='https://www.printfection.com/wp-content/plugins/add-search-to-menu/public/css/ivory-search.min.css?ver=5.5.9' media='all' /> <link data-minify="1" rel='stylesheet' id='font-awesome-5-css' href='https://www.printfection.com/wp-content/cache/min/1/wp-content/plugins/bb-plugin/fonts/fontawesome/5.15.4/css/all.min.css?ver=1737771671' media='all' /> <link rel='stylesheet' id='font-awesome-css' href='https://www.printfection.com/wp-content/plugins/bb-plugin/fonts/fontawesome/5.15.4/css/v4-shims.min.css?ver=2.8.6.1' media='all' /> <link data-minify="1" rel='stylesheet' id='fl-builder-layout-bundle-ab8d2e03eb56ab7f139f89d67af87fe6-css' href='https://www.printfection.com/wp-content/cache/min/1/wp-content/uploads/bb-plugin/cache/ab8d2e03eb56ab7f139f89d67af87fe6-layout-bundle.css?ver=1737771820' media='all' /> <link data-minify="1" rel='stylesheet' id='popup-maker-site-css' href='https://www.printfection.com/wp-content/cache/min/1/wp-content/uploads/pum/pum-site-styles.css?ver=1737771671' media='all' /> <link rel='stylesheet' id='jquery-magnificpopup-css' href='https://www.printfection.com/wp-content/plugins/bb-plugin/css/jquery.magnificpopup.min.css?ver=2.8.6.1' media='all' /> <link rel='stylesheet' id='bootstrap-4-css' href='https://www.printfection.com/wp-content/themes/bb-theme/css/bootstrap-4.min.css?ver=1.7.17.1' media='all' /> <link data-minify="1" rel='stylesheet' id='fl-automator-skin-css' href='https://www.printfection.com/wp-content/cache/min/1/wp-content/uploads/bb-theme/skin-67944a845d6ee.css?ver=1737771671' media='all' /> <link data-minify="1" rel='stylesheet' id='fl-child-theme-css' href='https://www.printfection.com/wp-content/cache/min/1/wp-content/themes/bb-theme-child/style.css?ver=1737771671' media='all' /> <link rel='stylesheet' id='fl-builder-google-fonts-80e8bc9cda6100516089d9f792902636-css' href='//fonts.googleapis.com/css?family=Nunito+Sans%3A400%2C700%2C300%2C600%7CWork+Sans%3A500&#038;ver=6.7.1' media='all' /> <script type="rocketlazyloadscript" data-rocket-src="https://www.printfection.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script> <script type="rocketlazyloadscript" data-rocket-src="https://www.printfection.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script> <script type="rocketlazyloadscript" data-minify="1" data-rocket-src="https://www.printfection.com/wp-content/cache/min/1/wp-content/plugins/handl-utm-grabber/js/js.cookie.js?ver=1737771671" id="js.cookie-js"></script> <script id="handl-utm-grabber-js-extra"> var handl_utm = []; </script> <script type="rocketlazyloadscript" data-minify="1" data-rocket-src="https://www.printfection.com/wp-content/cache/min/1/wp-content/plugins/handl-utm-grabber/js/handl-utm-grabber.js?ver=1737771671" id="handl-utm-grabber-js"></script> <link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://www.printfection.com/xmlrpc.php?rsd" /> <link rel='shortlink' href='https://www.printfection.com/?p=5129' /> <link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://www.printfection.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.printfection.com%2Fhow-it-works%2Ffor-hr%2F" /> <link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://www.printfection.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.printfection.com%2Fhow-it-works%2Ffor-hr%2F&#038;format=xml" /> <!-- HFCM by 99 Robots - Snippet # 1: Accessibe --> <script nowprocket>(function(){ var s = document.createElement('script'), e = ! document.body ? document.querySelector('head') : document.body; s.src = 'https://acsbapp.com/apps/app/dist/js/app.js'; s.async = true; s.onload = function(){ acsbJS.init({ statementLink : '', footerHtml : '', hideMobile : false, hideTrigger : false, language : 'en', position : 'left', leadColor : '#2a2f57', triggerColor : '#4cbde5', triggerRadius : '5px', triggerPositionX : 'right', triggerPositionY : 'bottom', triggerIcon : 'people', triggerSize : 'small', triggerOffsetX : 20, triggerOffsetY : 20, mobile : { triggerSize : 'small', triggerPositionX : 'right', triggerPositionY : 'bottom', triggerOffsetX : 10, triggerOffsetY : 10, triggerRadius : '5px' } }); }; e.appendChild(s);}());</script> <!-- /end HFCM by 99 Robots --> <script type="rocketlazyloadscript"> document.documentElement.className = document.documentElement.className.replace('no-js', 'js'); </script> <style> .no-js img.lazyload { display: none; } figure.wp-block-image img.lazyloading { min-width: 150px; } .lazyload, .lazyloading { opacity: 0; } .lazyloaded { opacity: 1; transition: opacity 400ms; transition-delay: 0ms; } </style> <style type="text/css" id="filter-everything-inline-css">.wpc-orderby-select{width:100%}.wpc-filters-open-button-container{display:none}.wpc-debug-message{padding:16px;font-size:14px;border:1px dashed #ccc;margin-bottom:20px}.wpc-debug-title{visibility:hidden}.wpc-button-inner,.wpc-chip-content{display:flex;align-items:center}.wpc-icon-html-wrapper{position:relative;margin-right:10px;top:2px}.wpc-icon-html-wrapper span{display:block;height:1px;width:18px;border-radius:3px;background:#2c2d33;margin-bottom:4px;position:relative}span.wpc-icon-line-1:after,span.wpc-icon-line-2:after,span.wpc-icon-line-3:after{content:"";display:block;width:3px;height:3px;border:1px solid #2c2d33;background-color:#fff;position:absolute;top:-2px;box-sizing:content-box}span.wpc-icon-line-3:after{border-radius:50%;left:2px}span.wpc-icon-line-1:after{border-radius:50%;left:5px}span.wpc-icon-line-2:after{border-radius:50%;left:12px}body .wpc-filters-open-button-container a.wpc-filters-open-widget,body .wpc-filters-open-button-container a.wpc-open-close-filters-button{display:inline-block;text-align:left;border:1px solid #2c2d33;border-radius:2px;line-height:1.5;padding:7px 12px;background-color:transparent;color:#2c2d33;box-sizing:border-box;text-decoration:none!important;font-weight:400;transition:none;position:relative}@media screen and (max-width:768px){.wpc_show_bottom_widget .wpc-filters-open-button-container,.wpc_show_open_close_button .wpc-filters-open-button-container{display:block}.wpc_show_bottom_widget .wpc-filters-open-button-container{margin-top:1em;margin-bottom:1em}}</style> <link rel="icon" href="https://www.printfection.com/wp-content/uploads/2019/02/cropped-favicon-32x32.png" sizes="32x32" /> <link rel="icon" href="https://www.printfection.com/wp-content/uploads/2019/02/cropped-favicon-192x192.png" sizes="192x192" /> <link rel="apple-touch-icon" href="https://www.printfection.com/wp-content/uploads/2019/02/cropped-favicon-180x180.png" /> <meta name="msapplication-TileImage" content="https://www.printfection.com/wp-content/uploads/2019/02/cropped-favicon-270x270.png" /> <style id="wp-custom-css"> blockquote { max-width: 900px; text-align: left; margin: 25px; padding: 25px; font-family: Nunito sans,bold,italic; font-size: 18px; color: #2A2F57; background: #EFF1F9; border-left:8px solid #4CBDE5; } .fl-col.fl-node-600839dc14174.fl-col-small a.fl-button { padding-left: 2px; padding-right: 2px; } .fl-module.fl-module-sidebar.fl-node-6172c7781416f .fl-module-content.fl-node-content { margin-top: 0px !important; } div.fl-module.fl-module-sidebar.fl-node-6172c7781416f h4 { font-size: 20px; } div.fl-module.fl-module-sidebar.fl-node-6172c7781416f a { font-size: 16px; } .fl-node-600833c874ede .fl-photo-img, .fl-node-600833c874ede .fl-photo-content { min-width: 200px !important; } .grecaptcha-badge { display: none !important; } .fl-row.fl-row-full-width.fl-row-bg-color.fl-node-6054ed3c37f63.fl-row-default-height.fl-row-align-center.fl-visible-medium.fl-visible-mobile .fl-row-content-wrap { padding-top: 20px !important; } .fl-row.fl-row-full-width.fl-row-bg-color.fl-node-5b045d1dc20fe.fl-row-default-height.fl-row-align-center.fl-visible-desktop.fl-visible-large .fl-row-content-wrap { padding-top: 30px !important; } @media only screen and (max-width: 767px) { .fl-builder-content .fl-node-6059d14eb3e24 .fl-button-wrap a.fl-button { padding: 10px; } } input[name="gclid"] { display: none !important; } </style> <style type="text/css"> </style> <style type="text/css"> </style> <script type="rocketlazyloadscript" id="fl-theme-custom-js">document.addEventListener('DOMContentLoaded', function() { function addGclidToForms() { // Get the URL parameters const urlParams = new URLSearchParams(window.location.search); const gclid = urlParams.get('gclid'); // Check if gclid exists if (gclid) { // Get the existing gclid input field const gclidInput = document.querySelector('input[name="gclid"]'); // Check if the input field exists if (gclidInput) { console.log('Field present'); console.log(gclid); // Set the value of the existing input field // gclidInput.value = gclid; gclidInput.setAttribute('value',gclid); } } } addGclidToForms(); }); // Store GCLID throughout function getParam(p) { var match = RegExp('[?&]' + p + '=([^&]*)').exec(window.location.search); return match && decodeURIComponent(match[1].replace(/\+/g, ' ')); } function getExpiryRecord(value) { var expiryPeriod = 90 * 24 * 60 * 60 * 1000; // 90-day expiry in milliseconds var expiryDate = new Date().getTime() + expiryPeriod; return { value: value, expiryDate: expiryDate }; } function addGclid() { var gclidParam = getParam('gclid'); var gclidFormFields = ['gclid_field', 'foobar']; // Replace with your form field names var gclidRecord = null; var currGclidFormField; var gclsrcParam = getParam('gclsrc'); var isGclsrcValid = !gclsrcParam || gclsrcParam.indexOf('aw') !== -1; gclidFormFields.forEach(function (field) { var fieldElement = document.querySelector(`input[name="${field}"]`); if (fieldElement) { currGclidFormField = fieldElement; } }); if (gclidParam && isGclsrcValid) { gclidRecord = getExpiryRecord(gclidParam); localStorage.setItem('gclid', JSON.stringify(gclidRecord)); } var gclid = gclidRecord || JSON.parse(localStorage.getItem('gclid')); var isGclidValid = gclid && new Date().getTime() < gclid.expiryDate; if (currGclidFormField && isGclidValid) { currGclidFormField.value = gclid.value; } } window.addEventListener('load', addGclid); </script> <meta name="google-site-verification" content="fTjDVyW7LUdY4xWu7C4tRYKQCZfmiZ6B-M8mb300Ec4" /> <!-- Google Tag Manager added Dec 14/2017 --> <!-- Google Tag Manager --> <script nowprocket>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-WRWTN8F');</script> <!-- End Google Tag Manager --> <!-- End Google Tag Manager added Dec 14/2017 --> <!-- Bizable Script --> <script data-minify="1" nowprocket type="text/javascript" src="https://www.printfection.com/wp-content/cache/min/1/scripts/bizible.js?ver=1737771671" async=""></script> <!-- Bootstrap 4 popper script enables tooltips --> <script data-minify="1" nowprocket type="text/javascript" src="https://www.printfection.com/wp-content/cache/min/1/ajax/libs/popper.js/1.14.3/umd/popper.min.js?ver=1737771671"></script> <script nowprocket type="text/javascript">(function(o){var b="https://niblewren.co/anywhere/",t="d11ce32635304728bf40cfcc0ec7ef0c06271822fd1e40ea89400dd2bcbb85ce",a=window.AutopilotAnywhere={_runQueue:[],run:function(){this._runQueue.push(arguments);}},c=encodeURIComponent,s="SCRIPT",d=document,l=d.getElementsByTagName(s)[0],p="t="+c(d.title||"")+"&u="+c(d.location.href||"")+"&r="+c(d.referrer||""),j="text/javascript",z,y;if(!window.Autopilot) window.Autopilot=a;if(o.app) p="devmode=true&"+p;z=function(src,asy){var e=d.createElement(s);e.src=src;e.type=j;e.async=asy;l.parentNode.insertBefore(e,l);};y=function(){z(b+t+'?'+p,true);};if(window.attachEvent){window.attachEvent("onload",y);}else{window.addEventListener("load",y,false);}})({});</script> <style id="rocket-lazyrender-inline-css">[data-wpr-lazyrender] {content-visibility: auto;}</style><meta name="generator" content="WP Rocket 3.18.1.5" data-wpr-features="wpr_delay_js wpr_minify_js wpr_automatic_lazy_rendering wpr_oci wpr_image_dimensions wpr_minify_css wpr_desktop wpr_preload_links" /></head> <body class="page-template-default page page-id-5129 page-child parent-pageid-5131 fl-builder fl-builder-2-8-6-1 fl-themer-1-4-11-2 fl-theme-1-7-17-1 bb-theme fl-theme-builder-footer fl-theme-builder-footer-footer-2 fl-theme-builder-header fl-theme-builder-header-header fl-framework-bootstrap-4 fl-preset-bold fl-full-width fl-search-active" itemscope="itemscope" itemtype="https://schema.org/WebPage"> <!-- Google Tag Manager (noscript) added Dec 14/2017--> <noscript nowprocket><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-WRWTN8F" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --><a aria-label="Skip to content" class="fl-screen-reader-text" href="#fl-main-content">Skip to content</a><div class="fl-page"> <header class="fl-builder-content fl-builder-content-3856 fl-builder-global-templates-locked" data-post-id="3856" data-type="header" data-sticky="1" data-sticky-on="" data-sticky-breakpoint="medium" data-shrink="1" data-overlay="0" data-overlay-bg="transparent" data-shrink-image-height="50px" role="banner" itemscope="itemscope" itemtype="http://schema.org/WPHeader"><div class="fl-row fl-row-full-width fl-row-bg-color fl-node-6007224b67301 fl-row-default-height fl-row-align-center fl-visible-desktop fl-visible-large" data-node="6007224b67301"> <div class="fl-row-content-wrap"> <div class="fl-row-content fl-row-fixed-width fl-node-content"> <div class="fl-col-group fl-node-6007224b67306 fl-col-group-equal-height fl-col-group-align-center fl-col-group-custom-width" data-node="6007224b67306"> <div class="fl-col fl-node-6007224b67307 fl-col-bg-color fl-col-small fl-col-small-custom-width" data-node="6007224b67307"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-600833c874ede" data-node="600833c874ede"> <div class="fl-module-content fl-node-content"> <div class="fl-photo fl-photo-align-left" itemscope itemtype="https://schema.org/ImageObject"> <div class="fl-photo-content fl-photo-img-svg"> <a href="https://www.printfection.com/" target="_self" itemprop="url"> <img decoding="async" class="fl-photo-img wp-image-13035 size-full" src="https://www.printfection.com/wp-content/uploads/2023/07/Printfection_logo_CI_Web.svg" alt="Printfection by Custom Ink logo" itemprop="image" height="49" width="200" title="Printfection by Custom Ink logo" data-no-lazy="1" /> </a> </div> </div> </div> </div> </div> </div> <div class="fl-col fl-node-6007224b67308 fl-col-bg-color fl-col-small-custom-width" data-node="6007224b67308"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-menu fl-node-6007224b6730a" data-node="6007224b6730a"> <div class="fl-module-content fl-node-content"> <div class="fl-menu fl-menu-responsive-toggle-mobile"> <button class="fl-menu-mobile-toggle hamburger" aria-label="Menu"><span class="fl-menu-icon svg-container"><svg version="1.1" class="hamburger-menu" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 512 512"> <rect class="fl-hamburger-menu-top" width="512" height="102"/> <rect class="fl-hamburger-menu-middle" y="205" width="512" height="102"/> <rect class="fl-hamburger-menu-bottom" y="410" width="512" height="102"/> </svg> </span></button> <div class="fl-clear"></div> <nav aria-label="Menu" itemscope="itemscope" itemtype="https://schema.org/SiteNavigationElement"><ul id="menu-main-menu" class="menu fl-menu-horizontal fl-toggle-none"><li id="menu-item-5145" class="mega-menu menu-item menu-item-type-post_type menu-item-object-page current-page-ancestor current-menu-ancestor current-page-parent current_page_ancestor menu-item-has-children fl-has-submenu"><div class="fl-has-submenu-container"><a href="https://www.printfection.com/how-it-works/">How It Works</a><span class="fl-menu-toggle"></span></div><ul class="sub-menu"> <li id="menu-item-5149" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-ancestor current-menu-parent menu-item-has-children fl-has-submenu"><div class="fl-has-submenu-container"><a href="#">Teams</a><span class="fl-menu-toggle"></span></div><ul class="sub-menu"> <li id="menu-item-5146" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/how-it-works/for-marketing/">For marketing</a></li> <li id="menu-item-5147" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-5129 current_page_item"><a href="https://www.printfection.com/how-it-works/for-hr/">For HR</a></li> <li id="menu-item-5148" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/how-it-works/for-customer-success/">For customer success</a></li> <li id="menu-item-5580" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/how-it-works/for-sales/">For sales</a></li></ul></li> <li id="menu-item-5150" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children fl-has-submenu"><div class="fl-has-submenu-container"><a href="#">Use cases</a><span class="fl-menu-toggle"></span></div><ul class="sub-menu"> <li id="menu-item-5151" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/solutions/lead-generation/">Lead generation</a></li> <li id="menu-item-5152" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/solutions/customer-rewards/">Customer rewards</a></li> <li id="menu-item-5154" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/solutions/virtual-physical-events/">Virtual &#038; physical events</a></li> <li id="menu-item-5371" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/employee-appreciation-use-case/">Employee appreciation</a></li> <li id="menu-item-5153" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/solutions/compare/">How Printfection compares</a></li></ul></li></ul></li><li id="menu-item-2127" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children fl-has-submenu"><div class="fl-has-submenu-container"><a href="https://www.printfection.com/features/">Features</a><span class="fl-menu-toggle"></span></div><ul class="sub-menu"> <li id="menu-item-2248" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/features/fulfillment/">Fulfillment</a></li> <li id="menu-item-2236" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/features/printing/">Printing</a></li> <li id="menu-item-2128" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/features/drop-ship/">Drop shipping</a></li> <li id="menu-item-2233" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/features/giveaways/">Giveaways</a></li> <li id="menu-item-4850" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/features/swag-boxes/">Swag boxes</a></li> <li id="menu-item-13717" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/features/egift-cards/">eGift cards</a></li> <li id="menu-item-4851" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/features/internal-swag-stores/">Internal swag stores</a></li> <li id="menu-item-2235" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/features/integrations/">Integrations</a></li></ul></li><li id="menu-item-12642" class="menu-item menu-item-type-taxonomy menu-item-object-catalog_category"><a href="https://www.printfection.com/swag/category/all-swag/">Swag</a></li><li id="menu-item-2121" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/pricing/">Pricing</a></li><li id="menu-item-5344" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children fl-has-submenu"><div class="fl-has-submenu-container"><a href="https://www.printfection.com/resources/">Resources</a><span class="fl-menu-toggle"></span></div><ul class="sub-menu"> <li id="menu-item-2237" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/case-studies/">Case studies</a></li> <li id="menu-item-3661" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/b2b-swag-growth-retention/">The Marketer鈥檚 Guide to B2B Swag Strategy</a></li> <li id="menu-item-12848" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/recruit-recognize-retain-talent-with-employee-swag/">Recruit, Recognize, &#038; Retain Talent with Employee Swag</a></li> <li id="menu-item-13309" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/sustainability/">Sustainability</a></li> <li id="menu-item-2456" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/blog/">Blog</a></li></ul></li><li id="menu-item-2252" class="menu-item menu-item-type-custom menu-item-object-custom"><a target="_blank" href="https://app.printfection.com/account/secure_login.php">Login</a></li></ul></nav></div> </div> </div> </div> </div> <div class="fl-col fl-node-600839dc14174 fl-col-bg-color fl-col-small" data-node="600839dc14174"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-button fl-node-600838a809b0a btn-red" data-node="600838a809b0a"> <div class="fl-module-content fl-node-content"> <div class="fl-button-wrap fl-button-width-custom fl-button-right"> <a href="http://info.printfection.com/request-demo" target="_self" class="fl-button"> <span class="fl-button-text">Get a demo</span> </a> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class="fl-row fl-row-full-width fl-row-bg-color fl-node-6059d14eb3cfc fl-row-default-height fl-row-align-center fl-visible-medium fl-visible-mobile" data-node="6059d14eb3cfc"> <div class="fl-row-content-wrap"> <div class="fl-row-content fl-row-fixed-width fl-node-content"> <div class="fl-col-group fl-node-6059d14eb3e1d fl-col-group-equal-height fl-col-group-align-center fl-col-group-custom-width" data-node="6059d14eb3e1d"> <div class="fl-col fl-node-6059d14eb3e1f fl-col-bg-color fl-col-small fl-col-small-custom-width" data-node="6059d14eb3e1f"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-6059d14eb3e20" data-node="6059d14eb3e20"> <div class="fl-module-content fl-node-content"> <div class="fl-photo fl-photo-align-left" itemscope itemtype="https://schema.org/ImageObject"> <div class="fl-photo-content fl-photo-img-svg"> <a href="https://www.printfection.com/" target="_self" itemprop="url"> <img decoding="async" class="fl-photo-img wp-image-13035 size-full" src="https://www.printfection.com/wp-content/uploads/2023/07/Printfection_logo_CI_Web.svg" alt="Printfection by Custom Ink logo" itemprop="image" height="49" width="200" title="Printfection by Custom Ink logo" data-no-lazy="1" /> </a> </div> </div> </div> </div> </div> </div> <div class="fl-col fl-node-6059d14eb3e21 fl-col-bg-color fl-col-small-custom-width" data-node="6059d14eb3e21"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-button fl-node-6059d14eb3e24 btn-red" data-node="6059d14eb3e24"> <div class="fl-module-content fl-node-content"> <div class="fl-button-wrap fl-button-width-auto fl-button-right"> <a href="https://www.printfection.com/get-demo/" target="_self" class="fl-button"> <span class="fl-button-text">Get a demo</span> </a> </div> </div> </div> </div> </div> <div class="fl-col fl-node-6059d14eb3e23 fl-col-bg-none fl-col-small fl-col-small-custom-width" data-node="6059d14eb3e23"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-menu fl-node-6059d14eb3e22" data-node="6059d14eb3e22"> <div class="fl-module-content fl-node-content"> <div class="fl-menu fl-menu-responsive-toggle-medium-mobile fl-menu-responsive-flyout-overlay fl-flyout-right"> <button class="fl-menu-mobile-toggle hamburger" aria-label="Menu"><span class="fl-menu-icon svg-container"><svg version="1.1" class="hamburger-menu" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 512 512"> <rect class="fl-hamburger-menu-top" width="512" height="102"/> <rect class="fl-hamburger-menu-middle" y="205" width="512" height="102"/> <rect class="fl-hamburger-menu-bottom" y="410" width="512" height="102"/> </svg> </span></button> <div class="fl-clear"></div> <nav aria-label="Menu" itemscope="itemscope" itemtype="https://schema.org/SiteNavigationElement"><ul id="menu-main-menu-1" class="menu fl-menu-horizontal fl-toggle-arrows"><li id="menu-item-5145" class="mega-menu menu-item menu-item-type-post_type menu-item-object-page current-page-ancestor current-menu-ancestor current-page-parent current_page_ancestor menu-item-has-children fl-has-submenu"><div class="fl-has-submenu-container"><a href="https://www.printfection.com/how-it-works/">How It Works</a><span class="fl-menu-toggle"></span></div><ul class="sub-menu"> <li id="menu-item-5149" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-ancestor current-menu-parent menu-item-has-children fl-has-submenu"><div class="fl-has-submenu-container"><a href="#">Teams</a><span class="fl-menu-toggle"></span></div><ul class="sub-menu"> <li id="menu-item-5146" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/how-it-works/for-marketing/">For marketing</a></li> <li id="menu-item-5147" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-5129 current_page_item"><a href="https://www.printfection.com/how-it-works/for-hr/">For HR</a></li> <li id="menu-item-5148" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/how-it-works/for-customer-success/">For customer success</a></li> <li id="menu-item-5580" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/how-it-works/for-sales/">For sales</a></li></ul></li> <li id="menu-item-5150" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children fl-has-submenu"><div class="fl-has-submenu-container"><a href="#">Use cases</a><span class="fl-menu-toggle"></span></div><ul class="sub-menu"> <li id="menu-item-5151" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/solutions/lead-generation/">Lead generation</a></li> <li id="menu-item-5152" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/solutions/customer-rewards/">Customer rewards</a></li> <li id="menu-item-5154" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/solutions/virtual-physical-events/">Virtual &#038; physical events</a></li> <li id="menu-item-5371" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/employee-appreciation-use-case/">Employee appreciation</a></li> <li id="menu-item-5153" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/solutions/compare/">How Printfection compares</a></li></ul></li></ul></li><li id="menu-item-2127" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children fl-has-submenu"><div class="fl-has-submenu-container"><a href="https://www.printfection.com/features/">Features</a><span class="fl-menu-toggle"></span></div><ul class="sub-menu"> <li id="menu-item-2248" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/features/fulfillment/">Fulfillment</a></li> <li id="menu-item-2236" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/features/printing/">Printing</a></li> <li id="menu-item-2128" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/features/drop-ship/">Drop shipping</a></li> <li id="menu-item-2233" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/features/giveaways/">Giveaways</a></li> <li id="menu-item-4850" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/features/swag-boxes/">Swag boxes</a></li> <li id="menu-item-13717" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/features/egift-cards/">eGift cards</a></li> <li id="menu-item-4851" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/features/internal-swag-stores/">Internal swag stores</a></li> <li id="menu-item-2235" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/features/integrations/">Integrations</a></li></ul></li><li id="menu-item-12642" class="menu-item menu-item-type-taxonomy menu-item-object-catalog_category"><a href="https://www.printfection.com/swag/category/all-swag/">Swag</a></li><li id="menu-item-2121" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/pricing/">Pricing</a></li><li id="menu-item-5344" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children fl-has-submenu"><div class="fl-has-submenu-container"><a href="https://www.printfection.com/resources/">Resources</a><span class="fl-menu-toggle"></span></div><ul class="sub-menu"> <li id="menu-item-2237" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/case-studies/">Case studies</a></li> <li id="menu-item-3661" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/b2b-swag-growth-retention/">The Marketer鈥檚 Guide to B2B Swag Strategy</a></li> <li id="menu-item-12848" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/recruit-recognize-retain-talent-with-employee-swag/">Recruit, Recognize, &#038; Retain Talent with Employee Swag</a></li> <li id="menu-item-13309" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/sustainability/">Sustainability</a></li> <li id="menu-item-2456" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.printfection.com/blog/">Blog</a></li></ul></li><li id="menu-item-2252" class="menu-item menu-item-type-custom menu-item-object-custom"><a target="_blank" href="https://app.printfection.com/account/secure_login.php">Login</a></li></ul></nav></div> </div> </div> </div> </div> </div> </div> </div> </div> </header><div class="uabb-js-breakpoint" style="display: none;"></div> <div id="fl-main-content" class="fl-page-content" itemprop="mainContentOfPage" role="main"> <div class="fl-content-full container"> <div class="row"> <div class="fl-content col-md-12"> <article class="fl-post post-5129 page type-page status-publish hentry" id="fl-post-5129" itemscope="itemscope" itemtype="https://schema.org/CreativeWork"> <div class="fl-post-content clearfix" itemprop="text"> <div class="fl-builder-content fl-builder-content-5129 fl-builder-content-primary fl-builder-global-templates-locked" data-post-id="5129"><div class="fl-row fl-row-full-width fl-row-bg-photo fl-node-60fec0f89e58e fl-row-custom-height fl-row-align-center fl-visible-desktop fl-visible-large" data-node="60fec0f89e58e"> <div class="fl-row-content-wrap"> <div class="fl-row-content fl-row-fixed-width fl-node-content"> <div class="fl-col-group fl-node-60fec0f89e594" data-node="60fec0f89e594"> <div class="fl-col fl-node-60fec0f89e595 fl-col-bg-color" data-node="60fec0f89e595"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-60fec0f89e596" data-node="60fec0f89e596"> <div class="fl-module-content fl-node-content"> <h2 class="fl-heading"> <span class="fl-heading-text">Engage employees with swag they'll love</span> </h2> </div> </div> <div class="fl-module fl-module-rich-text fl-node-60fec0f89e597" data-node="60fec0f89e597"> <div class="fl-module-content fl-node-content"> <div class="fl-rich-text"> <p>How HR and people teams benefit from Printfection's swag platform</p> </div> </div> </div> <div class="fl-module fl-module-photo fl-node-60fec0f89e5ce" data-node="60fec0f89e5ce"> <div class="fl-module-content fl-node-content"> <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject"> <div class="fl-photo-content fl-photo-img-png"> <img fetchpriority="high" decoding="async" class="fl-photo-img wp-image-13053 size-full" src="https://www.printfection.com/wp-content/uploads/2023/07/ForHR_Header_Resized_13_23.png" alt="ForHR_Header_Resized_13_23" itemprop="image" height="803" width="1802" title="ForHR_Header_Resized_13_23" srcset="https://www.printfection.com/wp-content/uploads/2023/07/ForHR_Header_Resized_13_23.png 1802w, https://www.printfection.com/wp-content/uploads/2023/07/ForHR_Header_Resized_13_23-300x134.png 300w, https://www.printfection.com/wp-content/uploads/2023/07/ForHR_Header_Resized_13_23-1024x456.png 1024w, https://www.printfection.com/wp-content/uploads/2023/07/ForHR_Header_Resized_13_23-768x342.png 768w, https://www.printfection.com/wp-content/uploads/2023/07/ForHR_Header_Resized_13_23-1536x684.png 1536w" sizes="(max-width: 1802px) 100vw, 1802px" /> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class="fl-row fl-row-full-width fl-row-bg-photo fl-node-bywzcs8vruht fl-row-custom-height fl-row-align-center fl-visible-medium" data-node="bywzcs8vruht"> <div class="fl-row-content-wrap"> <div class="fl-row-content fl-row-fixed-width fl-node-content"> <div class="fl-col-group fl-node-f9iw8z3tepu1" data-node="f9iw8z3tepu1"> <div class="fl-col fl-node-ol0gjshd9vkf fl-col-bg-color" data-node="ol0gjshd9vkf"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-rtnb41kq9mgl" data-node="rtnb41kq9mgl"> <div class="fl-module-content fl-node-content"> <h2 class="fl-heading"> <span class="fl-heading-text">Engage employees with swag they'll love</span> </h2> </div> </div> <div class="fl-module fl-module-rich-text fl-node-xpw3b7jgdnhm" data-node="xpw3b7jgdnhm"> <div class="fl-module-content fl-node-content"> <div class="fl-rich-text"> <p>How HR and people teams benefit from Printfection's swag platform</p> </div> </div> </div> <div class="fl-module fl-module-photo fl-node-uhi1c68ozqkf" data-node="uhi1c68ozqkf"> <div class="fl-module-content fl-node-content"> <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject"> <div class="fl-photo-content fl-photo-img-png"> <img fetchpriority="high" decoding="async" class="fl-photo-img wp-image-13053 size-full" src="https://www.printfection.com/wp-content/uploads/2023/07/ForHR_Header_Resized_13_23.png" alt="ForHR_Header_Resized_13_23" itemprop="image" height="803" width="1802" title="ForHR_Header_Resized_13_23" srcset="https://www.printfection.com/wp-content/uploads/2023/07/ForHR_Header_Resized_13_23.png 1802w, https://www.printfection.com/wp-content/uploads/2023/07/ForHR_Header_Resized_13_23-300x134.png 300w, https://www.printfection.com/wp-content/uploads/2023/07/ForHR_Header_Resized_13_23-1024x456.png 1024w, https://www.printfection.com/wp-content/uploads/2023/07/ForHR_Header_Resized_13_23-768x342.png 768w, https://www.printfection.com/wp-content/uploads/2023/07/ForHR_Header_Resized_13_23-1536x684.png 1536w" sizes="(max-width: 1802px) 100vw, 1802px" /> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class="fl-row fl-row-full-width fl-row-bg-photo fl-node-3h2a79cojn4p fl-row-custom-height fl-row-align-center fl-visible-mobile" data-node="3h2a79cojn4p"> <div class="fl-row-content-wrap"> <div class="fl-row-content fl-row-fixed-width fl-node-content"> <div class="fl-col-group fl-node-nde1pc7wjtxg" data-node="nde1pc7wjtxg"> <div class="fl-col fl-node-9evcgmnzxh35 fl-col-bg-color" data-node="9evcgmnzxh35"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-rudn5ayq0tl2" data-node="rudn5ayq0tl2"> <div class="fl-module-content fl-node-content"> <h2 class="fl-heading"> <span class="fl-heading-text">Engage employees with swag they'll love</span> </h2> </div> </div> <div class="fl-module fl-module-rich-text fl-node-em7lsc0o9qfz" data-node="em7lsc0o9qfz"> <div class="fl-module-content fl-node-content"> <div class="fl-rich-text"> <p>How HR and people teams benefit from Printfection's swag platform</p> </div> </div> </div> <div class="fl-module fl-module-photo fl-node-m24hy576cgu0" data-node="m24hy576cgu0"> <div class="fl-module-content fl-node-content"> <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject"> <div class="fl-photo-content fl-photo-img-png"> <img fetchpriority="high" decoding="async" class="fl-photo-img wp-image-13053 size-full" src="https://www.printfection.com/wp-content/uploads/2023/07/ForHR_Header_Resized_13_23.png" alt="ForHR_Header_Resized_13_23" itemprop="image" height="803" width="1802" title="ForHR_Header_Resized_13_23" srcset="https://www.printfection.com/wp-content/uploads/2023/07/ForHR_Header_Resized_13_23.png 1802w, https://www.printfection.com/wp-content/uploads/2023/07/ForHR_Header_Resized_13_23-300x134.png 300w, https://www.printfection.com/wp-content/uploads/2023/07/ForHR_Header_Resized_13_23-1024x456.png 1024w, https://www.printfection.com/wp-content/uploads/2023/07/ForHR_Header_Resized_13_23-768x342.png 768w, https://www.printfection.com/wp-content/uploads/2023/07/ForHR_Header_Resized_13_23-1536x684.png 1536w" sizes="(max-width: 1802px) 100vw, 1802px" /> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class="fl-row fl-row-full-width fl-row-bg-photo fl-node-60fec0f89e598 fl-row-custom-height fl-row-align-center fl-visible-desktop fl-visible-large" data-node="60fec0f89e598"> <div class="fl-row-content-wrap"> <div class="fl-row-content fl-row-fixed-width fl-node-content"> <div class="fl-col-group fl-node-60fec0f89e599 fl-col-group-equal-height fl-col-group-align-center" data-node="60fec0f89e599"> <div class="fl-col fl-node-60fec0f89e59a fl-col-bg-color" data-node="60fec0f89e59a"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-60fec0f89e59d" data-node="60fec0f89e59d"> <div class="fl-module-content fl-node-content"> <h2 class="fl-heading"> <span class="fl-heading-text">Send swag to employees no matter where they are</span> </h2> </div> </div> <div class="fl-module fl-module-rich-text fl-node-60fec0f89e59e" data-node="60fec0f89e59e"> <div class="fl-module-content fl-node-content"> <div class="fl-rich-text"> <ul> <li>Send swag directly to employees' homes or drop ship to your offices</li> <li>Reward employees for work anniversaries, promotions, and other milestones</li> <li>Send personalized gift cards to make your staff feel loved</li> <li>Get unique swag ideas that your employees will actually want</li> <li>Reward your staff with awesome Giveaways!</li> </ul> </div> </div> </div> </div> </div> <div class="fl-col fl-node-60fec0f89e59b fl-col-bg-color fl-col-small" data-node="60fec0f89e59b"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-60fec0f89e59f" data-node="60fec0f89e59f"> <div class="fl-module-content fl-node-content"> <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject"> <div class="fl-photo-content fl-photo-img-png"> <img decoding="async" class="fl-photo-img wp-image-5094 size-full lazyload" data-src="https://www.printfection.com/wp-content/uploads/2021/07/items-2.png" alt="items" itemprop="image" height="626" width="960" title="items" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="--smush-placeholder-width: 960px; --smush-placeholder-aspect-ratio: 960/626;" /> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class="fl-row fl-row-full-width fl-row-bg-photo fl-node-g3jy0pihu7lt fl-row-custom-height fl-row-align-center fl-visible-medium" data-node="g3jy0pihu7lt"> <div class="fl-row-content-wrap"> <div class="fl-row-content fl-row-fixed-width fl-node-content"> <div class="fl-col-group fl-node-glhu58710oaw fl-col-group-equal-height fl-col-group-align-center" data-node="glhu58710oaw"> <div class="fl-col fl-node-6srleicawj72 fl-col-bg-color" data-node="6srleicawj72"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-8w6x1dki04v3" data-node="8w6x1dki04v3"> <div class="fl-module-content fl-node-content"> <h2 class="fl-heading"> <span class="fl-heading-text">Send swag to employees no matter where they are</span> </h2> </div> </div> <div class="fl-module fl-module-rich-text fl-node-w6gidcqm57pn" data-node="w6gidcqm57pn"> <div class="fl-module-content fl-node-content"> <div class="fl-rich-text"> <ul> <li>Send swag directly to employees' homes or drop ship to your offices</li> <li>Reward employees for work anniversaries, promotions, and other milestones</li> <li>Send personalized gift cards to make your staff feel loved</li> <li>Get unique swag ideas that your employees will actually want</li> <li>Reward your staff with awesome Giveaways!</li> </ul> </div> </div> </div> </div> </div> <div class="fl-col fl-node-85sux2ib6jpz fl-col-bg-color fl-col-small" data-node="85sux2ib6jpz"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-5ji9br21czf3" data-node="5ji9br21czf3"> <div class="fl-module-content fl-node-content"> <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject"> <div class="fl-photo-content fl-photo-img-png"> <img decoding="async" class="fl-photo-img wp-image-5094 size-full lazyload" data-src="https://www.printfection.com/wp-content/uploads/2021/07/items-2.png" alt="items" itemprop="image" height="626" width="960" title="items" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="--smush-placeholder-width: 960px; --smush-placeholder-aspect-ratio: 960/626;" /> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class="fl-row fl-row-full-width fl-row-bg-photo fl-node-60fec0f89e5b7 fl-row-default-height fl-row-align-center fl-visible-mobile" data-node="60fec0f89e5b7"> <div class="fl-row-content-wrap"> <div class="fl-row-content fl-row-fixed-width fl-node-content"> <div class="fl-col-group fl-node-60fec0f89e5b8 fl-col-group-equal-height fl-col-group-align-center" data-node="60fec0f89e5b8"> <div class="fl-col fl-node-60fec0f89e5b9 fl-col-bg-color" data-node="60fec0f89e5b9"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-60fec0f89e5ba" data-node="60fec0f89e5ba"> <div class="fl-module-content fl-node-content"> <h2 class="fl-heading"> <span class="fl-heading-text">Send swag to employees no matter where they are</span> </h2> </div> </div> <div class="fl-module fl-module-photo fl-node-60fec0f89e5bb" data-node="60fec0f89e5bb"> <div class="fl-module-content fl-node-content"> <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject"> <div class="fl-photo-content fl-photo-img-png"> <img width="960" height="626" decoding="async" class="fl-photo-img lazyload" data-src="https://www.printfection.com/wp-content/uploads/2021/07/items-2.png" alt="" itemprop="image" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="--smush-placeholder-width: 960px; --smush-placeholder-aspect-ratio: 960/626;" /> </div> </div> </div> </div> <div class="fl-module fl-module-rich-text fl-node-60fec0f89e5cf" data-node="60fec0f89e5cf"> <div class="fl-module-content fl-node-content"> <div class="fl-rich-text"> <ul> <li>Send swag directly to employees' homes or drop ship to your offices</li> <li>Reward employees for work anniversaries, promotions, and other milestones</li> <li>Send personalized gift cards to make your staff feel loved</li> <li>Get unique swag ideas that your employees will actually want</li> <li>Reward your staff with awesome Giveaways!</li> </ul> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class="fl-row fl-row-full-width fl-row-bg-photo fl-node-60fec0f89e5a0 fl-row-custom-height fl-row-align-center fl-visible-desktop fl-visible-large" data-node="60fec0f89e5a0"> <div class="fl-row-content-wrap"> <div class="fl-row-content fl-row-fixed-width fl-node-content"> <div class="fl-col-group fl-node-60fec0f89e5a1 fl-col-group-equal-height fl-col-group-align-center" data-node="60fec0f89e5a1"> <div class="fl-col fl-node-60fec0f89e5a2 fl-col-bg-color fl-col-small" data-node="60fec0f89e5a2"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-60fec0f89e5a6" data-node="60fec0f89e5a6"> <div class="fl-module-content fl-node-content"> <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject"> <div class="fl-photo-content fl-photo-img-png"> <img decoding="async" class="fl-photo-img wp-image-5039 size-full lazyload" data-src="https://www.printfection.com/wp-content/uploads/2021/07/Frame-3326.png" alt="Frame 3326" itemprop="image" height="894" width="1447" title="Frame 3326" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="--smush-placeholder-width: 1447px; --smush-placeholder-aspect-ratio: 1447/894;" /> </div> </div> </div> </div> </div> </div> <div class="fl-col fl-node-60fec0f89e5a5 fl-col-bg-color fl-col-small" data-node="60fec0f89e5a5"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-60fec0f89e5a3" data-node="60fec0f89e5a3"> <div class="fl-module-content fl-node-content"> <h2 class="fl-heading"> <span class="fl-heading-text">Create easy-to-use company swag stores </span> </h2> </div> </div> <div class="fl-module fl-module-rich-text fl-node-60fec0f89e5a4" data-node="60fec0f89e5a4"> <div class="fl-module-content fl-node-content"> <div class="fl-rich-text"> <ul> <li>Our intuitive swag stores let your employees request items they want</li> <li>Then we handle all the shipping to them</li> <li>You can also upload a CSV and we can send out items all at once</li> </ul> </div> </div> </div> <div class="fl-module fl-module-button fl-node-60fec0f89e5b5" data-node="60fec0f89e5b5"> <div class="fl-module-content fl-node-content"> <div class="fl-button-wrap fl-button-width-auto fl-button-left"> <a href="https://www.printfection.com/swag/" target="_self" class="fl-button"> <span class="fl-button-text">Learn more</span> </a> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class="fl-row fl-row-full-width fl-row-bg-photo fl-node-hlc0gzy94adk fl-row-custom-height fl-row-align-center fl-visible-medium" data-node="hlc0gzy94adk"> <div class="fl-row-content-wrap"> <div class="fl-row-content fl-row-fixed-width fl-node-content"> <div class="fl-col-group fl-node-ldbt7prw2aki fl-col-group-equal-height fl-col-group-align-center" data-node="ldbt7prw2aki"> <div class="fl-col fl-node-2h46c3ztqxui fl-col-bg-color fl-col-small" data-node="2h46c3ztqxui"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-zw6ck32d8j5g" data-node="zw6ck32d8j5g"> <div class="fl-module-content fl-node-content"> <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject"> <div class="fl-photo-content fl-photo-img-png"> <img decoding="async" class="fl-photo-img wp-image-5039 size-full lazyload" data-src="https://www.printfection.com/wp-content/uploads/2021/07/Frame-3326.png" alt="Frame 3326" itemprop="image" height="894" width="1447" title="Frame 3326" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="--smush-placeholder-width: 1447px; --smush-placeholder-aspect-ratio: 1447/894;" /> </div> </div> </div> </div> </div> </div> <div class="fl-col fl-node-71ugmdhrq92x fl-col-bg-color fl-col-small" data-node="71ugmdhrq92x"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-s6nvu1873bjz" data-node="s6nvu1873bjz"> <div class="fl-module-content fl-node-content"> <h2 class="fl-heading"> <span class="fl-heading-text">Create easy-to-use company swag stores </span> </h2> </div> </div> <div class="fl-module fl-module-rich-text fl-node-m4yb2afrvs9z" data-node="m4yb2afrvs9z"> <div class="fl-module-content fl-node-content"> <div class="fl-rich-text"> <ul> <li>Our intuitive swag stores let your employees request items they want</li> <li>Then we handle all the shipping to them</li> <li>You can also upload a CSV and we can send out items all at once</li> </ul> </div> </div> </div> <div class="fl-module fl-module-button fl-node-p0t4cs98ihrg" data-node="p0t4cs98ihrg"> <div class="fl-module-content fl-node-content"> <div class="fl-button-wrap fl-button-width-auto fl-button-left"> <a href="https://www.printfection.com/swag/" target="_self" class="fl-button"> <span class="fl-button-text">Learn more</span> </a> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class="fl-row fl-row-full-width fl-row-bg-photo fl-node-60fec0f89e5bc fl-row-default-height fl-row-align-center fl-visible-mobile" data-node="60fec0f89e5bc"> <div class="fl-row-content-wrap"> <div class="fl-row-content fl-row-fixed-width fl-node-content"> <div class="fl-col-group fl-node-60fec0f89e5bd fl-col-group-equal-height fl-col-group-align-center" data-node="60fec0f89e5bd"> <div class="fl-col fl-node-60fec0f89e5bf fl-col-bg-color" data-node="60fec0f89e5bf"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-60fec0f89e5c0" data-node="60fec0f89e5c0"> <div class="fl-module-content fl-node-content"> <h2 class="fl-heading"> <span class="fl-heading-text">Create easy-to-use company swag stores </span> </h2> </div> </div> <div class="fl-module fl-module-photo fl-node-60fec0f89e5be" data-node="60fec0f89e5be"> <div class="fl-module-content fl-node-content"> <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject"> <div class="fl-photo-content fl-photo-img-png"> <img width="1447" height="894" decoding="async" class="fl-photo-img lazyload" data-src="https://www.printfection.com/wp-content/uploads/2021/07/Frame-3326.png" alt="" itemprop="image" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="--smush-placeholder-width: 1447px; --smush-placeholder-aspect-ratio: 1447/894;" /> </div> </div> </div> </div> <div class="fl-module fl-module-button fl-node-60fec0f89e5c1" data-node="60fec0f89e5c1"> <div class="fl-module-content fl-node-content"> <div class="fl-button-wrap fl-button-width-full fl-button-left"> <a href="https://www.printfection.com/swag/" target="_self" class="fl-button"> <span class="fl-button-text">Learn more</span> </a> </div> </div> </div> <div class="fl-module fl-module-rich-text fl-node-60fec0f89e5d0" data-node="60fec0f89e5d0"> <div class="fl-module-content fl-node-content"> <div class="fl-rich-text"> <ul> <li>Our intuitive swag stores let your employees request items they want</li> <li>Then we handle all the shipping to them</li> <li>You can also upload a CSV and we can send out items all at once</li> </ul> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class="fl-row fl-row-full-width fl-row-bg-photo fl-node-60fec0f89e5a7 fl-row-custom-height fl-row-align-center fl-visible-desktop fl-visible-large" data-node="60fec0f89e5a7"> <div class="fl-row-content-wrap"> <div class="fl-row-content fl-row-fixed-width fl-node-content"> <div class="fl-col-group fl-node-60fec0f89e5a8 fl-col-group-equal-height fl-col-group-align-center" data-node="60fec0f89e5a8"> <div class="fl-col fl-node-60fec0f89e5a9 fl-col-bg-color" data-node="60fec0f89e5a9"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-60fec0f89e5aa" data-node="60fec0f89e5aa"> <div class="fl-module-content fl-node-content"> <h2 class="fl-heading"> <span class="fl-heading-text">Show your people love with custom employee swag kits</span> </h2> </div> </div> <div class="fl-module fl-module-rich-text fl-node-60fec0f89e5ab" data-node="60fec0f89e5ab"> <div class="fl-module-content fl-node-content"> <div class="fl-rich-text"> <ul> <li>Send beautiful branded boxes to celebrate onboarding, work anniversaries, and other awards</li> <li>Create personal kits for employees who have become new parents or made other life changes</li> <li>Create kits with sheets that share your company values along with personalized gift cards expressing your appreciation</li> </ul> </div> </div> </div> <div class="fl-module fl-module-button fl-node-60fec0f89e5b6" data-node="60fec0f89e5b6"> <div class="fl-module-content fl-node-content"> <div class="fl-button-wrap fl-button-width-auto fl-button-left"> <a href="https://www.printfection.com/features/kitting/" target="_self" class="fl-button"> <span class="fl-button-text">Learn more about kitting</span> </a> </div> </div> </div> </div> </div> <div class="fl-col fl-node-60fec0f89e5ac fl-col-bg-color fl-col-small" data-node="60fec0f89e5ac"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-60fec0f89e5ad" data-node="60fec0f89e5ad"> <div class="fl-module-content fl-node-content"> <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject"> <div class="fl-photo-content fl-photo-img-png"> <img decoding="async" class="fl-photo-img wp-image-5040 size-full lazyload" data-src="https://www.printfection.com/wp-content/uploads/2021/07/items.png" alt="items" itemprop="image" height="888" width="1289" title="items" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="--smush-placeholder-width: 1289px; --smush-placeholder-aspect-ratio: 1289/888;" /> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class="fl-row fl-row-full-width fl-row-bg-photo fl-node-5onrqgcmyu1t fl-row-custom-height fl-row-align-center fl-visible-medium" data-node="5onrqgcmyu1t"> <div class="fl-row-content-wrap"> <div class="fl-row-content fl-row-fixed-width fl-node-content"> <div class="fl-col-group fl-node-809gn3d1wu4e fl-col-group-equal-height fl-col-group-align-center" data-node="809gn3d1wu4e"> <div class="fl-col fl-node-9l1qxgyv2680 fl-col-bg-color" data-node="9l1qxgyv2680"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-usz0hc27jlmt" data-node="usz0hc27jlmt"> <div class="fl-module-content fl-node-content"> <h2 class="fl-heading"> <span class="fl-heading-text">Show your people love with custom employee swag kits</span> </h2> </div> </div> <div class="fl-module fl-module-rich-text fl-node-r39td6oewfa7" data-node="r39td6oewfa7"> <div class="fl-module-content fl-node-content"> <div class="fl-rich-text"> <ul> <li>Send beautiful branded boxes to celebrate onboarding, work anniversaries, and other awards</li> <li>Create personal kits for employees who have become new parents or made other life changes</li> <li>Create kits with sheets that share your company values along with personalized gift cards expressing your appreciation</li> </ul> </div> </div> </div> <div class="fl-module fl-module-button fl-node-b4c9hwmv86j3" data-node="b4c9hwmv86j3"> <div class="fl-module-content fl-node-content"> <div class="fl-button-wrap fl-button-width-auto fl-button-left"> <a href="https://www.printfection.com/features/kitting/" target="_self" class="fl-button"> <span class="fl-button-text">Learn more about kitting</span> </a> </div> </div> </div> </div> </div> <div class="fl-col fl-node-v02tfwrdile5 fl-col-bg-color fl-col-small" data-node="v02tfwrdile5"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-i8pmhvc4g0nb" data-node="i8pmhvc4g0nb"> <div class="fl-module-content fl-node-content"> <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject"> <div class="fl-photo-content fl-photo-img-png"> <img decoding="async" class="fl-photo-img wp-image-5040 size-full lazyload" data-src="https://www.printfection.com/wp-content/uploads/2021/07/items.png" alt="items" itemprop="image" height="888" width="1289" title="items" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="--smush-placeholder-width: 1289px; --smush-placeholder-aspect-ratio: 1289/888;" /> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class="fl-row fl-row-full-width fl-row-bg-photo fl-node-60fec0f89e5c2 fl-row-default-height fl-row-align-center fl-visible-mobile" data-node="60fec0f89e5c2"> <div class="fl-row-content-wrap"> <div class="fl-row-content fl-row-fixed-width fl-node-content"> <div class="fl-col-group fl-node-60fec0f89e5c3 fl-col-group-equal-height fl-col-group-align-center" data-node="60fec0f89e5c3"> <div class="fl-col fl-node-60fec0f89e5c4 fl-col-bg-color" data-node="60fec0f89e5c4"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-60fec0f89e5c5" data-node="60fec0f89e5c5"> <div class="fl-module-content fl-node-content"> <h2 class="fl-heading"> <span class="fl-heading-text">Show your people love with custom employee swag kits</span> </h2> </div> </div> <div class="fl-module fl-module-photo fl-node-60fec0f89e5c7" data-node="60fec0f89e5c7"> <div class="fl-module-content fl-node-content"> <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject"> <div class="fl-photo-content fl-photo-img-png"> <img decoding="async" class="fl-photo-img wp-image-12930 size-full lazyload" data-src="https://www.printfection.com/wp-content/uploads/2023/06/items-cropped.png" alt="items-cropped" itemprop="image" height="723" width="1289" title="items-cropped" data-srcset="https://www.printfection.com/wp-content/uploads/2023/06/items-cropped.png 1289w, https://www.printfection.com/wp-content/uploads/2023/06/items-cropped-300x168.png 300w, https://www.printfection.com/wp-content/uploads/2023/06/items-cropped-1024x574.png 1024w, https://www.printfection.com/wp-content/uploads/2023/06/items-cropped-768x431.png 768w" data-sizes="(max-width: 1289px) 100vw, 1289px" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="--smush-placeholder-width: 1289px; --smush-placeholder-aspect-ratio: 1289/723;" /> </div> </div> </div> </div> <div class="fl-module fl-module-button fl-node-60fec0f89e5c6" data-node="60fec0f89e5c6"> <div class="fl-module-content fl-node-content"> <div class="fl-button-wrap fl-button-width-full fl-button-left"> <a href="https://www.printfection.com/features/kitting/" target="_self" class="fl-button"> <span class="fl-button-text">Learn more about kitting</span> </a> </div> </div> </div> <div class="fl-module fl-module-rich-text fl-node-60fec0f89e5d1" data-node="60fec0f89e5d1"> <div class="fl-module-content fl-node-content"> <div class="fl-rich-text"> <ul> <li>Send beautiful branded boxes to celebrate onboarding, work anniversaries, and other awards</li> <li>Create personal kits for employees who have become new parents or made other life changes</li> <li>Create kits with sheets that share your company values along with personalized gift cards expressing your appreciation</li> </ul> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class="fl-row fl-row-full-width fl-row-bg-photo fl-node-60fec0f89e5ae fl-row-custom-height fl-row-align-center fl-visible-desktop fl-visible-large" data-node="60fec0f89e5ae"> <div class="fl-row-content-wrap"> <div class="fl-row-content fl-row-fixed-width fl-node-content"> <div class="fl-col-group fl-node-60fec0f89e5af fl-col-group-equal-height fl-col-group-align-center" data-node="60fec0f89e5af"> <div class="fl-col fl-node-60fec0f89e5b0 fl-col-bg-color fl-col-small" data-node="60fec0f89e5b0"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-60fec0f89e5b4" data-node="60fec0f89e5b4"> <div class="fl-module-content fl-node-content"> <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject"> <div class="fl-photo-content fl-photo-img-png"> <img decoding="async" class="fl-photo-img wp-image-5041 size-full lazyload" data-src="https://www.printfection.com/wp-content/uploads/2021/07/items-1.png" alt="items (1)" itemprop="image" height="1000" width="1454" title="items (1)" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="--smush-placeholder-width: 1454px; --smush-placeholder-aspect-ratio: 1454/1000;" /> </div> </div> </div> </div> </div> </div> <div class="fl-col fl-node-60fec0f89e5b3 fl-col-bg-color" data-node="60fec0f89e5b3"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-60fec0f89e5b1" data-node="60fec0f89e5b1"> <div class="fl-module-content fl-node-content"> <h2 class="fl-heading"> <span class="fl-heading-text">For every people team goal, there's swag for that </span> </h2> </div> </div> <div class="fl-module fl-module-rich-text fl-node-60fec0f89e5b2" data-node="60fec0f89e5b2"> <div class="fl-module-content fl-node-content"> <div class="fl-rich-text"> <ul> <li>Planning a fun company onsite? Bring some awesome branded gear!</li> <li>Keep your company values front-and-center with desk and office items</li> <li>Our Merch experts can help you come up with truly unique and fantastic ideas</li> </ul> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class="fl-row fl-row-full-width fl-row-bg-photo fl-node-1g80qxk9r5m2 fl-row-custom-height fl-row-align-center fl-visible-medium" data-node="1g80qxk9r5m2"> <div class="fl-row-content-wrap"> <div class="fl-row-content fl-row-fixed-width fl-node-content"> <div class="fl-col-group fl-node-91zpnlrjud54 fl-col-group-equal-height fl-col-group-align-center" data-node="91zpnlrjud54"> <div class="fl-col fl-node-ab0847l5fu16 fl-col-bg-color fl-col-small" data-node="ab0847l5fu16"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-4qazrpsx87v9" data-node="4qazrpsx87v9"> <div class="fl-module-content fl-node-content"> <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject"> <div class="fl-photo-content fl-photo-img-png"> <img decoding="async" class="fl-photo-img wp-image-5041 size-full lazyload" data-src="https://www.printfection.com/wp-content/uploads/2021/07/items-1.png" alt="items (1)" itemprop="image" height="1000" width="1454" title="items (1)" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="--smush-placeholder-width: 1454px; --smush-placeholder-aspect-ratio: 1454/1000;" /> </div> </div> </div> </div> </div> </div> <div class="fl-col fl-node-zdg83fat16lr fl-col-bg-color" data-node="zdg83fat16lr"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-ntbf2ilxd6ws" data-node="ntbf2ilxd6ws"> <div class="fl-module-content fl-node-content"> <h2 class="fl-heading"> <span class="fl-heading-text">For every people team goal, there's swag for that </span> </h2> </div> </div> <div class="fl-module fl-module-rich-text fl-node-jq4pbx9unoah" data-node="jq4pbx9unoah"> <div class="fl-module-content fl-node-content"> <div class="fl-rich-text"> <ul> <li>Planning a fun company onsite? Bring some awesome branded gear!</li> <li>Keep your company values front-and-center with desk and office items</li> <li>Our Merch experts can help you come up with truly unique and fantastic ideas</li> </ul> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class="fl-row fl-row-full-width fl-row-bg-photo fl-node-60fec0f89e5c8 fl-row-default-height fl-row-align-center fl-visible-mobile" data-node="60fec0f89e5c8"> <div class="fl-row-content-wrap"> <div class="fl-row-content fl-row-fixed-width fl-node-content"> <div class="fl-col-group fl-node-60fec0f89e5c9 fl-col-group-equal-height fl-col-group-align-center" data-node="60fec0f89e5c9"> <div class="fl-col fl-node-60fec0f89e5cb fl-col-bg-color" data-node="60fec0f89e5cb"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-60fec0f89e5cc" data-node="60fec0f89e5cc"> <div class="fl-module-content fl-node-content"> <h2 class="fl-heading"> <span class="fl-heading-text">For every people team goal, there's swag for that </span> </h2> </div> </div> <div class="fl-module fl-module-photo fl-node-60fec0f89e5ca" data-node="60fec0f89e5ca"> <div class="fl-module-content fl-node-content"> <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject"> <div class="fl-photo-content fl-photo-img-png"> <img decoding="async" class="fl-photo-img wp-image-12931 size-full lazyload" data-src="https://www.printfection.com/wp-content/uploads/2023/06/items-1-cropped.png" alt="items-1-cropped" itemprop="image" height="867" width="1454" title="items-1-cropped" data-srcset="https://www.printfection.com/wp-content/uploads/2023/06/items-1-cropped.png 1454w, https://www.printfection.com/wp-content/uploads/2023/06/items-1-cropped-300x179.png 300w, https://www.printfection.com/wp-content/uploads/2023/06/items-1-cropped-1024x611.png 1024w, https://www.printfection.com/wp-content/uploads/2023/06/items-1-cropped-768x458.png 768w" data-sizes="(max-width: 1454px) 100vw, 1454px" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="--smush-placeholder-width: 1454px; --smush-placeholder-aspect-ratio: 1454/867;" /> </div> </div> </div> </div> <div class="fl-module fl-module-rich-text fl-node-60fee0c19a2e4" data-node="60fee0c19a2e4"> <div class="fl-module-content fl-node-content"> <div class="fl-rich-text"> <ul> <li>Planning a fun company onsite? Bring some awesome branded gear!</li> <li>Keep your company values front-and-center with desk and office items</li> <li>Our Merch experts can help you come up with truly unique and fantastic ideas</li> </ul> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class="fl-row fl-row-full-width fl-row-bg-photo fl-node-60fec0f89e59c fl-row-default-height fl-row-align-center" data-node="60fec0f89e59c"> <div class="fl-row-content-wrap"> <div class="fl-row-content fl-row-fixed-width fl-node-content"> <div class="fl-col-group fl-node-606ddeb070754 fl-col-group-equal-height fl-col-group-align-center" data-node="606ddeb070754"> <div class="fl-col fl-node-606ddeb070758 fl-col-bg-color fl-col-small fl-visible-desktop fl-visible-large fl-visible-medium" data-node="606ddeb070758"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-606ddeb07075a" data-node="606ddeb07075a"> <div class="fl-module-content fl-node-content"> <h4 class="fl-heading"> <span class="fl-heading-text">Ready to get started?</span> </h4> </div> </div> <div class="fl-module fl-module-rich-text fl-node-606ddeb07075b hp-ready" data-node="606ddeb07075b"> <div class="fl-module-content fl-node-content"> <div class="fl-rich-text"> <p>Our platform makes the sourcing, management, and distribution<br /> of swag incredibly easy.</p> </div> </div> </div> </div> </div> <div class="fl-col fl-node-606ddeb070759 fl-col-bg-color fl-col-small fl-visible-desktop fl-visible-large fl-visible-medium" data-node="606ddeb070759"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-button fl-node-mzwghslq3etp" data-node="mzwghslq3etp"> <div class="fl-module-content fl-node-content"> <div class="fl-button-wrap fl-button-width-custom fl-button-center"> <a href="http://info.printfection.com/request-demo" target="_self" class="fl-button"> <span class="fl-button-text">Get a demo</span> </a> </div> </div> </div> </div> </div> </div> <div class="fl-col-group fl-node-k23thsfwj4n5" data-node="k23thsfwj4n5"> <div class="fl-col fl-node-4mglzqcvf5ud fl-col-bg-color fl-visible-mobile" data-node="4mglzqcvf5ud"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-ilqpxayw9v27" data-node="ilqpxayw9v27"> <div class="fl-module-content fl-node-content"> <h4 class="fl-heading"> <span class="fl-heading-text">Ready to get started?</span> </h4> </div> </div> <div class="fl-module fl-module-rich-text fl-node-42m0iz7ft5jo hp-ready" data-node="42m0iz7ft5jo"> <div class="fl-module-content fl-node-content"> <div class="fl-rich-text"> <p>Our platform makes the sourcing, management, and distribution<br /> of swag incredibly easy.</p> </div> </div> </div> <div class="fl-module fl-module-button fl-node-83n9voasqkx5" data-node="83n9voasqkx5"> <div class="fl-module-content fl-node-content"> <div class="fl-button-wrap fl-button-width-custom fl-button-center"> <a href="http://info.printfection.com/request-demo" target="_self" class="fl-button"> <span class="fl-button-text">Get a demo</span> </a> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div><div class="uabb-js-breakpoint" style="display: none;"></div> </div><!-- .fl-post-content --> </article> <!-- .fl-post --> </div> </div> </div> </div><!-- .fl-page-content --> <footer data-wpr-lazyrender="1" class="fl-builder-content fl-builder-content-3893 fl-builder-global-templates-locked" data-post-id="3893" data-type="footer" itemscope="itemscope" itemtype="http://schema.org/WPFooter"><div class="fl-row fl-row-full-width fl-row-bg-color fl-node-5b045d1dc20fe fl-row-default-height fl-row-align-center fl-visible-desktop fl-visible-large" data-node="5b045d1dc20fe"> <div class="fl-row-content-wrap"> <div class="fl-row-content fl-row-fixed-width fl-node-content"> <div class="fl-col-group fl-node-600aedb3ce697" data-node="600aedb3ce697"> <div class="fl-col fl-node-600aedb3ce752 fl-col-bg-color fl-col-small fl-col-has-cols" data-node="600aedb3ce752"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-600aee356c0a1" data-node="600aee356c0a1"> <div class="fl-module-content fl-node-content"> <div class="fl-photo fl-photo-align-left" itemscope itemtype="https://schema.org/ImageObject"> <div class="fl-photo-content fl-photo-img-svg"> <a href="https://www.printfection.com/" target="_self" itemprop="url"> <img decoding="async" class="fl-photo-img wp-image-13038 size-full lazyload" data-src="https://www.printfection.com/wp-content/uploads/2023/07/W_Printfection_logo_CI_Web.svg" alt="Printfection by Custom Ink logo" itemprop="image" height="49" width="200" title="Printfection by Custom Ink" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="--smush-placeholder-width: 200px; --smush-placeholder-aspect-ratio: 200/49;" /> </a> </div> </div> </div> </div> <div class="fl-module fl-module-rich-text fl-node-5b045d1dc2232" data-node="5b045d1dc2232"> <div class="fl-module-content fl-node-content"> <div class="fl-rich-text"> <p>Our swag management platform simplifies the buying, managing, and distribution of swag and branded merchandise.</p> </div> </div> </div> <div class="fl-col-group fl-node-6048e36377e12 fl-col-group-nested" data-node="6048e36377e12"> <div class="fl-col fl-node-6048e36377ee6 fl-col-bg-color footer-socialmedia" data-node="6048e36377ee6"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-6048e396dd93a" data-node="6048e396dd93a"> <div class="fl-module-content fl-node-content"> <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject"> <div class="fl-photo-content fl-photo-img-svg"> <a href="https://www.facebook.com/printfection/" target="_blank" rel="noopener" itemprop="url"> <img width="32" height="32" decoding="async" class="fl-photo-img lazyload" data-src="https://www.printfection.com/wp-content/uploads/2021/03/Facebook_white.svg" alt="" itemprop="image" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="--smush-placeholder-width: 32px; --smush-placeholder-aspect-ratio: 32/32;" /> </a> </div> </div> </div> </div> <div class="fl-module fl-module-photo fl-node-6048e3a7e523c" data-node="6048e3a7e523c"> <div class="fl-module-content fl-node-content"> <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject"> <div class="fl-photo-content fl-photo-img-svg"> <a href="https://www.linkedin.com/company/printfection" target="_blank" rel="noopener" itemprop="url"> <img width="32" height="32" decoding="async" class="fl-photo-img lazyload" data-src="https://www.printfection.com/wp-content/uploads/2021/03/LinkedIN_white.svg" alt="" itemprop="image" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="--smush-placeholder-width: 32px; --smush-placeholder-aspect-ratio: 32/32;" /> </a> </div> </div> </div> </div> <div class="fl-module fl-module-photo fl-node-6048e3a7337fd" data-node="6048e3a7337fd"> <div class="fl-module-content fl-node-content"> <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject"> <div class="fl-photo-content fl-photo-img-svg"> <a href="https://twitter.com/printfection?lang=en" target="_blank" rel="noopener" itemprop="url"> <img width="32" height="32" decoding="async" class="fl-photo-img lazyload" data-src="https://www.printfection.com/wp-content/uploads/2021/03/Twitter_white.svg" alt="" itemprop="image" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="--smush-placeholder-width: 32px; --smush-placeholder-aspect-ratio: 32/32;" /> </a> </div> </div> </div> </div> <div class="fl-module fl-module-photo fl-node-6048e3a0e2590" data-node="6048e3a0e2590"> <div class="fl-module-content fl-node-content"> <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject"> <div class="fl-photo-content fl-photo-img-svg"> <a href="https://www.instagram.com/printfection/?hl=en" target="_blank" rel="noopener" itemprop="url"> <img width="32" height="32" decoding="async" class="fl-photo-img lazyload" data-src="https://www.printfection.com/wp-content/uploads/2021/03/Instagram_white.svg" alt="" itemprop="image" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="--smush-placeholder-width: 32px; --smush-placeholder-aspect-ratio: 32/32;" /> </a> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class="fl-col fl-node-600aedb3ce755 fl-col-bg-color fl-col-small" data-node="600aedb3ce755"> <div class="fl-col-content fl-node-content"></div> </div> <div class="fl-col fl-node-604698a24e4db fl-col-bg-color fl-col-small" data-node="604698a24e4db"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-604698a24e560" data-node="604698a24e560"> <div class="fl-module-content fl-node-content"> <h3 class="fl-heading"> <span class="fl-heading-text">Swag Platform</span> </h3> </div> </div> <div class="fl-module fl-module-rich-text fl-node-604698a24e561 footer-menu" data-node="604698a24e561"> <div class="fl-module-content fl-node-content"> <div class="fl-rich-text"> <p><a href="/swag/category/all-swag/">Swag catalog</a></p> <p><a href="/solutions/">Solutions</a></p> <p><a href="/features/">Features</a></p> <p><a href="/pricing/">Pricing</a></p> </div> </div> </div> </div> </div> <div class="fl-col fl-node-600aedb3ce757 fl-col-bg-color fl-col-small" data-node="600aedb3ce757"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-5b045d1dc23a2" data-node="5b045d1dc23a2"> <div class="fl-module-content fl-node-content"> <h3 class="fl-heading"> <span class="fl-heading-text">Company</span> </h3> </div> </div> <div class="fl-module fl-module-rich-text fl-node-5b045d1dc23e0" data-node="5b045d1dc23e0"> <div class="fl-module-content fl-node-content"> <div class="fl-rich-text"> <p><a href="/blog/">Blog</a></p> <p><a href="/about/">About us</a></p> <p><a href="/about/jobs/">Careers</a></p> <p><a href="/contact/">Contact us</a></p> </div> </div> </div> </div> </div> <div class="fl-col fl-node-600aedb3ce758 fl-col-bg-color fl-col-small" data-node="600aedb3ce758"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-5b04670af40e2" data-node="5b04670af40e2"> <div class="fl-module-content fl-node-content"> <h3 class="fl-heading"> <span class="fl-heading-text">Support</span> </h3> </div> </div> <div class="fl-module fl-module-rich-text fl-node-5b04670af4120" data-node="5b04670af4120"> <div class="fl-module-content fl-node-content"> <div class="fl-rich-text"> <p><a href="https://help.printfection.com/hc/" target="_blank" rel="nofollower noopener noreferrer">Help center</a></p> <p><a href="/resources/">Resources</a></p> <p><a href="/developers/">Developers</a></p> <p><a href="/accessibility">Accessibility</a></p> </div> </div> </div> </div> </div> </div> <div class="fl-col-group fl-node-600af0ba9736d" data-node="600af0ba9736d"> <div class="fl-col fl-node-600af0ba97420 fl-col-bg-color fl-col-small" data-node="600af0ba97420"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-rich-text fl-node-600af0d0472cd" data-node="600af0d0472cd"> <div class="fl-module-content fl-node-content"> <div class="fl-rich-text"> <p><a href="https://legal.printfection.com/#privacy-policy" target="_blank" rel="noopener">Privacy policy 聽 聽 聽 聽 </a><a href="https://legal.printfection.com/#terms-of-use" target="_blank" rel="noopener">Terms of use</a></p> </div> </div> </div> </div> </div> <div class="fl-col fl-node-600af0ba97423 fl-col-bg-color fl-col-small" data-node="600af0ba97423"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-rich-text fl-node-600af766ba448" data-node="600af766ba448"> <div class="fl-module-content fl-node-content"> <div class="fl-rich-text"> <p style="text-align: right;">漏 <script type="rocketlazyloadscript">document.write(new Date().getFullYear())</script> Printfection LLC, <a href="https://www.customink.com/" target="_blank" rel="noopener">A Custom Ink Company</a></p> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class="fl-row fl-row-full-width fl-row-bg-color fl-node-6054ed3c37f63 fl-row-default-height fl-row-align-center fl-visible-medium fl-visible-mobile" data-node="6054ed3c37f63"> <div class="fl-row-content-wrap"> <div class="fl-row-content fl-row-fixed-width fl-node-content"> <div class="fl-col-group fl-node-6054f1e45e353" data-node="6054f1e45e353"> <div class="fl-col fl-node-6054f1e45e48f fl-col-bg-color" data-node="6054f1e45e48f"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-6054ed3c382a4" data-node="6054ed3c382a4"> <div class="fl-module-content fl-node-content"> <div class="fl-photo fl-photo-align-left" itemscope itemtype="https://schema.org/ImageObject"> <div class="fl-photo-content fl-photo-img-svg"> <a href="https://www.printfection.com/" target="_self" itemprop="url"> <img decoding="async" class="fl-photo-img wp-image-13038 size-full lazyload" data-src="https://www.printfection.com/wp-content/uploads/2023/07/W_Printfection_logo_CI_Web.svg" alt="Printfection by Custom Ink logo" itemprop="image" height="49" width="200" title="Printfection by Custom Ink" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="--smush-placeholder-width: 200px; --smush-placeholder-aspect-ratio: 200/49;" /> </a> </div> </div> </div> </div> <div class="fl-module fl-module-rich-text fl-node-6054ed3c382a5" data-node="6054ed3c382a5"> <div class="fl-module-content fl-node-content"> <div class="fl-rich-text"> <p>Our swag management platform simplifies the buying, managing, and distribution of swag and branded merchandise.</p> </div> </div> </div> </div> </div> </div> <div class="fl-col-group fl-node-6054f1d03d089" data-node="6054f1d03d089"> <div class="fl-col fl-node-6054f1d03d198 fl-col-bg-color footer-socialmedia" data-node="6054f1d03d198"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-6054ed3c382a9" data-node="6054ed3c382a9"> <div class="fl-module-content fl-node-content"> <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject"> <div class="fl-photo-content fl-photo-img-svg"> <a href="https://www.facebook.com/printfection/" target="_blank" rel="noopener" itemprop="url"> <img width="32" height="32" decoding="async" class="fl-photo-img lazyload" data-src="https://www.printfection.com/wp-content/uploads/2021/03/Facebook_white.svg" alt="" itemprop="image" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="--smush-placeholder-width: 32px; --smush-placeholder-aspect-ratio: 32/32;" /> </a> </div> </div> </div> </div> <div class="fl-module fl-module-photo fl-node-6054ed3c382a8" data-node="6054ed3c382a8"> <div class="fl-module-content fl-node-content"> <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject"> <div class="fl-photo-content fl-photo-img-svg"> <a href="https://www.linkedin.com/company/printfection" target="_blank" rel="noopener" itemprop="url"> <img width="32" height="32" decoding="async" class="fl-photo-img lazyload" data-src="https://www.printfection.com/wp-content/uploads/2021/03/LinkedIN_white.svg" alt="" itemprop="image" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="--smush-placeholder-width: 32px; --smush-placeholder-aspect-ratio: 32/32;" /> </a> </div> </div> </div> </div> <div class="fl-module fl-module-photo fl-node-6054ed3c382aa" data-node="6054ed3c382aa"> <div class="fl-module-content fl-node-content"> <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject"> <div class="fl-photo-content fl-photo-img-svg"> <a href="https://twitter.com/printfection?lang=en" target="_blank" rel="noopener" itemprop="url"> <img width="32" height="32" decoding="async" class="fl-photo-img lazyload" data-src="https://www.printfection.com/wp-content/uploads/2021/03/Twitter_white.svg" alt="" itemprop="image" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="--smush-placeholder-width: 32px; --smush-placeholder-aspect-ratio: 32/32;" /> </a> </div> </div> </div> </div> <div class="fl-module fl-module-photo fl-node-6054ed3c382ab" data-node="6054ed3c382ab"> <div class="fl-module-content fl-node-content"> <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject"> <div class="fl-photo-content fl-photo-img-svg"> <a href="https://www.instagram.com/printfection/?hl=en" target="_blank" rel="noopener" itemprop="url"> <img width="32" height="32" decoding="async" class="fl-photo-img lazyload" data-src="https://www.printfection.com/wp-content/uploads/2021/03/Instagram_white.svg" alt="" itemprop="image" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="--smush-placeholder-width: 32px; --smush-placeholder-aspect-ratio: 32/32;" /> </a> </div> </div> </div> </div> </div> </div> </div> <div class="fl-col-group fl-node-6054ed9cc1282" data-node="6054ed9cc1282"> <div class="fl-col fl-node-6054ed9cc13fb fl-col-bg-color" data-node="6054ed9cc13fb"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-accordion fl-node-6054edb0e89f0" data-node="6054edb0e89f0"> <div class="fl-module-content fl-node-content"> <div class="fl-accordion fl-accordion-small fl-accordion-collapse"> <div class="fl-accordion-item "> <div class="fl-accordion-button" id="fl-accordion-6054edb0e89f0-tab-0" aria-controls="fl-accordion-6054edb0e89f0-panel-0" tabindex="0"> <a href="#" id="fl-accordion-6054edb0e89f0-label-0" class="fl-accordion-button-label" tabindex="0" aria-controls="fl-accordion-6054edb0e89f0-panel-0">Swag Platform</a> <a href="#" id="fl-accordion-6054edb0e89f0-icon-0" class="fl-accordion-button-icon" tabindex="-1"><i class="fl-accordion-button-icon fl-accordion-button-icon-right fas fa-angle-down" title="Expand"><span class="sr-only">Expand</span></i></a> </div> <div class="fl-accordion-content fl-clearfix" id="fl-accordion-6054edb0e89f0-panel-0" aria-labelledby="fl-accordion-6054edb0e89f0-tab-0" aria-hidden="true"> <p><a href="/swag/category/all-swag/">Swag catalog</a></p> <p><a href="/solutions/">Solutions</a></p> <p><a href="/features/">Features</a></p> <p><a href="/pricing/">Pricing</a></p> </div> </div> <div class="fl-accordion-item "> <div class="fl-accordion-button" id="fl-accordion-6054edb0e89f0-tab-1" aria-controls="fl-accordion-6054edb0e89f0-panel-1" tabindex="0"> <a href="#" id="fl-accordion-6054edb0e89f0-label-1" class="fl-accordion-button-label" tabindex="0" aria-controls="fl-accordion-6054edb0e89f0-panel-1">Company</a> <a href="#" id="fl-accordion-6054edb0e89f0-icon-1" class="fl-accordion-button-icon" tabindex="-1"><i class="fl-accordion-button-icon fl-accordion-button-icon-right fas fa-angle-down" title="Expand"><span class="sr-only">Expand</span></i></a> </div> <div class="fl-accordion-content fl-clearfix" id="fl-accordion-6054edb0e89f0-panel-1" aria-labelledby="fl-accordion-6054edb0e89f0-tab-1" aria-hidden="true"> <p><a href="/blog/">Blog</a></p> <p><a href="/about/">About us</a></p> <p><a href="/about/jobs/">Careers</a></p> <p><a href="/contact/">Contact us</a></p> </div> </div> <div class="fl-accordion-item "> <div class="fl-accordion-button" id="fl-accordion-6054edb0e89f0-tab-2" aria-controls="fl-accordion-6054edb0e89f0-panel-2" tabindex="0"> <a href="#" id="fl-accordion-6054edb0e89f0-label-2" class="fl-accordion-button-label" tabindex="0" aria-controls="fl-accordion-6054edb0e89f0-panel-2">Support</a> <a href="#" id="fl-accordion-6054edb0e89f0-icon-2" class="fl-accordion-button-icon" tabindex="-1"><i class="fl-accordion-button-icon fl-accordion-button-icon-right fas fa-angle-down" title="Expand"><span class="sr-only">Expand</span></i></a> </div> <div class="fl-accordion-content fl-clearfix" id="fl-accordion-6054edb0e89f0-panel-2" aria-labelledby="fl-accordion-6054edb0e89f0-tab-2" aria-hidden="true"> <p><a href="https://help.printfection.com/hc/" target="_blank" rel="nofollower noopener noreferrer">Help center</a></p> <p><a href="/resources/">Resources</a></p> <p><a href="/developers/">Developers</a></p> <p><a href="/accessibility">Accessibility</a></p> </div> </div> </div> </div> </div> </div> </div> </div> <div class="fl-col-group fl-node-6054ed3c382a2" data-node="6054ed3c382a2"> </div> <div class="fl-col-group fl-node-6054ed3c382dc" data-node="6054ed3c382dc"> <div class="fl-col fl-node-6054ed3c382dd fl-col-bg-color" data-node="6054ed3c382dd"> <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-rich-text fl-node-6054ed3c382de" data-node="6054ed3c382de"> <div class="fl-module-content fl-node-content"> <div class="fl-rich-text"> <p><a href="https://legal.printfection.com/#privacy-policy" target="_blank" rel="noopener">Privacy policy 聽 聽 聽 聽 </a><a href="https://legal.printfection.com/#terms-of-use" target="_blank" rel="noopener">Terms of use</a></p> </div> </div> </div> <div class="fl-module fl-module-rich-text fl-node-6054ed3c382e0" data-node="6054ed3c382e0"> <div class="fl-module-content fl-node-content"> <div class="fl-rich-text"> <p>漏 <script type="rocketlazyloadscript">document.write(new Date().getFullYear())</script> Printfection LLC, <a href="https://www.customink.com/" target="_blank" rel="noopener">A Custom Ink Company </a></p> </div> </div> </div> </div> </div> </div> </div> </div> </div> </footer><div class="uabb-js-breakpoint" style="display: none;"></div> </div><!-- .fl-page --> <script type="rocketlazyloadscript">(function(){var s=document.createElement('script');var e = !document.body ? document.querySelector('head'):document.body;s.src='https://acsbapp.com/apps/app/dist/js/app.js';s.setAttribute('data-source', 'WordPress');s.setAttribute('data-plugin-version', '2.6');s.defer=true;s.onload=function(){acsbJS.init({ statementLink : '', footerHtml : '', hideMobile : false, hideTrigger : false, language : 'en', position : 'right', leadColor : '#2a2f57', triggerColor : '#4cbde5', triggerRadius : '5px', triggerPositionX : 'right', triggerPositionY : 'bottom', triggerIcon : 'people', triggerSize : 'small', triggerOffsetX : 20, triggerOffsetY : 20, mobile : { triggerSize : 'small', triggerPositionX : 'right', triggerPositionY : 'bottom', triggerOffsetX : 10, triggerOffsetY : 10, triggerRadius : '50%' } }); }; e.appendChild(s);}());</script><div id="pum-12830" role="dialog" aria-modal="false" class="pum pum-overlay pum-theme-12822 pum-theme-lightbox popmake-overlay pum-click-to-close click_open" data-popmake="{&quot;id&quot;:12830,&quot;slug&quot;:&quot;contact-us&quot;,&quot;theme_id&quot;:12822,&quot;cookies&quot;:[],&quot;triggers&quot;:[{&quot;type&quot;:&quot;click_open&quot;,&quot;settings&quot;:{&quot;extra_selectors&quot;:&quot;&quot;,&quot;cookie_name&quot;:null}}],&quot;mobile_disabled&quot;:null,&quot;tablet_disabled&quot;:null,&quot;meta&quot;:{&quot;display&quot;:{&quot;stackable&quot;:false,&quot;overlay_disabled&quot;:false,&quot;scrollable_content&quot;:false,&quot;disable_reposition&quot;:false,&quot;size&quot;:&quot;small&quot;,&quot;responsive_min_width&quot;:&quot;0%&quot;,&quot;responsive_min_width_unit&quot;:false,&quot;responsive_max_width&quot;:&quot;100%&quot;,&quot;responsive_max_width_unit&quot;:false,&quot;custom_width&quot;:&quot;640px&quot;,&quot;custom_width_unit&quot;:false,&quot;custom_height&quot;:&quot;380px&quot;,&quot;custom_height_unit&quot;:false,&quot;custom_height_auto&quot;:false,&quot;location&quot;:&quot;center&quot;,&quot;position_from_trigger&quot;:false,&quot;position_top&quot;:&quot;100&quot;,&quot;position_left&quot;:&quot;0&quot;,&quot;position_bottom&quot;:&quot;0&quot;,&quot;position_right&quot;:&quot;0&quot;,&quot;position_fixed&quot;:false,&quot;animation_type&quot;:&quot;fade&quot;,&quot;animation_speed&quot;:&quot;350&quot;,&quot;animation_origin&quot;:&quot;center top&quot;,&quot;overlay_zindex&quot;:false,&quot;zindex&quot;:&quot;1999999999&quot;},&quot;close&quot;:{&quot;text&quot;:&quot;&quot;,&quot;button_delay&quot;:&quot;0&quot;,&quot;overlay_click&quot;:&quot;1&quot;,&quot;esc_press&quot;:false,&quot;f4_press&quot;:false},&quot;click_open&quot;:[]}}"> <div id="popmake-12830" class="pum-container popmake theme-12822 pum-responsive pum-responsive-small responsive size-small"> <div class="pum-content popmake-content" tabindex="0"> <div class="wpcf7 no-js" id="wpcf7-f2391-o1" lang="en-US" dir="ltr" data-wpcf7-id="2391"> <div class="screen-reader-response"><p role="status" aria-live="polite" aria-atomic="true"></p> <ul></ul></div> <form action="/how-it-works/for-hr/#wpcf7-f2391-o1" method="post" class="wpcf7-form init" aria-label="Contact form" novalidate="novalidate" data-status="init"> <div style="display: none;"> <input type="hidden" name="_wpcf7" value="2391" /> <input type="hidden" name="_wpcf7_version" value="6.0.3" /> <input type="hidden" name="_wpcf7_locale" value="en_US" /> <input type="hidden" name="_wpcf7_unit_tag" value="wpcf7-f2391-o1" /> <input type="hidden" name="_wpcf7_container_post" value="0" /> <input type="hidden" name="_wpcf7_posted_data_hash" value="" /> <input type="hidden" name="_wpcf7_recaptcha_response" value="" /> </div> <div class="contactform"> <p><span class="wpcf7-form-control-wrap" data-name="first-name"><input size="40" maxlength="400" class="wpcf7-form-control wpcf7-text wpcf7-validates-as-required required" aria-required="true" aria-invalid="false" placeholder="First name *" value="" type="text" name="first-name" /></span> </p> <p><span class="wpcf7-form-control-wrap" data-name="last-name"><input size="40" maxlength="400" class="wpcf7-form-control wpcf7-text wpcf7-validates-as-required required" aria-required="true" aria-invalid="false" placeholder="Last name *" value="" type="text" name="last-name" /></span> </p> <p><span class="wpcf7-form-control-wrap" data-name="your-email"><input size="40" maxlength="400" class="wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email required" aria-required="true" aria-invalid="false" placeholder="Work email *" value="" type="email" name="your-email" /></span> </p> <p><span class="wpcf7-form-control-wrap" data-name="company-name"><input size="40" maxlength="400" class="wpcf7-form-control wpcf7-text wpcf7-validates-as-required required" aria-required="true" aria-invalid="false" placeholder="Company name *" value="" type="text" name="company-name" /></span> </p> <p><span class="wpcf7-form-control-wrap" data-name="your-message"><textarea cols="40" rows="3" maxlength="2000" class="wpcf7-form-control wpcf7-textarea wpcf7-validates-as-required required" aria-required="true" aria-invalid="false" placeholder="Your message *" name="your-message"></textarea></span> </p> <p><span class="wpcf7-form-control-wrap" data-name="gclid"><input size="40" maxlength="400" class="wpcf7-form-control wpcf7-text" aria-invalid="false" value="" type="text" name="gclid" /></span> </p> <div id="submit-button"> <p><input class="wpcf7-form-control wpcf7-submit has-spinner" type="submit" value="Send" /> </p> </div> </div><input type='hidden' class='wpcf7-pum' value='{"closepopup":false,"closedelay":0,"openpopup":false,"openpopup_id":0}' /><div class="wpcf7-response-output" aria-hidden="true"></div> </form> </div> </div> <button type="button" class="pum-close popmake-close" aria-label="Close"> &times; </button> </div> </div> <script type="rocketlazyloadscript"> jQuery('.catalog-search input').val(''); jQuery('.catalog-search input').attr('placeholder', 'Find something great'); jQuery('form.is-form-id-6495 input.is-search-input').val(''); jQuery('body.search.search-no-results input.fl-search-input.form-control').val(''); jQuery('body.search.search-no-results input.fl-search-input.form-control').attr('placeholder', 'Search our catalog'); </script> <script type="rocketlazyloadscript"> (function( $ ) { $.floatThead = $.floatThead || {}; $.floatThead.defaults = { headerCellSelector: 'tr:visible:first>*:visible', //thead cells are this. zIndex: 1001, //zindex of the floating thead (actually a container div) position: 'auto', // 'fixed', 'absolute', 'auto'. auto picks the best for your table scrolling type. top: $('header').outerHeight(), //String or function($table) - offset from top of window where the header should not pass above bottom: 0, //String or function($table) - offset from the bottom of the table where the header should stop scrolling scrollContainer: function($table) { // or boolean 'true' (use offsetParent) | function -> if the table has horizontal scroll bars then this is the container that has overflow:auto and causes those scroll bars return $([]); }, responsiveContainer: function($table) { // only valid if scrollContainer is not used (ie window scrolling). this is the container which will control y scrolling at some mobile breakpoints return $([]); }, getSizingRow: function($table, $cols, $fthCells){ return $table.find('tbody tr:visible:first>*:visible'); }, ariaLabel: function($table, $headerCell, columnIndex) { return $headerCell.text(); }, floatTableClass: 'floatThead-table', floatWrapperClass: 'floatThead-wrapper', floatContainerClass: 'floatThead-container', copyTableClass: true, //copy 'class' attribute from table into the floated table so that the styles match. autoReflow: false, //(undocumented) - use MutationObserver api to reflow automatically when internal table DOM changes debug: false, //print possible issues (that don't prevent script loading) to console, if console exists. support: { //should we bind events that expect these frameworks to be present and/or check for them? bootstrap: true, datatables: true, jqueryUI: true, perfectScrollbar: true }, floatContainerCss: {"overflow-x": "hidden"} // undocumented - css applied to the floatContainer }; var util = (function underscoreShim(){ var that = {}; var hasOwnProperty = Object.prototype.hasOwnProperty, isThings = ['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp']; that.has = function(obj, key) { return hasOwnProperty.call(obj, key); }; that.keys = Object.keys || function(obj) { if (obj !== Object(obj)) throw new TypeError('Invalid object'); var keys = []; for (var key in obj) if (that.has(obj, key)) keys.push(key); return keys; }; var idCounter = 0; that.uniqueId = function(prefix) { var id = ++idCounter + ''; return prefix ? prefix + id : id; }; $.each(isThings, function(){ var name = this; that['is' + name] = function(obj) { return Object.prototype.toString.call(obj) === '[object ' + name + ']'; }; }); that.debounce = function(func, wait, immediate) { var timeout, args, context, timestamp, result; return function() { context = this; args = arguments; timestamp = new Date(); var later = function() { var last = (new Date()) - timestamp; if (last < wait) { timeout = setTimeout(later, wait - last); } else { timeout = null; if (!immediate) result = func.apply(context, args); } }; var callNow = immediate && !timeout; if (!timeout) { timeout = setTimeout(later, wait); } if (callNow) result = func.apply(context, args); return result; }; }; return that; })(); var globalCanObserveMutations = typeof MutationObserver !== 'undefined'; var ieVersion = function(){for(var a=3,b=document.createElement("b"),c=b.all||[];a = 1+a,b.innerHTML="<!--[if gt IE "+ a +"]><i><![endif]-->",c[0];);return 4<a?a:document.documentMode}(); var isFF = /Gecko\//.test(navigator.userAgent); var isWebkit = /WebKit\//.test(navigator.userAgent); var isRTL = /rtl/i.test(document.documentElement.dir || ''); if(!(ieVersion || isFF || isWebkit)){ ieVersion = 11; //yey a hack! } var isTableWidthBug = function(){ if(isWebkit) { var $test = $('<div>').css('width', 0).append( $('<table>').css('max-width', '100%').append( $('<tr>').append( $('<th>').append( $('<div>').css('min-width', 100).text('X') ) ) ) ); $("body").append($test); var ret = ($test.find("table").width() === 0); $test.remove(); return ret; } return false; }; var createElements = !isFF && !ieVersion; //FF can read width from <col> elements, but webkit cannot var $window = $(window); var buggyMatchMedia = isFF && window.matchMedia; // TODO remove when fixed: https://bugzilla.mozilla.org/show_bug.cgi?id=774398 if(!window.matchMedia || buggyMatchMedia) { var _beforePrint = window.onbeforeprint; var _afterPrint = window.onafterprint; window.onbeforeprint = function () { _beforePrint && _beforePrint(); $window.triggerHandler("fth-beforeprint"); }; window.onafterprint = function () { _afterPrint && _afterPrint(); $window.triggerHandler("fth-afterprint"); }; } function windowResize(eventName, cb){ if(ieVersion === 8){ //ie8 is crap: https://github.com/mkoryak/floatThead/issues/65 var winWidth = $window.width(); var debouncedCb = util.debounce(function(){ var winWidthNew = $window.width(); if(winWidth !== winWidthNew){ winWidth = winWidthNew; cb(); } }, 1); $window.on(eventName, debouncedCb); } else { $window.on(eventName, util.debounce(cb, 1)); } } function getClosestScrollContainer($elem) { var elem = $elem[0]; var parent = elem.parentElement; do { var pos = window .getComputedStyle(parent) .getPropertyValue('overflow'); if (pos !== 'visible') break; } while (parent = parent.parentElement); if(parent === document.body){ return $([]); } return $(parent); } function debug(str){ window && window.console && window.console.error && window.console.error("jQuery.floatThead: " + str); } //returns fractional pixel widths function getOffsetWidth(el) { var rect = el.getBoundingClientRect(); return rect.width || rect.right - rect.left; } function scrollbarWidth() { var d = document.createElement("scrolltester"); d.style.cssText = 'width:100px;height:100px;overflow:scroll!important;position:absolute;top:-9999px;display:block'; document.body.appendChild(d); var result = d.offsetWidth - d.clientWidth; document.body.removeChild(d); return result; } function isDatatable($table){ if($table.dataTableSettings){ for(var i = 0; i < $table.dataTableSettings.length; i++){ var table = $table.dataTableSettings[i].nTable; if($table[0] === table){ return true; } } } return false; } function tableWidth($table, $fthCells, isOuter){ // see: https://github.com/mkoryak/floatThead/issues/108 var fn = isOuter ? "outerWidth": "width"; if(isTableWidthBug && $table.css("max-width")){ var w = 0; if(isOuter) { w += parseInt($table.css("borderLeft"), 10); w += parseInt($table.css("borderRight"), 10); } for(var i=0; i < $fthCells.length; i++){ w += getOffsetWidth($fthCells.get(i)); } return w; } else { return $table[fn](); } } $.fn.floatThead = function(map){ map = map || {}; if(ieVersion < 8){ return this; //no more crappy browser support. } if(util.isFunction(isTableWidthBug)) { isTableWidthBug = isTableWidthBug(); } if(util.isString(map)){ var command = map; var args = Array.prototype.slice.call(arguments, 1); var ret = this; this.filter('table').each(function(){ var $this = $(this); var opts = $this.data('floatThead-lazy'); if(opts){ $this.floatThead(opts); } var obj = $this.data('floatThead-attached'); if(obj && util.isFunction(obj[command])){ var r = obj[command].apply(this, args); if(r !== undefined){ ret = r; } } }); return ret; } var opts = $.extend({}, $.floatThead.defaults || {}, map); $.each(map, function(key, val){ if((!(key in $.floatThead.defaults)) && opts.debug){ debug("Used ["+key+"] key to init plugin, but that param is not an option for the plugin. Valid options are: "+ (util.keys($.floatThead.defaults)).join(', ')); } }); if(opts.debug){ var v = $.fn.jquery.split("."); if(parseInt(v[0], 10) === 1 && parseInt(v[1], 10) <= 7){ debug("jQuery version "+$.fn.jquery+" detected! This plugin supports 1.8 or better, or 1.7.x with jQuery UI 1.8.24 -> http://jqueryui.com/resources/download/jquery-ui-1.8.24.zip") } } this.filter(':not(.'+opts.floatTableClass+')').each(function(){ var floatTheadId = util.uniqueId(); var $table = $(this); if($table.data('floatThead-attached')){ return true; //continue the each loop } if(!$table.is('table')){ throw new Error('jQuery.floatThead must be run on a table element. ex: $("table").floatThead();'); } var canObserveMutations = opts.autoReflow && globalCanObserveMutations; //option defaults to false! var mObs = null; //mutation observer lives in here if we can use it / make it var $header = $table.children('thead:first'); var $tbody = $table.children('tbody:first'); if($header.length === 0 || $tbody.length === 0){ if(opts.debug) { if($header.length === 0){ debug('The thead element is missing.'); } else{ debug('The tbody element is missing.'); } } $table.data('floatThead-lazy', opts); $table.unbind("reflow").one('reflow', function(){ $table.floatThead(opts); }); return; } if($table.data('floatThead-lazy')){ $table.unbind("reflow"); } $table.data('floatThead-lazy', false); var headerFloated = true; var scrollingTop, scrollingBottom; var scrollbarOffset = {vertical: 0, horizontal: 0}; if(util.isFunction(scrollbarWidth)) { scrollbarWidth = scrollbarWidth(); } var lastColumnCount = 0; //used by columnNum() if(opts.scrollContainer === true){ opts.scrollContainer = getClosestScrollContainer; } var $scrollContainer = opts.scrollContainer($table) || $([]); //guard against returned nulls var locked = $scrollContainer.length > 0; var $responsiveContainer = locked ? $([]) : opts.responsiveContainer($table) || $([]); var responsive = isResponsiveContainerActive(); var useAbsolutePositioning = null; if (opts.position === 'auto') { useAbsolutePositioning = null; } else if (opts.position === 'fixed') { useAbsolutePositioning = false; } else if (opts.position === 'absolute'){ useAbsolutePositioning = true; } else if (opts.debug) { debug('Invalid value given to "position" option, valid is "fixed", "absolute" and "auto". You passed: ', opts.position); } if(useAbsolutePositioning == null){ //defaults: locked=true, !locked=false useAbsolutePositioning = locked; } var $caption = $table.find("caption"); var haveCaption = $caption.length === 1; if(haveCaption){ var captionAlignTop = ($caption.css("caption-side") || $caption.attr("align") || "top") === "top"; } var $fthGrp = $('<fthfoot>').css({ 'display': 'table-footer-group', 'border-spacing': 0, 'height': 0, 'border-collapse': 'collapse', 'visibility': 'hidden' }); var wrappedContainer = false; //used with absolute positioning enabled. did we need to wrap the scrollContainer/table with a relative div? var $wrapper = $([]); //used when absolute positioning enabled - wraps the table and the float container var absoluteToFixedOnScroll = ieVersion <= 9 && !locked && useAbsolutePositioning; //on IE using absolute positioning doesn't look good with window scrolling, so we change position to fixed on scroll, and then change it back to absolute when done. var $floatTable = $("<table/>"); var $floatColGroup = $("<colgroup/>"); var $tableColGroup = $table.children('colgroup:first'); var existingColGroup = true; if($tableColGroup.length === 0){ $tableColGroup = $("<colgroup/>"); existingColGroup = false; } var colSelector = existingColGroup ? "col:visible" : "col"; var $fthRow = $('<fthtr>').css({ //created unstyled elements (used for sizing the table because chrome can't read <col> width) 'display': 'table-row', 'border-spacing': 0, 'height': 0, 'border-collapse': 'collapse' }); var $floatContainer = $('<div>').css(opts.floatContainerCss).attr('aria-hidden', 'true'); var floatTableHidden = false; //this happens when the table is hidden and we do magic when making it visible var $newHeader = $("<thead/>"); var $sizerRow = $('<tr class="size-row"/>'); var $sizerCells = $([]); var $tableCells = $([]); //used for sizing - either $sizerCells or $tableColGroup cols. $tableColGroup cols are only created in chrome for borderCollapse:collapse because of a chrome bug. var $headerCells = $([]); var $fthCells = $([]); //created elements $newHeader.append($sizerRow); $table.prepend($tableColGroup); if(createElements){ $fthGrp.append($fthRow); $table.append($fthGrp); } $floatTable.append($floatColGroup); $floatContainer.append($floatTable); if(opts.copyTableClass){ $floatTable.attr('class', $table.attr('class')); } $floatTable.attr({ //copy over some deprecated table attributes that people still like to use. Good thing people don't use colgroups... 'cellpadding': $table.attr('cellpadding'), 'cellspacing': $table.attr('cellspacing'), 'border': $table.attr('border') }); var tableDisplayCss = $table.css('display'); $floatTable.css({ 'borderCollapse': $table.css('borderCollapse'), 'border': $table.css('border'), 'display': tableDisplayCss }); if(!locked){ $floatTable.css('width', 'auto'); } if(tableDisplayCss === 'none'){ floatTableHidden = true; } $floatTable.addClass(opts.floatTableClass).css({'margin': 0, 'border-bottom-width': 0}); //must have no margins or you won't be able to click on things under floating table if(useAbsolutePositioning){ var makeRelative = function($container, alwaysWrap){ var positionCss = $container.css('position'); var relativeToScrollContainer = (positionCss === "relative" || positionCss === "absolute"); var $containerWrap = $container; if(!relativeToScrollContainer || alwaysWrap){ var css = {"paddingLeft": $container.css('paddingLeft'), "paddingRight": $container.css('paddingRight')}; $floatContainer.css(css); $containerWrap = $container.data('floatThead-containerWrap') || $container.wrap( $('<div>').addClass(opts.floatWrapperClass).css({ 'position': 'relative', 'clear': 'both' }) ).parent(); $container.data('floatThead-containerWrap', $containerWrap); //multiple tables inside one scrolling container - #242 wrappedContainer = true; } return $containerWrap; }; if(locked){ $wrapper = makeRelative($scrollContainer, true); $wrapper.prepend($floatContainer); } else { $wrapper = makeRelative($table); $table.before($floatContainer); } } else { $table.before($floatContainer); } $floatContainer.css({ position: useAbsolutePositioning ? 'absolute' : 'fixed', marginTop: 0, top: useAbsolutePositioning ? 0 : 'auto', zIndex: opts.zIndex, willChange: 'transform' }); $floatContainer.addClass(opts.floatContainerClass); updateScrollingOffsets(); var layoutFixed = {'table-layout': 'fixed'}; var layoutAuto = {'table-layout': $table.css('tableLayout') || 'auto'}; var originalTableWidth = $table[0].style.width || ""; //setting this to auto is bad: #70 var originalTableMinWidth = $table.css('minWidth') || ""; function eventName(name){ return name+'.fth-'+floatTheadId+'.floatTHead' } function setHeaderHeight(){ var headerHeight = 0; $header.children("tr:visible").each(function(){ headerHeight += $(this).outerHeight(true); }); if($table.css('border-collapse') === 'collapse') { var tableBorderTopHeight = parseInt($table.css('border-top-width'), 10); var cellBorderTopHeight = parseInt($table.find("thead tr:first").find(">*:first").css('border-top-width'), 10); if(tableBorderTopHeight > cellBorderTopHeight) { headerHeight -= (tableBorderTopHeight / 2); //id love to see some docs where this magic recipe is found.. } } $sizerRow.outerHeight(headerHeight); $sizerCells.outerHeight(headerHeight); } function setFloatWidth(){ var tw = tableWidth($table, $fthCells, true); var $container = responsive ? $responsiveContainer : $scrollContainer; var width = $container.length ? getOffsetWidth($container[0]) : tw; var floatContainerWidth = $container.css("overflow-y") !== 'hidden' ? width - scrollbarOffset.vertical : width; $floatContainer.width(floatContainerWidth); if(locked){ var percent = 100 * tw / (floatContainerWidth); $floatTable.css('width', percent+'%'); } else { $floatTable.css('width', tw+'px'); } } function updateScrollingOffsets(){ scrollingTop = (util.isFunction(opts.top) ? opts.top($table) : opts.top) || 0; scrollingBottom = (util.isFunction(opts.bottom) ? opts.bottom($table) : opts.bottom) || 0; } /** * get the number of columns and also rebuild resizer rows if the count is different than the last count */ function columnNum(){ var count; var $headerColumns = $header.find(opts.headerCellSelector); if(existingColGroup){ count = $tableColGroup.find(colSelector).length; } else { count = 0; $headerColumns.each(function () { count += parseInt(($(this).attr('colspan') || 1), 10); }); } if(count !== lastColumnCount){ lastColumnCount = count; var cells = [], cols = [], psuedo = []; $sizerRow.empty(); for(var x = 0; x < count; x++){ var cell = document.createElement('th'); var span = document.createElement('span'); span.setAttribute('aria-label', opts.ariaLabel($table, $headerColumns.eq(x), x)); cell.appendChild(span); cell.className = 'floatThead-col'; $sizerRow[0].appendChild(cell); cols.push('<col/>'); psuedo.push( $('<fthtd>').css({ 'display': 'table-cell', 'height': 0, 'width': 'auto' }) ); } if(existingColGroup){ cols = $tableColGroup.html(); } else { cols = cols.join(''); } if(createElements){ $fthRow.empty(); $fthRow.append(psuedo); $fthCells = $fthRow.find('fthtd'); } $sizerCells = $sizerRow.find("th"); if(!existingColGroup){ $tableColGroup.html(cols); } $tableCells = $tableColGroup.find(colSelector); $floatColGroup.html(cols); $headerCells = $floatColGroup.find(colSelector); } return count; } function refloat(){ //make the thing float if(!headerFloated){ headerFloated = true; if(useAbsolutePositioning){ //#53, #56 var tw = tableWidth($table, $fthCells, true); var wrapperWidth = $wrapper.width(); if(tw > wrapperWidth){ $table.css('minWidth', tw); } } $table.css(layoutFixed); $floatTable.css(layoutFixed); $floatTable.append($header); //append because colgroup must go first in chrome $tbody.before($newHeader); setHeaderHeight(); } } function unfloat(){ //put the header back into the table if(headerFloated){ headerFloated = false; if(useAbsolutePositioning){ //#53, #56 $table.width(originalTableWidth); } $newHeader.detach(); $table.prepend($header); $table.css(layoutAuto); $floatTable.css(layoutAuto); $table.css('minWidth', originalTableMinWidth); //this looks weird, but it's not a bug. Think about it!! $table.css('minWidth', tableWidth($table, $fthCells)); //#121 } } var isHeaderFloatingLogical = false; //for the purpose of this event, the header is/isnt floating, even though the element //might be in some other state. this is what the header looks like to the user function triggerFloatEvent(isFloating){ if(isHeaderFloatingLogical !== isFloating){ isHeaderFloatingLogical = isFloating; $table.triggerHandler("floatThead", [isFloating, $floatContainer]) } } function changePositioning(isAbsolute){ if(useAbsolutePositioning !== isAbsolute){ useAbsolutePositioning = isAbsolute; $floatContainer.css({ position: useAbsolutePositioning ? 'absolute' : 'fixed' }); } } function getSizingRow($table, $cols, $fthCells, ieVersion){ if(createElements){ return $fthCells; } else if(ieVersion) { return opts.getSizingRow($table, $cols, $fthCells); } else { return $cols; } } /** * returns a function that updates the floating header's cell widths. * @return {Function} */ function reflow(){ var i; var numCols = columnNum(); //if the tables columns changed dynamically since last time (datatables), rebuild the sizer rows and get a new count return function(){ //Cache the current scrollLeft value so that it can be reset post reflow var scrollLeft = $floatContainer.scrollLeft(); $tableCells = $tableColGroup.find(colSelector); var $rowCells = getSizingRow($table, $tableCells, $fthCells, ieVersion); if($rowCells.length === numCols && numCols > 0){ if(!existingColGroup){ for(i=0; i < numCols; i++){ $tableCells.eq(i).css('width', ''); } } unfloat(); var widths = []; for(i=0; i < numCols; i++){ widths[i] = getOffsetWidth($rowCells.get(i)); } for(i=0; i < numCols; i++){ $headerCells.eq(i).width(widths[i]); $tableCells.eq(i).width(widths[i]); } refloat(); } else { $floatTable.append($header); $table.css(layoutAuto); $floatTable.css(layoutAuto); setHeaderHeight(); } //Set back the current scrollLeft value on floatContainer $floatContainer.scrollLeft(scrollLeft); $table.triggerHandler("reflowed", [$floatContainer]); }; } function floatContainerBorderWidth(side){ var border = $scrollContainer.css("border-"+side+"-width"); var w = 0; if (border && ~border.indexOf('px')) { w = parseInt(border, 10); } return w; } function isResponsiveContainerActive(){ return $responsiveContainer.css("overflow-x") === 'auto'; } /** * first performs initial calculations that we expect to not change when the table, window, or scrolling container are scrolled. * returns a function that calculates the floating container's top and left coords. takes into account if we are using page scrolling or inner scrolling * @return {Function} */ function calculateFloatContainerPosFn(){ var scrollingContainerTop = $scrollContainer.scrollTop(); //this floatEnd calc was moved out of the returned function because we assume the table height doesn't change (otherwise we must reinit by calling calculateFloatContainerPosFn) var floatEnd; var tableContainerGap = 0; var captionHeight = haveCaption ? $caption.outerHeight(true) : 0; var captionScrollOffset = captionAlignTop ? captionHeight : -captionHeight; var floatContainerHeight = $floatContainer.height(); var tableOffset = $table.offset(); var tableLeftGap = 0; //can be caused by border on container (only in locked mode) var tableTopGap = 0; if(locked){ var containerOffset = $scrollContainer.offset(); tableContainerGap = tableOffset.top - containerOffset.top + scrollingContainerTop; if(haveCaption && captionAlignTop){ tableContainerGap += captionHeight; } tableLeftGap = floatContainerBorderWidth('left'); tableTopGap = floatContainerBorderWidth('top'); tableContainerGap -= tableTopGap; } else { floatEnd = tableOffset.top - scrollingTop - floatContainerHeight + scrollingBottom + scrollbarOffset.horizontal; } var windowTop = $window.scrollTop(); var windowLeft = $window.scrollLeft(); var getScrollContainerLeft = function(){ return (isResponsiveContainerActive() ? $responsiveContainer : $scrollContainer).scrollLeft() || 0; }; var scrollContainerLeft = getScrollContainerLeft(); return function(eventType){ responsive = isResponsiveContainerActive(); var isTableHidden = $table[0].offsetWidth <= 0 && $table[0].offsetHeight <= 0; if(!isTableHidden && floatTableHidden) { floatTableHidden = false; setTimeout(function(){ $table.triggerHandler("reflow"); }, 1); return null; } if(isTableHidden){ //it's hidden floatTableHidden = true; if(!useAbsolutePositioning){ return null; } } if(eventType === 'windowScroll'){ windowTop = $window.scrollTop(); windowLeft = $window.scrollLeft(); } else if(eventType === 'containerScroll'){ if($responsiveContainer.length){ if(!responsive){ return; //we dont care about the event if we arent responsive right now } scrollContainerLeft = $responsiveContainer.scrollLeft(); } else { scrollingContainerTop = $scrollContainer.scrollTop(); scrollContainerLeft = $scrollContainer.scrollLeft(); } } else if(eventType !== 'init') { windowTop = $window.scrollTop(); windowLeft = $window.scrollLeft(); scrollingContainerTop = $scrollContainer.scrollTop(); scrollContainerLeft = getScrollContainerLeft(); } if(isWebkit && (windowTop < 0 || (isRTL && windowLeft > 0 ) || ( !isRTL && windowLeft < 0 )) ){ //chrome overscroll effect at the top of the page - breaks fixed positioned floated headers return; } if(absoluteToFixedOnScroll){ if(eventType === 'windowScrollDone'){ changePositioning(true); //change to absolute } else { changePositioning(false); //change to fixed } } else if(eventType === 'windowScrollDone'){ return null; //event is fired when they stop scrolling. ignore it if not 'absoluteToFixedOnScroll' } tableOffset = $table.offset(); if(haveCaption && captionAlignTop){ tableOffset.top += captionHeight; } var top, left; var tableHeight = $table.outerHeight(); if(locked && useAbsolutePositioning){ //inner scrolling, absolute positioning if (tableContainerGap >= scrollingContainerTop) { var gap = tableContainerGap - scrollingContainerTop + tableTopGap; top = gap > 0 ? gap : 0; triggerFloatEvent(false); } else if(scrollingContainerTop - tableContainerGap > tableHeight - floatContainerHeight){ // scrolled past table but there is space in the container under it.. top = tableHeight - floatContainerHeight - scrollingContainerTop - tableContainerGap; } else { top = wrappedContainer ? tableTopGap : scrollingContainerTop; //headers stop at the top of the viewport triggerFloatEvent(true); } left = tableLeftGap; } else if(!locked && useAbsolutePositioning) { //window scrolling, absolute positioning if(windowTop > floatEnd + tableHeight + captionScrollOffset){ top = tableHeight - floatContainerHeight + captionScrollOffset + scrollingBottom; //scrolled past table } else if (tableOffset.top >= windowTop + scrollingTop) { top = 0; //scrolling to table unfloat(); triggerFloatEvent(false); } else { top = scrollingTop + windowTop - tableOffset.top + tableContainerGap + (captionAlignTop ? captionHeight : 0); refloat(); //scrolling within table. header floated triggerFloatEvent(true); } left = scrollContainerLeft; } else if(locked && !useAbsolutePositioning){ //inner scrolling, fixed positioning if (tableContainerGap > scrollingContainerTop || scrollingContainerTop - tableContainerGap > tableHeight) { top = tableOffset.top - windowTop; unfloat(); triggerFloatEvent(false); } else { top = tableOffset.top + scrollingContainerTop - windowTop - tableContainerGap; refloat(); triggerFloatEvent(true); //headers stop at the top of the viewport } left = tableOffset.left + scrollContainerLeft - windowLeft; } else if(!locked && !useAbsolutePositioning) { //window scrolling, fixed positioning if(windowTop > floatEnd + tableHeight + captionScrollOffset){ top = tableHeight + scrollingTop - windowTop + floatEnd + captionScrollOffset; //scrolled past the bottom of the table } else if (tableOffset.top > windowTop + scrollingTop) { top = tableOffset.top - windowTop; refloat(); triggerFloatEvent(false); //this is a weird case, the header never gets unfloated and i have no no way to know //scrolled past the top of the table } else { //scrolling within the table top = scrollingTop; triggerFloatEvent(true); } left = tableOffset.left + scrollContainerLeft - windowLeft; } return {top: Math.round(top), left: Math.round(left)}; }; } /** * returns a function that caches old floating container position and only updates css when the position changes * @return {Function} */ function repositionFloatContainerFn(){ var oldTop = null; var oldLeft = null; var oldScrollLeft = null; return function(pos, setWidth, setHeight){ if(pos != null && (oldTop !== pos.top || oldLeft !== pos.left)){ if(ieVersion === 8){ $floatContainer.css({ top: pos.top, left: pos.left }); } else { var transform = 'translateX(' + pos.left + 'px) translateY(' + pos.top + 'px)'; var cssObj = { '-webkit-transform' : transform, '-moz-transform' : transform, '-ms-transform' : transform, '-o-transform' : transform, 'transform' : transform, 'top': 0, 'left': 0, }; $floatContainer.css(cssObj); } oldTop = pos.top; oldLeft = pos.left; } if(setWidth){ setFloatWidth(); } if(setHeight){ setHeaderHeight(); } var scrollLeft = (responsive ? $responsiveContainer : $scrollContainer).scrollLeft(); if(!useAbsolutePositioning || oldScrollLeft !== scrollLeft){ $floatContainer.scrollLeft(scrollLeft); oldScrollLeft = scrollLeft; } } } /** * checks if THIS table has scrollbars, and finds their widths */ function calculateScrollBarSize(){ //this should happen after the floating table has been positioned if($scrollContainer.length){ if(opts.support && opts.support.perfectScrollbar && $scrollContainer.data().perfectScrollbar){ scrollbarOffset = {horizontal:0, vertical:0}; } else { if($scrollContainer.css('overflow-x') === 'scroll'){ scrollbarOffset.horizontal = scrollbarWidth; } else { var sw = $scrollContainer.width(), tw = tableWidth($table, $fthCells); var offsetv = sh < th ? scrollbarWidth : 0; scrollbarOffset.horizontal = sw - offsetv < tw ? scrollbarWidth : 0; } if($scrollContainer.css('overflow-y') === 'scroll'){ scrollbarOffset.vertical = scrollbarWidth; } else { var sh = $scrollContainer.height(), th = $table.height(); var offseth = sw < tw ? scrollbarWidth : 0; scrollbarOffset.vertical = sh - offseth < th ? scrollbarWidth : 0; } } } } //finish up. create all calculation functions and bind them to events calculateScrollBarSize(); var flow; var ensureReflow = function(){ flow = reflow(); flow(); }; ensureReflow(); var calculateFloatContainerPos = calculateFloatContainerPosFn(); var repositionFloatContainer = repositionFloatContainerFn(); repositionFloatContainer(calculateFloatContainerPos('init'), true); //this must come after reflow because reflow changes scrollLeft back to 0 when it rips out the thead var windowScrollDoneEvent = util.debounce(function(){ repositionFloatContainer(calculateFloatContainerPos('windowScrollDone'), false); }, 1); var windowScrollEvent = function(){ repositionFloatContainer(calculateFloatContainerPos('windowScroll'), false); if(absoluteToFixedOnScroll){ windowScrollDoneEvent(); } }; var containerScrollEvent = function(){ repositionFloatContainer(calculateFloatContainerPos('containerScroll'), false); }; var windowResizeEvent = function(){ if($table.is(":hidden")){ return; } updateScrollingOffsets(); calculateScrollBarSize(); ensureReflow(); calculateFloatContainerPos = calculateFloatContainerPosFn(); repositionFloatContainer = repositionFloatContainerFn(); repositionFloatContainer(calculateFloatContainerPos('resize'), true, true); }; var reflowEvent = util.debounce(function(){ if($table.is(":hidden")){ return; } calculateScrollBarSize(); updateScrollingOffsets(); ensureReflow(); calculateFloatContainerPos = calculateFloatContainerPosFn(); repositionFloatContainer(calculateFloatContainerPos('reflow'), true, true); }, 1); /////// printing stuff var beforePrint = function(){ unfloat(); }; var afterPrint = function(){ refloat(); }; var printEvent = function(mql){ //make printing the table work properly on IE10+ if(mql.matches) { beforePrint(); } else { afterPrint(); } }; var matchMediaPrint = null; if(window.matchMedia && window.matchMedia('print').addListener && !buggyMatchMedia){ matchMediaPrint = window.matchMedia("print"); matchMediaPrint.addListener(printEvent); } else { $window.on('fth-beforeprint', beforePrint); $window.on('fth-afterprint', afterPrint); } ////// end printing stuff if(locked){ //internal scrolling if(useAbsolutePositioning){ $scrollContainer.on(eventName('scroll'), containerScrollEvent); } else { $scrollContainer.on(eventName('scroll'), containerScrollEvent); $window.on(eventName('scroll'), windowScrollEvent); } } else { //window scrolling $responsiveContainer.on(eventName('scroll'), containerScrollEvent); $window.on(eventName('scroll'), windowScrollEvent); } $window.on(eventName('load'), reflowEvent); //for tables with images windowResize(eventName('resize'), windowResizeEvent); $table.on('reflow', reflowEvent); if(opts.support && opts.support.datatables && isDatatable($table)){ $table .on('filter', reflowEvent) .on('sort', reflowEvent) .on('page', reflowEvent); } if(opts.support && opts.support.bootstrap) { $window.on(eventName('shown.bs.tab'), reflowEvent); // people cant seem to figure out how to use this plugin with bs3 tabs... so this :P } if(opts.support && opts.support.jqueryUI) { $window.on(eventName('tabsactivate'), reflowEvent); // same thing for jqueryui } if (canObserveMutations) { var mutationElement = null; if(util.isFunction(opts.autoReflow)){ mutationElement = opts.autoReflow($table, $scrollContainer) } if(!mutationElement) { mutationElement = $scrollContainer.length ? $scrollContainer[0] : $table[0] } mObs = new MutationObserver(function(e){ var wasTableRelated = function(nodes){ return nodes && nodes[0] && (nodes[0].nodeName === "THEAD" || nodes[0].nodeName === "TD"|| nodes[0].nodeName === "TH"); }; for(var i=0; i < e.length; i++){ if(!(wasTableRelated(e[i].addedNodes) || wasTableRelated(e[i].removedNodes))){ reflowEvent(); break; } } }); mObs.observe(mutationElement, { childList: true, subtree: true }); } //attach some useful functions to the table. $table.data('floatThead-attached', { destroy: function(){ var ns = '.fth-'+floatTheadId; unfloat(); $table.css(layoutAuto); $tableColGroup.remove(); createElements && $fthGrp.remove(); if($newHeader.parent().length){ //only if it's in the DOM $newHeader.replaceWith($header); } triggerFloatEvent(false); if(canObserveMutations){ mObs.disconnect(); mObs = null; } $table.off('reflow reflowed'); $scrollContainer.off(ns); $responsiveContainer.off(ns); if (wrappedContainer) { if ($scrollContainer.length) { $scrollContainer.unwrap(); } else { $table.unwrap(); } } if(locked){ $scrollContainer.data('floatThead-containerWrap', false); } else { $table.data('floatThead-containerWrap', false); } $table.css('minWidth', originalTableMinWidth); $floatContainer.remove(); $table.data('floatThead-attached', false); $window.off(ns); $window.off('fth-beforeprint fth-afterprint'); // Not bound with id, so cant use ns. if (matchMediaPrint) { matchMediaPrint.removeListener(printEvent); } beforePrint = afterPrint = function(){}; return function reinit(){ return $table.floatThead(opts); } }, reflow: function(){ reflowEvent(); }, setHeaderHeight: function(){ setHeaderHeight(); }, getFloatContainer: function(){ return $floatContainer; }, getRowGroups: function(){ if(headerFloated){ return $floatContainer.find('>table>thead').add($table.children("tbody,tfoot")); } else { return $table.children("thead,tbody,tfoot"); } } }); }); return this; }; })((function(){ var $ = window.jQuery; if(typeof module !== 'undefined' && module.exports && !$) { // only use cjs if they dont have a jquery for me to use, and we have commonjs $ = require('jquery'); } return $; })()); </script> <script type="rocketlazyloadscript"> /** * RWD Table with freezing head and columns for jQuery * * @author Nick Tsai <myintaer@gmail.com> * @version 1.3.0 * @see https://github.com/yidas/jquery-freeze-table */ (function ($, window) { 'use strict'; /** * Main object * * @param {element} element * @param {object} options */ var FreezeTable = function(element, options) { // Target element initialization this.$tableWrapper = $(element).first(); // Options this.options = options || {}; this.namespace = this.options.namespace || 'freeze-table'; this.callback; this.scrollBarHeight; this.shadow; this.fastMode; this.backgroundColor; this.scrollable; // Caches this.$table = this.$tableWrapper.children("table"); this.$container = ((typeof this.options.container !== 'undefined') && this.options.container && $(this.options.container).length) ? $(this.options.container) : $(window); this.$headTableWrap; this.$columnTableWrap; this.$columnHeadTableWrap; this.$scrollBarWrap; this.fixedNavbarHeight; this.isWindowScrollX = false; // Static class names for clone wraps this.headWrapClass = 'clone-head-table-wrap'; this.columnWrapClass = 'clone-column-table-wrap'; this.columnHeadWrapClass = 'clone-column-head-table-wrap'; this.scrollBarWrapClass = 'clone-scroll-bar-wrap'; this.init(); return this; } /** * Initialization */ FreezeTable.prototype.init = function() { // Element check if (!this.$table.length) { throw "The element must contain a table dom"; } /** * Update Mode */ if (this.options==='update') { this.destroy(); this.options = this.$tableWrapper.data('freeze-table-data'); } else if (this.options==='resize') { this.options = this.$tableWrapper.data('freeze-table-data'); // Get selected FreezeTable's namespace this.namespace = this.options.namespace || this.namespace; this.resize(); // Skip init for better performance usage return; } else { // Save to DOM data this.$tableWrapper.data('freeze-table-data', this.options); } /** * Options Setting */ var options = this.options; var freezeHead = (typeof options.freezeHead !== 'undefined') ? options.freezeHead : true; var freezeColumn = (typeof options.freezeColumn !== 'undefined') ? options.freezeColumn : true; var freezeColumnHead = (typeof options.freezeColumnHead !== 'undefined') ? options.freezeColumnHead : true; var scrollBar = (typeof options.scrollBar !== 'undefined') ? options.scrollBar : false; var fixedNavbar = options.fixedNavbar || '.navbar-fixed-top'; var callback = options.callback || null; this.namespace = this.options.namespace || this.namespace; // Default to get window scroll bar height this.scrollBarHeight = ($.isNumeric(options.scrollBarHeight)) ? options.scrollBarHeight : (window.innerWidth - document.documentElement.clientWidth); this.shadow = (typeof options.shadow !== 'undefined') ? options.shadow : false; this.fastMode = (typeof options.fastMode !== 'undefined') ? options.fastMode : false; this.backgroundColor = (typeof options.backgroundColor !== 'undefined') ? options.backgroundColor : 'white'; this.scrollable = (typeof options.scrollable !== 'undefined') ? options.scrollable : false; // Get navbar height for keeping fixed navbar this.fixedNavbarHeight = (fixedNavbar) ? $(fixedNavbar).outerHeight() || 0 : 0; // Check existence if (this.isInit()) { this.destroy(); } // Release height of the table wrapper if (!this.scrollable) { this.$tableWrapper.css('height', '100%') .css('min-height', '100%') .css('max-height', '100%'); } /** * Building */ // Switch for freezeHead if (freezeHead) { this.buildHeadTable(); } // Switch for freezeColumn if (freezeColumn) { this.buildColumnTable(); // X scroll bar this.$tableWrapper.css('overflow-x', 'scroll'); } // Switch for freezeColumnHead if (freezeColumnHead && freezeHead && freezeColumn) { this.buildColumnHeadTable(); } // Switch for scrollBar if (scrollBar) { this.buildScrollBar(); } // Body scroll-x prevention var detectWindowScroll = (function (){ // If body scroll-x is opened, close library to prevent Invalid usage if (this.$container.scrollLeft() > 0) { // Mark this.isWindowScrollX = true; // Hide all components if (this.$headTableWrap) { this.$headTableWrap.css('visibility', 'hidden'); } if (this.$columnTableWrap) { this.$columnTableWrap.css('visibility', 'hidden'); } if (this.$columnHeadTableWrap) { this.$columnHeadTableWrap.css('visibility', 'hidden'); } if (this.$scrollBarWrap) { this.$scrollBarWrap.css('visibility', 'hidden'); } } else { // Unmark this.isWindowScrollX = false; } }).bind(this); // Listener of Body scroll-x prevention this.$container.on('scroll.'+this.namespace, function () { detectWindowScroll(); }); // Initialization this.resize(); // Callback if (typeof callback === 'function') { callback(); } } /** * Freeze thead table */ FreezeTable.prototype.buildHeadTable = function() { var that = this; // Clone the table as Fixed thead var $headTable = this.clone(this.$table); // Fast Mode if (this.fastMode) { var $headTable = this.simplifyHead($headTable); } var headWrapStyles = this.options.headWrapStyles || null; // Wrap the Fixed Column table this.$headTableWrap = $('<div class="'+this.headWrapClass+'"></div>') .append($headTable) .css('position', 'fixed') .css('overflow', 'hidden') .css('visibility', 'hidden') .css('top', 0 + this.fixedNavbarHeight) .css('z-index', 2); // Shadow option if (this.shadow) { this.$headTableWrap.css('box-shadow', '0px 6px 10px -5px rgba(159, 159, 160, 0.8)'); } // Styles option if (headWrapStyles && typeof headWrapStyles === "object") { $.each(headWrapStyles, function(key, value) { that.$headTableWrap.css(key, value); }); } // Add into target table wrap this.$tableWrapper.append(this.$headTableWrap); /** * Listener - Table scroll for effecting Freeze Column */ this.$tableWrapper.on('scroll.'+this.namespace, function() { // this.$headTableWrap.css('left', this.$table.offset().left); that.$headTableWrap.scrollLeft($(this).scrollLeft()); }); // Scrollable option if (this.scrollable) { var handler = function (window, that) { var top = that.$tableWrapper.offset().top; // Detect Current container's top is in the table scope if (that.$tableWrapper.scrollTop() > 0 && top > that.fixedNavbarHeight) { that.$headTableWrap.offset({top: top}); that.$headTableWrap.css('visibility', 'visible'); } else { that.$headTableWrap.css('visibility', 'hidden'); } } /** * Listener - Window scroll for effecting freeze head table */ this.$tableWrapper.on('scroll.'+this.namespace, function() { handler(window, that); }); this.$container.on('scroll.'+this.namespace, function() { handler(window, that); }); } // Default with window container else if ($.isWindow(that.$container.get(0))) { /** * Listener - Window scroll for effecting freeze head table */ this.$container.on('scroll.'+this.namespace, function() { // Current container's top position var topPosition = that.$container.scrollTop() + that.fixedNavbarHeight; var tableTop = that.$table.offset().top - 1; // Detect Current container's top is in the table scope if (tableTop - 1 <= topPosition && (tableTop + that.$table.outerHeight() - 1) >= topPosition) { that.$headTableWrap.css('visibility', 'visible'); } else { that.$headTableWrap.css('visibility', 'hidden'); } }); } // Container setting else { /** * Listener - Window scroll for effecting freeze head table */ this.$container.on('scroll.'+this.namespace, function() { var windowTop = $(window).scrollTop(); var tableTop = that.$table.offset().top - 1; // Detect Current container's top is in the table scope if (tableTop <= windowTop && (tableTop + that.$table.outerHeight() - 1) >= windowTop) { that.$headTableWrap.offset({top: windowTop}); that.$headTableWrap.css('visibility', 'visible'); } else { that.$headTableWrap.css('visibility', 'hidden'); } }); } /** * Listener - Window resize for effecting freeze head table */ this.$container.on('resize.'+this.namespace, function() { // Scrollable check and prevention var headTableWrapWidth = (that.scrollable) ? that.$tableWrapper.width() - that.scrollBarHeight : that.$tableWrapper.width(); headTableWrapWidth = (headTableWrapWidth > 0) ? headTableWrapWidth : that.$tableWrapper.width(); that.$headTableWrap.css('width', headTableWrapWidth); that.$headTableWrap.css('height', that.$table.find("thead").outerHeight()); }); } /** * Freeze column table */ FreezeTable.prototype.buildColumnTable = function() { var that = this; /** * Setting */ var columnWrapStyles = this.options.columnWrapStyles || null; var columnNum = this.options.columnNum || 1; var columnKeep = (typeof this.options.columnKeep !== 'undefined') ? this.options.columnKeep : false; // Shadow option var defaultColumnBorderWidth = (this.shadow) ? 0 : 1; var columnBorderWidth = (typeof this.options.columnBorderWidth !== 'undefined') ? this.options.columnBorderWidth : defaultColumnBorderWidth; // Clone the table as Fixed Column table var $columnTable = this.clone(this.$table); // Wrap the Fixed Column table this.$columnTableWrap = $('<div class="'+this.columnWrapClass+'"></div>') .append($columnTable) .css('position', 'fixed') .css('overflow', 'hidden') .css('visibility', 'hidden') .css('z-index', 1); // Shadow option if (this.shadow) { this.$columnTableWrap.css('box-shadow', '6px 0px 10px -5px rgba(159, 159, 160, 0.8)'); } // Styles option if (columnWrapStyles && typeof columnWrapStyles === "object") { $.each(columnWrapStyles, function(key, value) { that.$columnTableWrap.css(key, value); }); } // Scrollable if (this.scrollable) { // Scrollable check and prevention var columnTableWrapHeight = this.$tableWrapper.height() - this.scrollBarHeight; columnTableWrapHeight = (columnTableWrapHeight > 0) ? columnTableWrapHeight : this.$tableWrapper.height(); this.$columnTableWrap.height(columnTableWrapHeight); } // Add into target table wrap this.$tableWrapper.append(this.$columnTableWrap); /** * localize the column wrap to current top */ var localizeWrap = function () { that.$columnTableWrap.offset({top: that.$tableWrapper.offset().top}); } // Column keep option if (columnKeep) { this.$columnTableWrap.css('visibility', 'visible'); } else { // Scrollable option if (that.scrollable) { /** * Listener - Table scroll for effecting Freeze Column */ this.$tableWrapper.on('scroll.'+this.namespace, function() { // Detect for horizontal scroll if ($(this).scrollLeft() > 0) { // Scrollable localization that.$columnTableWrap.scrollTop(that.$tableWrapper.scrollTop()); that.$columnTableWrap.css('visibility', 'visible'); } else { that.$columnTableWrap.css('visibility', 'hidden'); } }); } else { /** * Listener - Table scroll for effecting Freeze Column */ this.$tableWrapper.on('scroll.'+this.namespace, function() { // Disable while isWindowScrollX if (that.isWindowScrollX) return; // Detect for horizontal scroll if ($(this).scrollLeft() > 0) { that.$columnTableWrap.css('visibility', 'visible'); } else { that.$columnTableWrap.css('visibility', 'hidden'); } }); } } /** * Listener - Window resize for effecting tables */ this.$container.on('resize.'+this.namespace, function() { // Follows origin table's width $columnTable.width(that.$table.width()); /** * Dynamic column calculation */ // Get width by fixed column with number setting var width = 0 + columnBorderWidth; for (var i = 1; i <= columnNum; i++) { // th/td detection var th = that.$table.find('th:nth-child('+i+')').outerWidth(); var addWidth = (th > 0) ? th : that.$table.find('td:nth-child('+i+')').outerWidth(); width += addWidth; } that.$columnTableWrap.width(width); localizeWrap(); }); /** * Listener - Window scroll for effecting freeze column table */ this.$container.on('scroll.'+this.namespace, function() { localizeWrap(); }); } /** * Freeze column thead table */ FreezeTable.prototype.buildColumnHeadTable = function() { var that = this; // Clone head table wrap this.$columnHeadTableWrap = this.clone(this.$headTableWrap); // Fast Mode if (this.fastMode) { this.$columnHeadTableWrap = this.simplifyHead(this.$columnHeadTableWrap); } var columnHeadWrapStyles = this.options.columnHeadWrapStyles || null; this.$columnHeadTableWrap.removeClass(this.namespace) .addClass(this.columnHeadWrapClass) .css('z-index', 3); // Shadow option if (this.shadow) { this.$columnHeadTableWrap.css('box-shadow', 'none'); } // Styles option if (columnHeadWrapStyles && typeof columnHeadWrapStyles === "object") { $.each(columnHeadWrapStyles, function(key, value) { this.$columnHeadTableWrap.css(key, value); }); } // Add into target table wrap this.$tableWrapper.append(this.$columnHeadTableWrap); // Scrollable option if (this.scrollable) { var detect = function () { var top = that.$tableWrapper.offset().top; // Detect Current container's top is in the table scope if (that.$tableWrapper.scrollTop() > 0 && top > that.fixedNavbarHeight) { that.$columnHeadTableWrap.offset({top: top}); that.$columnHeadTableWrap.css('visibility', 'visible'); } else { that.$columnHeadTableWrap.css('visibility', 'hidden'); } } /** * Listener - Window scroll for effecting freeze head table */ $(this.$tableWrapper).on('scroll.'+this.namespace, function() { detect(); }); } // Default with window container else if ($.isWindow(this.$container.get(0))) { var detect = function () { // Current container's top position var topPosition = that.$container.scrollTop() + that.fixedNavbarHeight; var tableTop = that.$table.offset().top - 1; // Detect Current container's top is in the table scope if (tableTop - 1 <= topPosition && (tableTop + that.$table.outerHeight() - 1) >= topPosition && that.$tableWrapper.scrollLeft() > 0) { that.$columnHeadTableWrap.css('visibility', 'visible'); } else { that.$columnHeadTableWrap.css('visibility', 'hidden'); } } } // Container setting else { var detect = function () { var windowTop = $(window).scrollTop(); var tableTop = that.$table.offset().top - 1; // Detect Current container's top is in the table scope if (tableTop <= windowTop && (tableTop + that.$table.outerHeight() - 1) >= windowTop && that.$tableWrapper.scrollLeft() > 0) { that.$columnHeadTableWrap.offset({top: windowTop}); that.$columnHeadTableWrap.css('visibility', 'visible'); } else { that.$columnHeadTableWrap.css('visibility', 'hidden'); } } } /** * Listener - Window scroll for effecting Freeze column-head table */ this.$container.on('scroll.'+this.namespace, function() { detect(); }); /** * Listener - Table scroll for effecting Freeze column-head table */ this.$tableWrapper.on('scroll.'+this.namespace, function() { // Disable while isWindowScrollX if (that.isWindowScrollX) return; detect(); }); /** * Listener - Window resize for effecting freeze column-head table */ this.$container.on('resize.'+this.namespace, function() { // Table synchronism that.$columnHeadTableWrap.find("> table").css('width', that.$table.width()); that.$columnHeadTableWrap.css('width', that.$columnTableWrap.width()); that.$columnHeadTableWrap.css('height', that.$table.find("thead").outerHeight()); }); } /** * Freeze scroll bar */ FreezeTable.prototype.buildScrollBar = function() { var that = this; var theadHeight = this.$table.find("thead").outerHeight(); // Scroll wrap container var $scrollBarContainer = $('<div class="'+this.scrollBarWrapClass+'"></div>') .css('width', this.$table.width()) .css('height', 1); // Wrap the Fixed Column table this.$scrollBarWrap = $('<div class="'+this.scrollBarWrapClass+'"></div>') .css('position', 'fixed') .css('overflow-x', 'scroll') .css('visibility', 'hidden') .css('bottom', 0) .css('z-index', 2) .css('width', this.$tableWrapper.width()) .css('height', this.scrollBarHeight); // Add into target table wrap this.$scrollBarWrap.append($scrollBarContainer); this.$tableWrapper.append(this.$scrollBarWrap); /** * Listener - Freeze scroll bar effected Table */ this.$scrollBarWrap.on('scroll.'+this.namespace, function() { that.$tableWrapper.scrollLeft($(this).scrollLeft()); }); /** * Listener - Table scroll for effecting Freeze scroll bar */ this.$tableWrapper.on('scroll.'+this.namespace, function() { // this.$headTableWrap.css('left', $table.offset().left); that.$scrollBarWrap.scrollLeft($(this).scrollLeft()); }); /** * Listener - Window scroll for effecting scroll bar */ this.$container.on('scroll.'+this.namespace, function() { // Current container's top position var bottomPosition = that.$container.scrollTop() + that.$container.height() - theadHeight + that.fixedNavbarHeight; // Detect Current container's top is in the table scope if (that.$table.offset().top - 1 <= bottomPosition && (that.$table.offset().top + that.$table.outerHeight() - 1) >= bottomPosition) { that.$scrollBarWrap.css('visibility', 'visible'); } else { that.$scrollBarWrap.css('visibility', 'hidden'); } }); /** * Listener - Window resize for effecting scroll bar */ this.$container.on('resize.'+this.namespace, function() { // Update width $scrollBarContainer.css('width', that.$table.width()) // Update Wrap that.$scrollBarWrap.css('width', that.$tableWrapper.width()); }); } /** * Clone element * * @param {element} element */ FreezeTable.prototype.clone = function (element) { var $clone = $(element).clone() .removeAttr('id') // Remove ID // Bootstrap background-color transparent problem if (this.backgroundColor) { $clone.css('background-color', this.backgroundColor); } return $clone; } /** * simplify cloned head table * * @param {element} table Table element */ FreezeTable.prototype.simplifyHead = function (table) { var that = this; var $headTable = $(table); // Remove non-display DOM but keeping first row for accuracy $headTable.find("> tr, > tbody > tr, tfoot > tr").not(':first').remove(); // Each th/td width synchronism $.each($headTable.find("> thead > tr:nth-child(1) >"), function (key, value) { var width = that.$table.find("> thead > tr:nth-child(1) > :nth-child("+parseInt(key+1)+")").outerWidth(); $(this).css('width', width); }); return $headTable; } /** * Detect is already initialized */ FreezeTable.prototype.isInit = function() { // Check existence DOM if (this.$tableWrapper.find("."+this.headWrapClass).length) return true; if (this.$tableWrapper.find("."+this.columnWrapClass).length) return true; if (this.$tableWrapper.find("."+this.columnHeadWrapClass).length) return true; if (this.$tableWrapper.find("."+this.scrollBarWrapClass).length) return true; return false; } /** * Unbind all events by same namespace */ FreezeTable.prototype.unbind = function() { this.$container.off('resize.'+this.namespace); this.$container.off('scroll.'+this.namespace); this.$tableWrapper.off('scroll.'+this.namespace); } /** * Destroy Freeze Table by same namespace */ FreezeTable.prototype.destroy = function() { this.unbind(); this.$tableWrapper.find("."+this.headWrapClass).remove(); this.$tableWrapper.find("."+this.columnWrapClass).remove(); this.$tableWrapper.find("."+this.columnHeadWrapClass).remove(); this.$tableWrapper.find("."+this.scrollBarWrapClass).remove(); } /** * Resize trigger for current same namespace */ FreezeTable.prototype.resize = function() { this.$container.trigger('resize.'+this.namespace); this.$container.trigger('scroll.'+this.namespace); this.$tableWrapper.trigger('scroll.'+this.namespace); return true; } /** * Update for Dynamic Content */ FreezeTable.prototype.update = function() { // Same as re-new object this.options = 'update'; this.init(); return this; } /** * Interface */ // Class for single element window.FreezeTable = FreezeTable; // jQuery interface $.fn.freezeTable = function (options) { // Single/Multiple mode if (this.length === 1) { return new FreezeTable(this, options) } else if (this.length > 1) { var result = []; // Multiple elements bundle this.each(function () { result.push(new FreezeTable(this, options)); }); return result; } return false; } })(jQuery, window); </script> <script type="rocketlazyloadscript"> if (jQuery(window).width() > 700) { jQuery('.freeze-table .table').floatThead({ scrollContainer:function($table){ return $table.closest('.tableContainer'); } }); } else { jQuery('.freeze-table').freezeTable({ 'scrollable': true, }); } </script> <div data-wpr-lazyrender="1" class="wpc-filters-overlay"></div> <link rel='stylesheet' id='fl-builder-google-fonts-794d50efd815bb4a074bc414778a4205-css' href='//fonts.googleapis.com/css?family=Nunito+Sans%3A700%2C300%2C400%2C600%7CWork+Sans%3A500&#038;ver=6.7.1' media='all' /> <script type="rocketlazyloadscript" data-minify="1" data-rocket-src="https://www.printfection.com/wp-content/cache/min/1/wp-content/uploads/bb-plugin/cache/5129-layout.js?ver=1737782106" id="fl-builder-layout-5129-js"></script> <script type="rocketlazyloadscript" data-rocket-src="https://www.printfection.com/wp-includes/js/dist/hooks.min.js?ver=4d63a3d491d11ffd8ac6" id="wp-hooks-js"></script> <script type="rocketlazyloadscript" data-rocket-src="https://www.printfection.com/wp-includes/js/dist/i18n.min.js?ver=5e580eb46a90c2b997e6" id="wp-i18n-js"></script> <script type="rocketlazyloadscript" id="wp-i18n-js-after"> wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); </script> <script type="rocketlazyloadscript" data-minify="1" data-rocket-src="https://www.printfection.com/wp-content/cache/min/1/wp-content/plugins/contact-form-7/includes/swv/js/index.js?ver=1737771671" id="swv-js"></script> <script type="rocketlazyloadscript" id="contact-form-7-js-before"> var wpcf7 = { "api": { "root": "https:\/\/www.printfection.com\/wp-json\/", "namespace": "contact-form-7\/v1" }, "cached": 1 }; var wpcf7 = { "api": { "root": "https:\/\/www.printfection.com\/wp-json\/", "namespace": "contact-form-7\/v1" }, "cached": 1 }; </script> <script type="rocketlazyloadscript" data-minify="1" data-rocket-src="https://www.printfection.com/wp-content/cache/min/1/wp-content/plugins/contact-form-7/includes/js/index.js?ver=1737771672" id="contact-form-7-js"></script> <script id="wpcf7-redirect-script-js-extra"> var wpcf7r = {"ajax_url":"https:\/\/www.printfection.com\/wp-admin\/admin-ajax.php"}; </script> <script type="rocketlazyloadscript" data-minify="1" data-rocket-src="https://www.printfection.com/wp-content/cache/min/1/wp-content/plugins/wpcf7-redirect/build/js/wpcf7r-fe.js?ver=1737771672" id="wpcf7-redirect-script-js"></script> <script type="rocketlazyloadscript" data-rocket-src="https://www.printfection.com/wp-content/plugins/bb-plugin/js/jquery.imagesloaded.min.js?ver=2.8.6.1" id="imagesloaded-js"></script> <script type="rocketlazyloadscript" data-rocket-src="https://www.printfection.com/wp-content/plugins/bb-plugin/js/jquery.ba-throttle-debounce.min.js?ver=2.8.6.1" id="jquery-throttle-js"></script> <script type="rocketlazyloadscript" data-minify="1" data-rocket-src="https://www.printfection.com/wp-content/cache/min/1/wp-content/uploads/bb-plugin/cache/b9d874994a92ebbb4d7f207aa270fd86-layout-bundle.js?ver=1737771672" id="fl-builder-layout-bundle-b9d874994a92ebbb4d7f207aa270fd86-js"></script> <script type="rocketlazyloadscript" id="rocket-browser-checker-js-after"> "use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}var RocketBrowserCompatibilityChecker=function(){function RocketBrowserCompatibilityChecker(options){_classCallCheck(this,RocketBrowserCompatibilityChecker),this.passiveSupported=!1,this._checkPassiveOption(this),this.options=!!this.passiveSupported&&options}return _createClass(RocketBrowserCompatibilityChecker,[{key:"_checkPassiveOption",value:function(self){try{var options={get passive(){return!(self.passiveSupported=!0)}};window.addEventListener("test",null,options),window.removeEventListener("test",null,options)}catch(err){self.passiveSupported=!1}}},{key:"initRequestIdleCallback",value:function(){!1 in window&&(window.requestIdleCallback=function(cb){var start=Date.now();return setTimeout(function(){cb({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-start))}})},1)}),!1 in window&&(window.cancelIdleCallback=function(id){return clearTimeout(id)})}},{key:"isDataSaverModeOn",value:function(){return"connection"in navigator&&!0===navigator.connection.saveData}},{key:"supportsLinkPrefetch",value:function(){var elem=document.createElement("link");return elem.relList&&elem.relList.supports&&elem.relList.supports("prefetch")&&window.IntersectionObserver&&"isIntersecting"in IntersectionObserverEntry.prototype}},{key:"isSlowConnection",value:function(){return"connection"in navigator&&"effectiveType"in navigator.connection&&("2g"===navigator.connection.effectiveType||"slow-2g"===navigator.connection.effectiveType)}}]),RocketBrowserCompatibilityChecker}(); </script> <script id="rocket-preload-links-js-extra"> var RocketPreloadLinksConfig = {"excludeUris":"\/(?:.+\/)?feed(?:\/(?:.+\/?)?)?$|\/(?:.+\/)?embed\/|\/(index.php\/)?(.*)wp-json(\/.*|$)|\/refer\/|\/go\/|\/recommend\/|\/recommends\/","usesTrailingSlash":"1","imageExt":"jpg|jpeg|gif|png|tiff|bmp|webp|avif|pdf|doc|docx|xls|xlsx|php","fileExt":"jpg|jpeg|gif|png|tiff|bmp|webp|avif|pdf|doc|docx|xls|xlsx|php|html|htm","siteUrl":"https:\/\/www.printfection.com","onHoverDelay":"100","rateThrottle":"3"}; </script> <script type="rocketlazyloadscript" id="rocket-preload-links-js-after"> (function() { "use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e=function(){function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}}();function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var t=function(){function n(e,t){i(this,n),this.browser=e,this.config=t,this.options=this.browser.options,this.prefetched=new Set,this.eventTime=null,this.threshold=1111,this.numOnHover=0}return e(n,[{key:"init",value:function(){!this.browser.supportsLinkPrefetch()||this.browser.isDataSaverModeOn()||this.browser.isSlowConnection()||(this.regex={excludeUris:RegExp(this.config.excludeUris,"i"),images:RegExp(".("+this.config.imageExt+")$","i"),fileExt:RegExp(".("+this.config.fileExt+")$","i")},this._initListeners(this))}},{key:"_initListeners",value:function(e){-1<this.config.onHoverDelay&&document.addEventListener("mouseover",e.listener.bind(e),e.listenerOptions),document.addEventListener("mousedown",e.listener.bind(e),e.listenerOptions),document.addEventListener("touchstart",e.listener.bind(e),e.listenerOptions)}},{key:"listener",value:function(e){var t=e.target.closest("a"),n=this._prepareUrl(t);if(null!==n)switch(e.type){case"mousedown":case"touchstart":this._addPrefetchLink(n);break;case"mouseover":this._earlyPrefetch(t,n,"mouseout")}}},{key:"_earlyPrefetch",value:function(t,e,n){var i=this,r=setTimeout(function(){if(r=null,0===i.numOnHover)setTimeout(function(){return i.numOnHover=0},1e3);else if(i.numOnHover>i.config.rateThrottle)return;i.numOnHover++,i._addPrefetchLink(e)},this.config.onHoverDelay);t.addEventListener(n,function e(){t.removeEventListener(n,e,{passive:!0}),null!==r&&(clearTimeout(r),r=null)},{passive:!0})}},{key:"_addPrefetchLink",value:function(i){return this.prefetched.add(i.href),new Promise(function(e,t){var n=document.createElement("link");n.rel="prefetch",n.href=i.href,n.onload=e,n.onerror=t,document.head.appendChild(n)}).catch(function(){})}},{key:"_prepareUrl",value:function(e){if(null===e||"object"!==(void 0===e?"undefined":r(e))||!1 in e||-1===["http:","https:"].indexOf(e.protocol))return null;var t=e.href.substring(0,this.config.siteUrl.length),n=this._getPathname(e.href,t),i={original:e.href,protocol:e.protocol,origin:t,pathname:n,href:t+n};return this._isLinkOk(i)?i:null}},{key:"_getPathname",value:function(e,t){var n=t?e.substring(this.config.siteUrl.length):e;return n.startsWith("/")||(n="/"+n),this._shouldAddTrailingSlash(n)?n+"/":n}},{key:"_shouldAddTrailingSlash",value:function(e){return this.config.usesTrailingSlash&&!e.endsWith("/")&&!this.regex.fileExt.test(e)}},{key:"_isLinkOk",value:function(e){return null!==e&&"object"===(void 0===e?"undefined":r(e))&&(!this.prefetched.has(e.href)&&e.origin===this.config.siteUrl&&-1===e.href.indexOf("?")&&-1===e.href.indexOf("#")&&!this.regex.excludeUris.test(e.href)&&!this.regex.images.test(e.href))}}],[{key:"run",value:function(){"undefined"!=typeof RocketPreloadLinksConfig&&new n(new RocketBrowserCompatibilityChecker({capture:!0,passive:!0}),RocketPreloadLinksConfig).init()}}]),n}();t.run(); }()); </script> <script type="rocketlazyloadscript" data-rocket-src="https://www.printfection.com/wp-includes/js/jquery/ui/core.min.js?ver=1.13.3" id="jquery-ui-core-js"></script> <script id="popup-maker-site-js-extra"> var pum_vars = {"version":"1.20.4","pm_dir_url":"https:\/\/www.printfection.com\/wp-content\/plugins\/popup-maker\/","ajaxurl":"https:\/\/www.printfection.com\/wp-admin\/admin-ajax.php","restapi":"https:\/\/www.printfection.com\/wp-json\/pum\/v1","rest_nonce":null,"default_theme":"12821","debug_mode":"","disable_tracking":"","home_url":"\/","message_position":"top","core_sub_forms_enabled":"1","popups":[],"cookie_domain":"","analytics_route":"analytics","analytics_api":"https:\/\/www.printfection.com\/wp-json\/pum\/v1"}; var pum_sub_vars = {"ajaxurl":"https:\/\/www.printfection.com\/wp-admin\/admin-ajax.php","message_position":"top"}; var pum_popups = {"pum-12830":{"triggers":[],"cookies":[],"disable_on_mobile":false,"disable_on_tablet":false,"atc_promotion":null,"explain":null,"type_section":null,"theme_id":"12822","size":"small","responsive_min_width":"0%","responsive_max_width":"100%","custom_width":"640px","custom_height_auto":false,"custom_height":"380px","scrollable_content":false,"animation_type":"fade","animation_speed":"350","animation_origin":"center top","open_sound":"none","custom_sound":"","location":"center","position_top":"100","position_bottom":"0","position_left":"0","position_right":"0","position_from_trigger":false,"position_fixed":false,"overlay_disabled":false,"stackable":false,"disable_reposition":false,"zindex":"1999999999","close_button_delay":"0","fi_promotion":null,"close_on_form_submission":false,"close_on_form_submission_delay":"0","close_on_overlay_click":true,"close_on_esc_press":false,"close_on_f4_press":false,"disable_form_reopen":false,"disable_accessibility":false,"theme_slug":"lightbox","id":12830,"slug":"contact-us"}}; </script> <script type="rocketlazyloadscript" data-minify="1" data-rocket-src="https://www.printfection.com/wp-content/cache/min/1/wp-content/uploads/pum/pum-site-scripts.js?ver=1737771672" id="popup-maker-site-js"></script> <script src="https://www.google.com/recaptcha/api.js?render=6LdwlukjAAAAALfej6vPuPaEzaVSULgDUDV8cpfz&amp;ver=3.0" id="google-recaptcha-js"></script> <script type="rocketlazyloadscript" data-rocket-src="https://www.printfection.com/wp-includes/js/dist/vendor/wp-polyfill.min.js?ver=3.15.0" id="wp-polyfill-js"></script> <script id="wpcf7-recaptcha-js-before"> var wpcf7_recaptcha = { "sitekey": "6LdwlukjAAAAALfej6vPuPaEzaVSULgDUDV8cpfz", "actions": { "homepage": "homepage", "contactform": "contactform" } }; </script> <script data-minify="1" src="https://www.printfection.com/wp-content/cache/min/1/wp-content/plugins/contact-form-7/modules/recaptcha/index.js?ver=1737771672" id="wpcf7-recaptcha-js"></script> <script src="https://www.printfection.com/wp-content/plugins/wp-smushit/app/assets/js/smush-lazy-load.min.js?ver=3.17.1" id="smush-lazy-load-js"></script> <script type="rocketlazyloadscript" data-rocket-src="https://www.printfection.com/wp-content/plugins/bb-plugin/js/jquery.magnificpopup.min.js?ver=2.8.6.1" id="jquery-magnificpopup-js"></script> <script type="rocketlazyloadscript" data-rocket-src="https://www.printfection.com/wp-content/themes/bb-theme/js/bootstrap-4.min.js?ver=1.7.17.1" id="bootstrap-4-js"></script> <script id="fl-automator-js-extra"> var themeopts = {"medium_breakpoint":"992","mobile_breakpoint":"768","lightbox":"enabled","scrollTopPosition":"800"}; </script> <script type="rocketlazyloadscript" data-rocket-src="https://www.printfection.com/wp-content/themes/bb-theme/js/theme.min.js?ver=1.7.17.1" id="fl-automator-js"></script> <script id="ivory-search-scripts-js-extra"> var IvorySearchVars = {"is_analytics_enabled":"1"}; </script> <script type="rocketlazyloadscript" data-rocket-src="https://www.printfection.com/wp-content/plugins/add-search-to-menu/public/js/ivory-search.min.js?ver=5.5.9" id="ivory-search-scripts-js"></script> </body> </html> <!-- This website is like a Rocket, isn't it? Performance optimized by WP Rocket. Learn more: https://wp-rocket.me -->

Pages: 1 2 3 4 5 6 7 8 9 10