slickgrid-universal icon indicating copy to clipboard operation
slickgrid-universal copied to clipboard

feat(export): add new optional PDF Export package

Open ghiscoding opened this issue 1 month ago • 2 comments

vibe coding with copilot to add PDF Export as an optional package/resource.

At first I tried to tinypdf (first commit) but unfortunately it didn't support unicode/emoji and even with simple char like the Euro symbol (unicode). So I later migrated to jsPDF and that is a bigger library but it works with unicode/emojis so let's use that and it's quite popular (5 millions dl/week)

TODOs

  • [x] working demo (Example02, and Example03)
    • [ ] add demo to all frameworks as well
    • [ ] need example with colspan/rowspan
  • [x] should work with unicode/emoji
  • [x] add unit tests
  • [x] add docs
  • [x] add to Grid Menu when enabled
  • [x] add to Context Menu when enabled
  • [ ] groupCollapsedSymbol and expand aren't implemented yet
  • [ ] add docs note about data not always visible in export
  • [ ] what about groupingAggregatorRowText?
  • [ ] do we need didDrawPage callback?
image

ghiscoding avatar Jan 15 '26 20:01 ghiscoding

Codecov Report

:white_check_mark: All modified and coverable lines are covered by tests. :white_check_mark: Project coverage is 100.0%. Comparing base (1046d2f) to head (5620e2e). :warning: Report is 12 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff            @@
##           master    #2317    +/-   ##
========================================
  Coverage   100.0%   100.0%            
========================================
  Files         198      200     +2     
  Lines       18215    18522   +307     
  Branches     5008     5111   +103     
========================================
+ Hits        18215    18522   +307     
Flag Coverage Δ
angular 100.0% <ø> (ø)
universal 100.0% <100.0%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

:rocket: New features to boost your workflow:
  • :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • :package: JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

codecov[bot] avatar Jan 15 '26 20:01 codecov[bot]

angular-slickgrid

npm i https://pkg.pr.new/ghiscoding/slickgrid-universal/angular-slickgrid@2317
aurelia-slickgrid

npm i https://pkg.pr.new/ghiscoding/slickgrid-universal/aurelia-slickgrid@2317
slickgrid-react

npm i https://pkg.pr.new/ghiscoding/slickgrid-universal/slickgrid-react@2317
slickgrid-vue

npm i https://pkg.pr.new/ghiscoding/slickgrid-universal/slickgrid-vue@2317
@slickgrid-universal/binding

npm i https://pkg.pr.new/ghiscoding/slickgrid-universal/@slickgrid-universal/binding@2317
@slickgrid-universal/common

npm i https://pkg.pr.new/ghiscoding/slickgrid-universal/@slickgrid-universal/common@2317
@slickgrid-universal/composite-editor-component

npm i https://pkg.pr.new/ghiscoding/slickgrid-universal/@slickgrid-universal/composite-editor-component@2317
@slickgrid-universal/custom-footer-component

npm i https://pkg.pr.new/ghiscoding/slickgrid-universal/@slickgrid-universal/custom-footer-component@2317
@slickgrid-universal/custom-tooltip-plugin

npm i https://pkg.pr.new/ghiscoding/slickgrid-universal/@slickgrid-universal/custom-tooltip-plugin@2317
@slickgrid-universal/empty-warning-component

npm i https://pkg.pr.new/ghiscoding/slickgrid-universal/@slickgrid-universal/empty-warning-component@2317
@slickgrid-universal/event-pub-sub

npm i https://pkg.pr.new/ghiscoding/slickgrid-universal/@slickgrid-universal/event-pub-sub@2317
@slickgrid-universal/excel-export

npm i https://pkg.pr.new/ghiscoding/slickgrid-universal/@slickgrid-universal/excel-export@2317
@slickgrid-universal/graphql

npm i https://pkg.pr.new/ghiscoding/slickgrid-universal/@slickgrid-universal/graphql@2317
@slickgrid-universal/odata

npm i https://pkg.pr.new/ghiscoding/slickgrid-universal/@slickgrid-universal/odata@2317
@slickgrid-universal/pagination-component

npm i https://pkg.pr.new/ghiscoding/slickgrid-universal/@slickgrid-universal/pagination-component@2317
@slickgrid-universal/pdf-export

npm i https://pkg.pr.new/ghiscoding/slickgrid-universal/@slickgrid-universal/pdf-export@2317
@slickgrid-universal/row-detail-view-plugin

npm i https://pkg.pr.new/ghiscoding/slickgrid-universal/@slickgrid-universal/row-detail-view-plugin@2317
@slickgrid-universal/rxjs-observable

npm i https://pkg.pr.new/ghiscoding/slickgrid-universal/@slickgrid-universal/rxjs-observable@2317
@slickgrid-universal/text-export

npm i https://pkg.pr.new/ghiscoding/slickgrid-universal/@slickgrid-universal/text-export@2317
@slickgrid-universal/utils

npm i https://pkg.pr.new/ghiscoding/slickgrid-universal/@slickgrid-universal/utils@2317
@slickgrid-universal/vanilla-bundle

npm i https://pkg.pr.new/ghiscoding/slickgrid-universal/@slickgrid-universal/vanilla-bundle@2317
@slickgrid-universal/vanilla-force-bundle

npm i https://pkg.pr.new/ghiscoding/slickgrid-universal/@slickgrid-universal/vanilla-force-bundle@2317

commit: 5620e2e

pkg-pr-new[bot] avatar Jan 15 '26 20:01 pkg-pr-new[bot]

🎉 This pull request is included in version 9.13.0 📦
🔗 The release notes are available at: GitHub Release 🚀

github-actions[bot] avatar Jan 30 '26 21:01 github-actions[bot]