Commit graph

11 commits

Author SHA1 Message Date
8036a46146 🔧 ADD: ZIG_VERSION_NOTES.md - Referencia sistema notas versiones Zig
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 23:01:16 +01:00
a7cd3894da docs: Update CLAUDE.md with correct repo URL and TEAM_STANDARDS references
- Updated repository URL to include port 2222
- Added Forgejo web URL
- Added references to docs/ folder documentation
- Added TEAM_STANDARDS section with key files
- Updated Git section to reflect completed rename (zpdf → zcatpdf)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 02:34:19 +01:00
9ae8758ed8 docs: Update CLAUDE.md with comprehensive context for new conversations
Prepares documentation for directory rename (zpdf → zcatpdf):
- Complete project overview and feature status
- Documentation references (README.md, FUTURE_IMPROVEMENTS.md)
- Architecture diagram and usage examples
- Git instructions including post-rename steps
- zcat* family ecosystem information

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 02:15:44 +01:00
f09922076f refactor: Rename zpdf to zcatpdf for consistency with zcat* family
- Renamed all references from zpdf to zcatpdf
- Module import: @import("zcatpdf")
- Consistent with zcatui, zcatgui naming convention
- All lowercase per Zig standards

Note: Directory rename (zpdf -> zcatpdf) and Forgejo repo rename
should be done manually after this commit.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 02:10:57 +01:00
3826cbaed4 Release v1.0 - Feature Complete PDF Generation Library
Major features added since v0.5:
- PNG support with alpha/transparency (soft masks)
- FlateDecode compression via libdeflate-zig
- Bookmarks/Outline for document navigation
- Bezier curves, circles, ellipses, arcs
- Transformations (rotate, scale, translate, skew)
- Transparency/opacity (fill and stroke alpha)
- Linear and radial gradients (Shading Patterns)
- Code128 (1D) and QR Code (2D) barcodes
- TrueType font parsing (metrics, glyph widths)
- RC4 encryption module (40/128-bit)
- AcroForms module (TextField, CheckBox)
- SVG import (basic shapes and paths)
- Template system (reusable layouts)
- Markdown styling (bold, italic, links, headings, lists)

Documentation:
- README.md: Complete API reference with code examples
- FUTURE_IMPROVEMENTS.md: Detailed roadmap for future development
- CLAUDE.md: Updated to v1.0 release status

Stats:
- 125+ unit tests passing
- 16 demo examples
- 46 source files

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 02:01:17 +01:00
1838594104 feat: v0.5 - Clickable link annotations (Feature Complete)
Phase 5 Implementation:
- Link annotations in PDF (clickable in viewers)
- Page.addUrlLink() - add URL annotation
- Page.addInternalLink() - add internal page link
- Page.urlLink() / writeUrlLink() - visual + annotation combined
- Page.getLinks() - retrieve page links
- OutputProducer generates /Annots arrays for pages
- Link annotation objects with /Type /Annot /Subtype /Link

New example:
- links_demo.zig - demonstrates URL and internal links
  - 2 pages with cross-page navigation
  - External URLs (example.com, GitHub, mailto)
  - Internal links between pages

Final state:
- 7 examples working (hello, invoice, text_demo, image_demo,
  table_demo, pagination_demo, links_demo)
- ~70 tests passing
- Complete feature set for document generation

zpdf is now feature-complete for typical document generation needs:
text, tables, images, pagination, and clickable links.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-08 20:53:33 +01:00
236cf7f328 feat: v0.4 - Utilities (Table, Pagination, Headers/Footers, Links)
Phase 4 Implementation:
- Table helper (src/table.zig):
  - Table.init() with TableOptions (col_widths, colors, fonts)
  - header(), row(), rowStyled(), footer() methods
  - setColumnAlign() for per-column alignment
  - separator() and space() utilities

- Pagination module (src/pagination.zig):
  - Pagination.addPageNumbers() with {PAGE}/{PAGES} format
  - addHeader() with optional separator line
  - addFooter() and addFooterWithLine()
  - Position enum (bottom_left, bottom_center, etc.)

- Links visual styling (src/links.zig, src/page.zig):
  - PageLinks struct for link storage
  - Page.drawLink() - blue underlined text
  - Page.writeLink() - link at current position

- Examples:
  - table_demo.zig - 3 table styles (product, invoice, employee)
  - pagination_demo.zig - 5 pages with headers/footers/numbers

~70 tests passing, 6 examples working.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-08 20:45:33 +01:00
f9189253d7 feat: v0.3 - Image support (JPEG embedding)
Phase 3 - Images:
- JPEG parser with direct DCT passthrough (no re-encoding)
- PNG metadata extraction (full embedding pending)
- Page.image() for drawing images at position
- Page.imageFit() for auto-scaling with aspect ratio
- Pdf.addJpegImage() / addJpegImageFromFile()
- XObject generation in OutputProducer

New modules:
- src/images/mod.zig - Image module exports
- src/images/image_info.zig - ImageInfo struct
- src/images/jpeg.zig - JPEG parser
- src/images/png.zig - PNG metadata parser

New example:
- examples/image_demo.zig - Image embedding demo

Stats:
- 66 unit tests passing
- 4 working examples

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-08 20:00:56 +01:00
2996289953 feat: v0.2 - Complete text system (cell, multiCell, alignment)
Phase 1 - Refactoring:
- Modular architecture: fonts/, graphics/, objects/, output/
- Fixed Zig 0.15 API changes (ArrayListUnmanaged)
- Fixed memory issues in render()

Phase 2 - Text System:
- cell() with borders, fill, alignment
- cellAdvanced() with position control
- multiCell() with automatic word wrap
- ln() for line breaks
- getStringWidth() for text width calculation
- Page margins (setMargins, setCellMargin)
- Align enum (left, center, right)
- Border packed struct

New features:
- New Pdf API (cleaner than legacy Document)
- Document metadata (setTitle, setAuthor, setSubject)
- Color: RGB, CMYK, Grayscale support
- 52 unit tests passing
- New example: text_demo.zig

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-08 19:46:30 +01:00
59c155331f docs: Update CLAUDE.md with complete project documentation
- Full API documentation with examples
- Roadmap phases 1-5
- Architecture details
- Zig 0.15 compatibility notes
- Related projects table
- Next session tasks

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-08 17:36:13 +01:00
0e17e8790b Initial commit: zpdf - PDF generation library for Zig
- Pure Zig implementation, zero dependencies
- PDF 1.4 format output
- Standard Type1 fonts (Helvetica, Times, Courier)
- Text rendering with colors
- Graphics primitives (lines, rectangles)
- Hello world and invoice examples

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-08 16:55:28 +01:00