{"id":49827292,"url":"https://github.com/YaseenAlMufti/ngx-document-signer","last_synced_at":"2026-05-15T20:01:12.143Z","repository":{"id":355906379,"uuid":"1229462177","full_name":"YaseenAlMufti/ngx-document-signer","owner":"YaseenAlMufti","description":"Angular Document Signer and Creator Components","archived":false,"fork":false,"pushed_at":"2026-05-15T16:53:10.000Z","size":904,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-05-15T19:43:16.777Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/YaseenAlMufti.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"yaseenalmufti","custom":["https://github.com/sponsors/yaseenalmufti"]}},"created_at":"2026-05-05T04:18:46.000Z","updated_at":"2026-05-15T16:53:14.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/YaseenAlMufti/ngx-document-signer","commit_stats":null,"previous_names":["yaseenalmufti/ngx-document-signer"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/YaseenAlMufti/ngx-document-signer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YaseenAlMufti%2Fngx-document-signer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YaseenAlMufti%2Fngx-document-signer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YaseenAlMufti%2Fngx-document-signer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YaseenAlMufti%2Fngx-document-signer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/YaseenAlMufti","download_url":"https://codeload.github.com/YaseenAlMufti/ngx-document-signer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YaseenAlMufti%2Fngx-document-signer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33077917,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-15T11:35:32.926Z","status":"ssl_error","status_checked_at":"2026-05-15T11:35:31.362Z","response_time":103,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-13T18:00:54.897Z","updated_at":"2026-05-15T20:01:12.137Z","avatar_url":"https://github.com/YaseenAlMufti.png","language":"TypeScript","funding_links":["https://github.com/sponsors/yaseenalmufti"],"categories":["Third Party Components"],"sub_categories":["PDF"],"readme":"# Document Signer\n\nAngular workspace for `ngx-document-signer`, a reusable package that provides a PDF form creator and PDF signer.\n\n## Features\n\n- Preview PDFs from a file picker, URL, `Blob`, `ArrayBuffer`, or `Uint8Array`.\n- Navigate pages and control zoom while preserving field state.\n- Add text, date, and signature fields to new or existing PDF forms.\n- Delete generated or existing PDF form fields from the creator UI.\n- Sign PDFs with typed text fields, date fields, and drawn or typed signatures.\n- Open a mobile-friendly signature popup with draw, type, accept, and clear controls.\n- Save or download the updated PDF as bytes for upload by the host application.\n- Customize toolbar buttons, labels, CSS classes, visibility, and common actions.\n- Call public component methods such as `browse()`, `load()`, `save()`, and `download()` programmatically.\n- Choose full flattening or partial flattening for only completed fields on save.\n\n## Build\n\n```bash\nnpm install\nnpm run build\n```\n\nThe library builds into `dist/ngx-document-signer`.\n\n## Demo\n\nThe demo app can be built locally:\n\n```bash\nnpm run build:demo\n```\n\nThe public hosted demo is available at https://ngx-document-signer.web.app.\n\n## Package API\n\nImport the standalone components from `ngx-document-signer`:\n\n```ts\nimport { PdfCreatorComponent, PdfSignerComponent } from 'ngx-document-signer';\n```\n\nCreator:\n\n```html\n\u003cnds-pdf-creator (saved)=\"uploadCreatedPdf($event.bytes)\"\u003e\u003c/nds-pdf-creator\u003e\n```\n\nThe creator can place text, date, and signature boxes. Date boxes are saved as PDF text fields with an `nds_date_` prefix so the signer can show a Today button.\n\nDate boxes render as native `input type=\"date\"` controls on the signer. They keep the browser's `YYYY-MM-DD` value internally, but the saved PDF defaults to US-style `MM/DD/YYYY`; generated date fields are borderless in the final PDF.\n\nSigner:\n\n```html\n\u003cnds-pdf-signer [source]=\"createdPdfUrlOrBytes\" (completed)=\"uploadSignedPdf($event.bytes)\"\u003e\u003c/nds-pdf-signer\u003e\n```\n\n`source` accepts an href, `Blob`, `ArrayBuffer`, or `Uint8Array`.\n\nSigner saves flatten the whole form by default. Set `[partialFlattenOnSave]=\"true\"` to flatten only fields that have signer-provided values, leaving empty fields editable.\n\n## Angular release lines\n\nThis package is intended to publish two npm major lines from the same source:\n\n- `ngx-document-signer@1.x` for Angular 14, 15, and 16.\n- `ngx-document-signer@2.x` for Angular 17+.\n\nUse `npm run profile:ng14` or `npm run profile:ng17` before installing dependencies and building a release. See `docs/angular-versioning.md` for the full workflow.\n\n## License and support\n\nThis project is released under the MIT License. Packages and redistributed copies must keep the copyright and license notice, which gives credit to Yaseen Al Mufti.\n\nDonation link: https://github.com/sponsors/yaseenalmufti\n\n## PDF.js worker\n\nBy default, `ngx-document-signer` loads the matching PDF.js worker from the unpkg CDN when you do not pass `workerSrc`:\n\n```text\nhttps://unpkg.com/pdfjs-dist@\u003cpdfjs-version\u003e/build/pdf.worker.min.mjs\n```\n\nThis keeps the package working in Angular projects where bundlers do not rewrite PDF.js worker imports correctly, including older Angular builds. It does mean the browser may fetch the worker from a third-party CDN at runtime.\n\nIf your project has CSP restrictions, offline requirements, private-network requirements, compliance review, or a policy against third-party runtime assets, host the worker yourself and pass a browser-accessible URL:\n\n```html\n\u003cnds-pdf-creator [workerSrc]=\"'assets/pdfjs/pdf.worker.min.mjs'\"\u003e\u003c/nds-pdf-creator\u003e\n\n\u003cnds-pdf-signer\n  [source]=\"pdfSource\"\n  [workerSrc]=\"'assets/pdfjs/pdf.worker.min.mjs'\"\u003e\n\u003c/nds-pdf-signer\u003e\n```\n\nFor Angular CLI apps, one common approach is to copy `node_modules/pdfjs-dist/build/pdf.worker.min.mjs` into your app assets during the build and point `workerSrc` at that served asset.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FYaseenAlMufti%2Fngx-document-signer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FYaseenAlMufti%2Fngx-document-signer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FYaseenAlMufti%2Fngx-document-signer/lists"}