Skip to content

feat(diary): add PDF export and print stylesheet#818

Merged
steilerDev merged 4 commits intobetafrom
feat/809-diary-pdf-export
Mar 14, 2026
Merged

feat(diary): add PDF export and print stylesheet#818
steilerDev merged 4 commits intobetafrom
feat/809-diary-pdf-export

Conversation

@steilerDev
Copy link
Owner

Summary

  • Backend: GET /api/diary-entries/export with pdfkit PDF generation
  • Cover page, table of contents, entries with metadata, photos, signatures
  • Frontend: Export dialog with date range and filter options
  • Print button on detail page with @media print stylesheet
  • EXPORT_EMPTY error code for empty filter results

Fixes #809

Test plan

  • CI Quality Gates pass
  • PDF export endpoint tested via E2E during epic-close

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

claude added 4 commits March 14, 2026 23:16
Backend:
- GET /api/diary-entries/export endpoint with date/type filtering
- pdfkit-based PDF generation with cover page, TOC, entries, photos
- Signature embedding from base64 data URLs
- 365-day range limit, EXPORT_EMPTY error for no matches

Frontend:
- Export dialog with date range, type checkboxes, photo/auto toggles
- Print button on detail page triggering @media print stylesheet
- Export button on diary list page
- Print CSS hiding navigation chrome

Fixes #809

Co-Authored-By: Claude backend-developer (Haiku) <noreply@anthropic.com>
Co-Authored-By: Claude frontend-developer (Haiku) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add missing DiaryEntrySummary import
- Handle nullable toc.title
- Handle nullable photo width/height

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@steilerDev steilerDev merged commit a7a0729 into beta Mar 14, 2026
25 of 29 checks passed
@github-actions
Copy link
Contributor

🎉 This PR is included in version 1.16.0-beta.8 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants