{"_id":"@eka-care/pagify-sdk","_rev":"9-e6dab4c63983cf1b19625cb71d328cbf","name":"@eka-care/pagify-sdk","dist-tags":{"latest":"1.4.3"},"versions":{"1.2.0":{"name":"@eka-care/pagify-sdk","version":"1.2.0","keywords":["pdf","html-to-pdf","pagination","paged-media","document-generation","print","pagedjs","html2pdf","browser","client-side"],"author":{"name":"EKA Care","email":"dev@eka.care"},"license":"MIT","_id":"@eka-care/pagify-sdk@1.2.0","maintainers":[{"name":"gauthamlaleka","email":"gautham.lal@eka.care"},{"name":"geethanjali.s","email":"geethanjali.s@eka.care"},{"name":"jainkuniya-eka","email":"Vishwesh.Jainkuniya@eka.care"},{"name":"vikalpsahni","email":"vikalp@eka.care"},{"name":"muhammedarshadtk","email":"muhammedarshadtk@eka.care"},{"name":"karthickeka","email":"karthick@eka.care"},{"name":"devops-orbi","email":"devops@eka.care"},{"name":"kai-dev","email":"govind.ganeriwal@eka.care"},{"name":"ekaraghunandan","email":"rags@eka.care"}],"homepage":"https://github.com/eka-care/pagify#readme","bugs":{"url":"https://github.com/eka-care/pagify/issues"},"dist":{"shasum":"6eb641708d050b309beea505f399fc84237cac96","tarball":"https://registry.npmjs.org/@eka-care/pagify-sdk/-/pagify-sdk-1.2.0.tgz","fileCount":9,"integrity":"sha512-RrUoJgZlW5m6KoNs5zCZiDWcKulOmXuwzZ19Cm/SBQ6iQyeaG1vVrhm/C2RB0LXHW1hCAXtZN9b5H48m9mtUeA==","signatures":[{"sig":"MEQCIAjbqIuof/wDdMYsWv9hEEiO1i/3a919c+eJBIT5MyGwAiBmxdmMDTQpLTVS+zvUcVa4eoe+BCuC2XsQhyq47yL/lQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7226048},"main":"dist/pagify.js","types":"dist/pagify.d.ts","module":"dist/pagify.esm.js","engines":{"node":">=14.0.0"},"gitHead":"acad90c9fe4e02f4931773e5584bf2180e782a71","scripts":{"dev":"npm run build:dev","lint":"eslint src/**/*.js","test":"jest","build":"rollup -c","lint:fix":"eslint src/**/*.js --fix","build:dev":"rollup -c --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"jainkuniya-eka","email":"Vishwesh.Jainkuniya@eka.care"},"repository":{"url":"git+https://github.com/eka-care/pagify.git","type":"git"},"_npmVersion":"9.8.1","description":"A powerful JavaScript SDK for rendering HTML content as paginated PDFs using Paged.js and html2pdf.js","directories":{"test":"test"},"_nodeVersion":"18.18.0","browserslist":["> 1%","last 2 versions","not dead"],"dependencies":{"pagedjs":"^0.4.3","html2pdf.js":"^0.10.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","rollup":"^3.25.0","typescript":"^5.1.0","@babel/core":"^7.22.0","@babel/preset-env":"^7.22.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.0","@rollup/plugin-node-resolve":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pagify-sdk_1.2.0_1755079227923_0.41467371931900265","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@eka-care/pagify-sdk","version":"1.2.2","keywords":["pdf","html-to-pdf","pagination","paged-media","document-generation","print","pagedjs","html2pdf","browser","client-side"],"author":{"name":"EKA Care","email":"dev@eka.care"},"license":"MIT","_id":"@eka-care/pagify-sdk@1.2.2","maintainers":[{"name":"gauthamlaleka","email":"gautham.lal@eka.care"},{"name":"geethanjali.s","email":"geethanjali.s@eka.care"},{"name":"jainkuniya-eka","email":"Vishwesh.Jainkuniya@eka.care"},{"name":"vikalpsahni","email":"vikalp@eka.care"},{"name":"muhammedarshadtk","email":"muhammedarshadtk@eka.care"},{"name":"karthickeka","email":"karthick@eka.care"},{"name":"devops-orbi","email":"devops@eka.care"},{"name":"kai-dev","email":"govind.ganeriwal@eka.care"},{"name":"ekaraghunandan","email":"rags@eka.care"}],"homepage":"https://github.com/eka-care/Pagify-sdk#readme","bugs":{"url":"https://github.com/eka-care/Pagify-sdk/issues"},"dist":{"shasum":"6b650d855157cec70987b5327e455cd73ff2f795","tarball":"https://registry.npmjs.org/@eka-care/pagify-sdk/-/pagify-sdk-1.2.2.tgz","fileCount":9,"integrity":"sha512-Uy/9BPe8QQHW9Dot2nYjjNVh3U1F/0mMqhKpUxbp+q3U8ppqXG0dwCIVHG0Vx+h+hs1REIN9ZpP5DA3P1EPTJQ==","signatures":[{"sig":"MEUCICU5/sXxC+wtwxw9fxRRpW3EtBUm0ICP3xXggpUGY33CAiEAqauFgB9RKAkc5dDciHSHhg11aL+tDkW/qkqJjsKNFOo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5137080},"main":"dist/pagify.js","types":"dist/pagify.d.ts","module":"dist/pagify.esm.js","engines":{"node":">=14.0.0"},"gitHead":"88a3b962e85d3707f6714a363597ca7fed74a9dc","scripts":{"dev":"npm run build:dev","lint":"eslint src/**/*.js","test":"jest","build":"NODE_ENV=production rollup -c","lint:fix":"eslint src/**/*.js --fix","build:dev":"rollup -c --watch","prepublishOnly":"npm run build","build:unminified":"rollup -c"},"_npmUser":{"name":"jainkuniya-eka","email":"Vishwesh.Jainkuniya@eka.care"},"repository":{"url":"git+https://github.com/eka-care/Pagify-sdk.git","type":"git"},"_npmVersion":"9.8.1","description":"A powerful JavaScript SDK for rendering HTML content as paginated PDFs using Paged.js and html2pdf.js","directories":{"test":"test"},"_nodeVersion":"18.18.0","browserslist":["> 1%","last 2 versions","not dead"],"dependencies":{"pagedjs":"^0.4.3","html2pdf.js":"^0.10.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","rollup":"^3.25.0","typescript":"^5.1.0","@babel/core":"^7.22.0","@babel/preset-env":"^7.22.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.0","@rollup/plugin-node-resolve":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pagify-sdk_1.2.2_1755089758194_0.19438480096589572","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@eka-care/pagify-sdk","version":"1.3.2","keywords":["pdf","html-to-pdf","pagination","paged-media","document-generation","print","pagedjs","html2pdf","browser","client-side"],"author":{"name":"EKA Care","email":"dev@eka.care"},"license":"MIT","_id":"@eka-care/pagify-sdk@1.3.2","maintainers":[{"name":"gauthamlaleka","email":"gautham.lal@eka.care"},{"name":"geethanjali.s","email":"geethanjali.s@eka.care"},{"name":"jainkuniya-eka","email":"Vishwesh.Jainkuniya@eka.care"},{"name":"vikalpsahni","email":"vikalp@eka.care"},{"name":"muhammedarshadtk","email":"muhammedarshadtk@eka.care"},{"name":"karthickeka","email":"karthick@eka.care"},{"name":"devops-orbi","email":"devops@eka.care"},{"name":"kai-dev","email":"govind.ganeriwal@eka.care"},{"name":"ekaraghunandan","email":"rags@eka.care"}],"homepage":"https://github.com/eka-care/Pagify-sdk#readme","bugs":{"url":"https://github.com/eka-care/Pagify-sdk/issues"},"dist":{"shasum":"a975f79d5bb08e35fd60545fbed364a90c2a706b","tarball":"https://registry.npmjs.org/@eka-care/pagify-sdk/-/pagify-sdk-1.3.2.tgz","fileCount":9,"integrity":"sha512-Rjh47duLuGpzfSfOyI0nXyME9LWdtL6CkHrZS9zXPjlrKFTBXgbdfn+D1jwgHzcIYFXeFiV7FV46oV/NuBT1uA==","signatures":[{"sig":"MEUCIE+b1OJMCH+b8bA5GLjsUIhIY/LKjeu5FrPuY2jDOIE6AiEA+qNCGSySf9SLEBJ/Rz3B6w9N4lRtJl/Z9xetrIazjCQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5160654},"main":"dist/pagify.js","types":"dist/pagify.d.ts","module":"dist/pagify.esm.js","engines":{"node":">=14.0.0"},"gitHead":"4c32c21212d76ac27403444886ec10b3e4b09ead","scripts":{"dev":"npm run build:dev","lint":"eslint src/**/*.js","test":"jest","build":"NODE_ENV=production rollup -c","lint:fix":"eslint src/**/*.js --fix","build:dev":"rollup -c --watch","prepublishOnly":"npm run build","build:unminified":"rollup -c"},"_npmUser":{"name":"jainkuniya-eka","email":"Vishwesh.Jainkuniya@eka.care"},"repository":{"url":"git+https://github.com/eka-care/Pagify-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"A powerful JavaScript SDK for rendering HTML content as paginated PDFs using Paged.js and html2pdf.js","directories":{"test":"test"},"_nodeVersion":"18.20.8","browserslist":["> 1%","last 2 versions","not dead"],"dependencies":{"pagedjs":"^0.4.3","html2pdf.js":"^0.10.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","rollup":"^3.25.0","typescript":"^5.1.0","@babel/core":"^7.22.0","@babel/preset-env":"^7.22.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.0","@rollup/plugin-node-resolve":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pagify-sdk_1.3.2_1758640905202_0.8632605006826393","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"@eka-care/pagify-sdk","version":"1.4.2","keywords":["pdf","html-to-pdf","pagination","paged-media","document-generation","print","pagedjs","html2pdf","browser","client-side"],"author":{"name":"EKA Care","email":"dev@eka.care"},"license":"MIT","_id":"@eka-care/pagify-sdk@1.4.2","maintainers":[{"name":"gauthamlaleka","email":"gautham.lal@eka.care"},{"name":"geethanjali.s","email":"geethanjali.s@eka.care"},{"name":"jainkuniya-eka","email":"Vishwesh.Jainkuniya@eka.care"},{"name":"vikalpsahni","email":"vikalp@eka.care"},{"name":"muhammedarshadtk","email":"muhammedarshadtk@eka.care"},{"name":"karthickeka","email":"karthick@eka.care"},{"name":"devops-orbi","email":"devops@eka.care"},{"name":"kai-dev","email":"govind.ganeriwal@eka.care"},{"name":"ekaraghunandan","email":"rags@eka.care"}],"homepage":"https://github.com/eka-care/Pagify-sdk#readme","bugs":{"url":"https://github.com/eka-care/Pagify-sdk/issues"},"dist":{"shasum":"273b520dc3da29ce96a0e5db7dd19a96878f11c7","tarball":"https://registry.npmjs.org/@eka-care/pagify-sdk/-/pagify-sdk-1.4.2.tgz","fileCount":9,"integrity":"sha512-V3AGqip/lkZYhS72B5JA6mLaT97Kc9LD0esABf3KLfl7DFFfs4Xryzc6AX1jDFk+kdf9DsF+25pugWODzvICrA==","signatures":[{"sig":"MEUCICAccXflR3625R0UJgADB9mO5aIcYMjz22ur8wwbEoRHAiEAhHlcb6hAPYYCKFYHVW8stG3xVEQ0MT3E6hCPc/lQMgQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5168777},"main":"dist/pagify.js","types":"dist/pagify.d.ts","module":"dist/pagify.esm.js","engines":{"node":">=14.0.0"},"gitHead":"3d3d6cb52300f87ad577a420f38d599687d6e8de","scripts":{"dev":"npm run build:dev","lint":"eslint src/**/*.js","test":"jest","build":"NODE_ENV=production rollup -c","lint:fix":"eslint src/**/*.js --fix","build:dev":"rollup -c --watch","prepublishOnly":"npm run build","build:unminified":"rollup -c"},"_npmUser":{"name":"jainkuniya-eka","email":"Vishwesh.Jainkuniya@eka.care"},"repository":{"url":"git+https://github.com/eka-care/Pagify-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"A powerful JavaScript SDK for rendering HTML content as paginated PDFs using Paged.js and html2pdf.js","directories":{"test":"test"},"_nodeVersion":"18.20.8","browserslist":["> 1%","last 2 versions","not dead"],"dependencies":{"pagedjs":"^0.4.3","html2pdf.js":"^0.10.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","rollup":"^3.25.0","typescript":"^5.1.0","@babel/core":"^7.22.0","@babel/preset-env":"^7.22.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.0","@rollup/plugin-node-resolve":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pagify-sdk_1.4.2_1759769202213_0.6317405252124209","host":"s3://npm-registry-packages-npm-production"}},"1.4.3":{"name":"@eka-care/pagify-sdk","version":"1.4.3","keywords":["pdf","html-to-pdf","pagination","paged-media","document-generation","print","pagedjs","html2pdf","browser","client-side"],"author":{"name":"EKA Care","email":"dev@eka.care"},"license":"MIT","_id":"@eka-care/pagify-sdk@1.4.3","maintainers":[{"name":"gauthamlaleka","email":"gautham.lal@eka.care"},{"name":"geethanjali.s","email":"geethanjali.s@eka.care"},{"name":"jainkuniya-eka","email":"Vishwesh.Jainkuniya@eka.care"},{"name":"vikalpsahni","email":"vikalp@eka.care"},{"name":"muhammedarshadtk","email":"muhammedarshadtk@eka.care"},{"name":"karthickeka","email":"karthick@eka.care"},{"name":"devops-orbi","email":"devops@eka.care"},{"name":"kai-dev","email":"govind.ganeriwal@eka.care"},{"name":"ekaraghunandan","email":"rags@eka.care"}],"homepage":"https://github.com/eka-care/Pagify-sdk#readme","bugs":{"url":"https://github.com/eka-care/Pagify-sdk/issues"},"dist":{"shasum":"0eb50cccf5fbf8a0b5cb7cad2a0fd3530e427b10","tarball":"https://registry.npmjs.org/@eka-care/pagify-sdk/-/pagify-sdk-1.4.3.tgz","fileCount":9,"integrity":"sha512-EpHPBam4GIkRr0U5tVasvZ4IjrsgIqK93AC0LcBW3Hs/fOC4RtniH7j4euAdzxwBb4AqsVg7Kua8coD+stnGDw==","signatures":[{"sig":"MEYCIQDIQ3JI7y0esibe7upPyvSEPlacNzhAzTOzKHneN/0iOgIhAMP2tl+6GI07/Xh8QQ2xx7U/lpSh2Jnoqhh2O8Xx8jXJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5170421},"main":"dist/pagify.js","types":"dist/pagify.d.ts","module":"dist/pagify.esm.js","engines":{"node":">=14.0.0"},"gitHead":"e805095cf53260bda1d1c6c91e2d7dca2ee40313","scripts":{"dev":"npm run build:dev","lint":"eslint src/**/*.js","test":"jest","build":"NODE_ENV=production rollup -c","lint:fix":"eslint src/**/*.js --fix","build:dev":"rollup -c --watch","prepublishOnly":"npm run build","build:unminified":"rollup -c"},"_npmUser":{"name":"jainkuniya-eka","email":"Vishwesh.Jainkuniya@eka.care"},"repository":{"url":"git+https://github.com/eka-care/Pagify-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"A powerful JavaScript SDK for rendering HTML content as paginated PDFs using Paged.js and html2pdf.js","directories":{"test":"test"},"_nodeVersion":"18.20.8","browserslist":["> 1%","last 2 versions","not dead"],"dependencies":{"pagedjs":"^0.4.3","html2pdf.js":"^0.10.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","rollup":"^3.25.0","typescript":"^5.1.0","@babel/core":"^7.22.0","@babel/preset-env":"^7.22.0","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.0","@rollup/plugin-node-resolve":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pagify-sdk_1.4.3_1760700876984_0.7112283570248206","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-08-13T10:00:27.849Z","modified":"2026-05-29T14:29:02.199Z","1.2.0":"2025-08-13T10:00:28.152Z","1.2.2":"2025-08-13T12:55:58.483Z","1.3.2":"2025-09-23T15:21:45.438Z","1.4.2":"2025-10-06T16:46:42.504Z","1.4.3":"2025-10-17T11:34:37.233Z"},"bugs":{"url":"https://github.com/eka-care/Pagify-sdk/issues"},"author":{"name":"EKA Care","email":"dev@eka.care"},"license":"MIT","homepage":"https://github.com/eka-care/Pagify-sdk#readme","keywords":["pdf","html-to-pdf","pagination","paged-media","document-generation","print","pagedjs","html2pdf","browser","client-side"],"repository":{"url":"git+https://github.com/eka-care/Pagify-sdk.git","type":"git"},"description":"A powerful JavaScript SDK for rendering HTML content as paginated PDFs using Paged.js and html2pdf.js","maintainers":[{"email":"sachin.jaiswal@eka.care","name":"sachinjaiswal-eka"},{"email":"savita.verma@eka.care","name":"savitaverma"},{"email":"shekhar.gupta@eka.care","name":"eka_shekhar"},{"email":"shyamjith.palakkandy@eka.care","name":"shyameka"},{"email":"geethanjali.s@eka.care","name":"geethanjali.s"},{"email":"Vishwesh.Jainkuniya@eka.care","name":"jainkuniya-eka"},{"email":"vikalp@eka.care","name":"vikalpsahni"},{"email":"muhammedarshadtk@eka.care","name":"muhammedarshadtk"},{"email":"karthick@eka.care","name":"karthickeka"},{"email":"devops@eka.care","name":"devops-orbi"},{"email":"govind.ganeriwal@eka.care","name":"kai-dev"},{"email":"rags@eka.care","name":"ekaraghunandan"}],"readme":"# Pagify SDK\n\nA powerful JavaScript SDK for rendering HTML content as paginated PDFs using Paged.js and html2pdf.js. Perfect for generating reports, invoices, documentation, and any print-ready content in the browser.\n\n## 🚀 Live Demo\n\nTry the interactive demo: **[https://eka-care.github.io/Pagify-sdk/](https://eka-care.github.io/Pagify-sdk/)**\n\n## Features\n\n- ✨ **Client-side PDF generation** - No server dependencies\n- 📄 **Professional pagination** - Powered by Paged.js\n- 🎨 **Rich styling support** - CSS @page rules, headers, footers\n- 🖼️ **Base64 image support** - Offline-compatible image handling\n- 📱 **Cross-platform** - Works on desktop and mobile browsers\n- 🔧 **Easy integration** - Simple API with TypeScript support\n- 👁️ **Preview mode** - View paginated layout without generating PDF\n- 🧹 **Automatic cleanup** - Prevents memory leaks from zombie iframes\n\n## Installation\n\n```bash\nnpm install @eka-care/pagify-sdk\n```\n\nOr via CDN:\n\n```html\n<script src=\"https://unpkg.com/@eka-care/pagify-sdk/dist/pagify.standalone.js\"></script>\n```\n\n## Quick Start\n\n### ES Modules\n\n```javascript\nimport pagify from '@eka-care/pagify-sdk';\n\n// Generate a PDF\nawait pagify.render({\n    body_html: '<h1>Hello World!</h1><p>This is my first PDF.</p>',\n    header_html: '<div>Page Header</div>',\n    footer_html: '<div>Page <span class=\"pageNumber\"></span></div>',\n    onPdfReady: (blobUrl) => {\n        // Display PDF in iframe or create download link\n        document.getElementById('pdf-viewer').src = blobUrl;\n    },\n    onPdfError: (error) => {\n        console.error('PDF generation failed:', error);\n    }\n});\n```\n\n### Browser (UMD)\n\n```html\n<script src=\"https://unpkg.com/@eka-care/pagify-sdk/dist/pagify.standalone.js\"></script>\n<script>\n    window.pagify.render({\n        body_html: '<h1>Hello World!</h1>',\n        onPdfReady: (blobUrl) => {\n            window.open(blobUrl, '_blank');\n        }\n    });\n</script>\n```\n\n### Preview Mode\n\n```javascript\n// Show preview without generating PDF (faster)\nawait pagify.render({\n    body_html: '<h1>Preview Content</h1>',\n    containerSelector: '#preview-container',\n    isViewOnlySkipMakingPDF: true,\n    onPreviewReady: (result) => {\n        if (result.success) {\n            console.log('Preview ready');\n        }\n    }\n});\n```\n\n## API Reference\n\n### `pagify.render(options)`\n\nRenders HTML content as a paginated PDF.\n\n#### Options\n\n| Parameter | Type | Default | Description |\n|-----------|------|---------|-------------|\n| `body_html` | `string` | `\"\"` | Main HTML content for the PDF body |\n| `header_html` | `string` | `\"\"` | HTML content for page headers |\n| `footer_html` | `string` | `\"\"` | HTML content for page footers |\n| `head_html` | `string` | `\"\"` | Additional HTML for the `<head>` section |\n| `page_size` | `string` | `\"A4\"` | Page size (A4, Letter, etc.) |\n| `margin_left` | `string` | `\"0mm\"` | Left page margin |\n| `margin_right` | `string` | `\"0mm\"` | Right page margin |\n| `header_height` | `string` | `\"0mm\"` | Height reserved for header |\n| `footer_height` | `string` | `\"0mm\"` | Height reserved for footer |\n| `containerSelector` | `string` | `null` | CSS selector for preview container |\n| `isViewOnlySkipMakingPDF` | `boolean` | `false` | If true, only renders preview without generating PDF |\n| `onPdfReady` | `function` | `null` | Callback when PDF is ready (receives blobUrl) |\n| `onPdfError` | `function` | `null` | Callback when PDF generation fails (receives error) |\n| `onPreviewReady` | `function` | `null` | Callback when preview completes (receives {success, error?}) |\n\n#### Example with Advanced Styling\n\n```javascript\nawait pagify.render({\n    head_html: `\n        <style>\n            @page {\n                size: A4;\n                margin: 25mm 20mm;\n            }\n            body {\n                font-family: Arial, sans-serif;\n                line-height: 1.6;\n            }\n            .page-break {\n                page-break-before: always;\n            }\n        </style>\n    `,\n    header_html: `\n        <div style=\"text-align: center; font-size: 12px;\">\n            Document Header - Page <span class=\"pageNumber\"></span>\n        </div>\n    `,\n    body_html: `\n        <h1>Professional Report</h1>\n        <p>This demonstrates advanced PDF generation capabilities.</p>\n        \n        <table>\n            <tr><th>Item</th><th>Value</th></tr>\n            <tr><td>Revenue</td><td>$100,000</td></tr>\n            <tr><td>Profit</td><td>$25,000</td></tr>\n        </table>\n        \n        <div class=\"page-break\"></div>\n        <h2>Page 2 Content</h2>\n        <p>This content appears on the second page.</p>\n    `,\n    footer_html: `\n        <div style=\"text-align: center; font-size: 10px;\">\n            © 2024 Company Name | Page <span class=\"pageNumber\"></span> of <span class=\"totalPages\"></span>\n        </div>\n    `,\n    header_height: \"15mm\",\n    footer_height: \"15mm\",\n    onPdfReady: (blobUrl) => {\n        // Create download link\n        const link = document.createElement('a');\n        link.href = blobUrl;\n        link.download = 'report.pdf';\n        link.textContent = 'Download PDF';\n        document.body.appendChild(link);\n    }\n});\n```\n\n#### Example with Preview Mode\n\n```javascript\n// Step 1: Show only preview and do not make PDF\nawait pagify.render({\n    body_html: '<h1>Invoice #12345</h1>',\n    header_html: '<div>Company Header</div>',\n    footer_html: '<div>Page <span class=\"pageNumber\"></span></div>',\n    containerSelector: '#preview-container',\n    isViewOnlySkipMakingPDF: true,\n    onPreviewReady: ({ success, error }) => {\n        if (success) {\n            // caller/invoker/application layer does their flows\n        } else {\n            console.error('Preview failed:', error);\n        }\n    }\n});\n\n\ndocument.getElementById('download-btn').onclick = async () => {\n    await pagify.render({\n        body_html: '<h1>Invoice #12345</h1>',\n        header_html: '<div>Company Header</div>',\n        footer_html: '<div>Page <span class=\"pageNumber\"></span></div>',\n        // isViewOnlySkipMakingPDF: true, --> not passing this makes the PDF and the cb to watch for is onPdfReady when this is not passed and when its passed  onPreviewReady. \n        onPdfReady: (blobUrl) => {\n            const link = document.createElement('a');\n            link.href = blobUrl;\n            link.download = 'invoice.pdf';\n            link.click();\n        }\n    });\n};\n```\n\n### `pagify.generatePDF(options)`\n\nDirect PDF generation that returns a Promise with the PDF blob.\n\n```javascript\ntry {\n    const pdfBlob = await pagify.generatePDF({\n        body_html: '<h1>Direct PDF Generation</h1>',\n        header_html: '<div>Header</div>'\n    });\n    \n    // Use the blob directly\n    const url = URL.createObjectURL(pdfBlob);\n    window.open(url, '_blank');\n} catch (error) {\n    console.error('PDF generation failed:', error);\n}\n```\n\n## CSS Styling Guide\n\n### Page Layout\n\n```css\n@page {\n    size: A4 portrait;\n    margin: 25mm 20mm;\n}\n```\n\n### Headers and Footers\n\nUse `pageNumber` and `totalPages` classes for dynamic content:\n\n```html\n<div class=\"footer\">\n    Page <span class=\"pageNumber\"></span> of <span class=\"totalPages\"></span>\n</div>\n```\n\n### Page Breaks\n\n```css\n.page-break-before { page-break-before: always; }\n.page-break-after { page-break-after: always; }\n.page-break-avoid { page-break-inside: avoid; }\n```\n\n### Base64 Images\n\nFor offline compatibility, use base64 encoded images:\n\n```html\n<img src=\"data:image/png;base64,iVBORw0KGgoAAAANS...\" alt=\"Logo\">\n```\n\n## Browser Support\n\n- Chrome 60+\n- Firefox 55+\n- Safari 12+\n- Edge 79+\n- Mobile browsers (iOS Safari, Chrome Mobile)\n\n## Dependencies\n\n- [Paged.js](https://pagedjs.org/) - CSS paged media polyfill\n- [html2pdf.js](https://github.com/eKoopmans/html2pdf.js) - HTML to PDF conversion\n\n## TypeScript Support\n\nFull TypeScript definitions included:\n\n```typescript\nimport pagify, { PagifyOptions, PagifySDK } from '@eka-care/pagify-sdk';\n\nconst options: PagifyOptions = {\n    body_html: '<h1>TypeScript Support</h1>',\n    onPdfReady: (blobUrl: string) => {\n        console.log('PDF ready:', blobUrl);\n    }\n};\n\nawait pagify.render(options);\n```\n\n## Development\n\n```bash\n# Install dependencies\nnpm install\n\n# Build the package\nnpm run build\n\n# Watch mode for development\nnpm run dev\n\n# Run linting\nnpm run lint\n\n# Run tests\nnpm test\n```\n\n## License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n## Contributing\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## Support\n\n- 📖 [Documentation](https://github.com/eka-care/pagify)\n- 🐛 [Issue Tracker](https://github.com/eka-care/pagify/issues)\n- 💬 [Discussions](https://github.com/eka-care/pagify/discussions)","readmeFilename":"README.md"}