Product Catalogue Sample
Overview
The Product Catalogue sample demonstrates:
- Product grid layouts — multiple columns with product cards
- Product images — embedding and sizing images
- Pricing information — product costs and discounts
- Availability status — stock and inventory display
- Multi-page catalogs — automatic pagination
- Category organization — structured product grouping
Key Features Demonstrated
1. Product Card Layout
col.Item().Row(row =>
{
void ProductCard(string name, string image, string price, string status) =>
row.RelativeItem().Margin(8).Border(1, Color.Grey.Lighten2)
.Padding(10).Column(p =>
{
if (File.Exists(image))
p.Item().Image(image, 100).AlignCenter();
p.Item().PaddingTop(6).Text(name)
.Bold().FontSize(11).FontColor(brand);
p.Item().PaddingTop(4).Text(price)
.FontSize(10).FontColor(accent);
p.Item().PaddingTop(2).AlignCenter()
.Background(status == "In Stock" ? green : red)
.Padding(4)
.Text(status).FontSize(8).FontColor(Color.White);
});
ProductCard("Product A", "image1.jpg", "$99.99", "In Stock");
ProductCard("Product B", "image2.jpg", "$149.99", "In Stock");
ProductCard("Product C", "image3.jpg", "$79.99", "Out of Stock");
});
2. Product Category Section
col.Item().Text("ELECTRONICS").Bold().FontSize(14)
.FontColor(primary).MarginBottom(8);
col.Item().Row(row =>
{
// Product cards for electronics category
});
col.Item().PaddingTop(12).Text("HOME & GARDEN").Bold().FontSize(14)
.FontColor(primary).MarginBottom(8);
col.Item().Row(row =>
{
// Product cards for home & garden category
});
3. Product Details Table
col.Item().Table(table =>
{
table.ColumnsDefinition(c =>
{
c.RelativeColumn(2); // Product name
c.RelativeColumn(1); // SKU
c.RelativeColumn(1); // Price
c.RelativeColumn(1); // Stock
});
table.HeaderRow(row =>
{
row.Cell().Background(primary).Padding(6)
.Text("Product").Bold().FontColor(Color.White);
row.Cell().Background(primary).Padding(6)
.Text("SKU").Bold().FontColor(Color.White);
row.Cell().Background(primary).Padding(6)
.Text("Price").Bold().FontColor(Color.White);
row.Cell().Background(primary).Padding(6)
.Text("Stock").Bold().FontColor(Color.White);
});
var products = new[]
{
("Premium Headphones", "HP-001", "$199.99", "12"),
("Wireless Mouse", "WM-002", "$49.99", "45"),
("USB-C Hub", "HUB-003", "$79.99", "8"),
// ... more products ...
};
foreach (var (name, sku, price, stock) in products)
{
table.Row(row =>
{
row.Cell().Padding(6).Text(name);
row.Cell().Padding(6).AlignCenter().Text(sku).FontSize(9);
row.Cell().Padding(6).AlignRight().Text(price);
row.Cell().Padding(6).AlignCenter().Text(stock);
});
}
});
4. Index/Catalog Cover
doc.Page(page =>
{
page.Size(PageSize.A4);
page.Margin(40);
page.PageColor(Color.White);
page.Content().Column(col =>
{
col.Spacing(20);
col.Item().AlignCenter().PaddingTop(40)
.Text("PRODUCT CATALOGUE 2025")
.Bold().FontSize(32).FontColor(brand);
col.Item().AlignCenter()
.Text("Complete Product Lineup")
.FontSize(16).FontColor(accent);
col.Item().AlignCenter().PaddingTop(60)
.Text("Over 500 products available")
.FontSize(12).FontColor(muted);
col.Item().AlignCenter()
.Text("Fast shipping • Quality guaranteed • Expert support")
.FontSize(10).FontColor(muted);
});
});
Product Catalogue Structure
Typical structure:
- Cover Page — Title, branding, overview
- Table of Contents — Category listing
- Category Pages — Organized product sections
- Product Details — Images, descriptions, pricing
- Order Information — Shipping, payment, contact
- Index — SKU index for reference
Layout Options
Grid Layout (Card-Based)
[Image] [Image] [Image]
Product Product Product
$99.99 $149.99 $79.99
List Layout (Table-Based)
Product Name SKU Price Stock
Premium Headphones HP-001 $199 12
Wireless Mouse WM-002 $49 45
Mixed Layout
Category title and description
[Card] [Card] [Card]
Detailed product specifications table
Use Cases
Perfect for:
- E-commerce catalogs — online store PDFs
- B2B product lists — wholesale catalogs
- Retail brochures — in-store materials
- Inventory management — stock tracking
- Price lists — cost sheets
- Training materials — product knowledge
What You'll Learn
- Product cards — card-based layout
- Image integration — product photography
- Pricing display — cost formatting
- Status indicators — availability badges
- Multi-page layout — automatic pagination
- Table structures — detailed product data
- Category organization — logical grouping
File Output
Generates: 06_product_catalogue.pdf
Creates a professional product catalogue suitable for e-commerce, retail, or B2B distribution.