完整示例
创建发票文档
csharp
public void GenerateInvoice()
{
// 创建文档
using (CDocument document = new CDocument())
{
// 创建 A4 页面
CPage page = document.CreatePage(595, 842);
// 创建页面容器
CDiv container = page.CreateDiv();
container.SetPadding(40);
// 创建标题样式
CStyle titleStyle = document.CreateStyle();
titleStyle.SetFontSize(24);
titleStyle.SetFontWeight(CFontWeight.Bold);
titleStyle.SetMarginBottom(20);
titleStyle.SetTextAlignment(CTextAlignment.Center);
// 添加标题
CText title = container.CreateText("销售发票");
title.AddStyle(titleStyle);
// 添加发票信息
CDiv infoSection = container.CreateDiv();
infoSection.SetMarginBottom(20);
CParagraph invoiceNo = infoSection.CreateParagraph("发票编号: INV-2024-001");
invoiceNo.SetFontSize(12);
CParagraph date = infoSection.CreateParagraph("日期: 2024-01-15");
date.SetFontSize(12);
// 创建产品表格
CTable table = container.CreateTable(4);
table.UseAllAvailableWidth();
table.SetMarginBottom(20);
// 表头
table.StartNewHeaderRow();
table.CreateHeaderCell().CreateText("产品名称");
table.CreateHeaderCell().CreateText("数量");
table.CreateHeaderCell().CreateText("单价");
table.CreateHeaderCell().CreateText("金额");
// 表格数据
string[] products = { "产品 A", "产品 B", "产品 C" };
int[] quantities = { 2, 5, 3 };
decimal[] prices = { 100m, 50m, 75m };
for (int i = 0; i < products.Length; i++)
{
table.StartNewRow();
table.CreateCell().CreateText(products[i]);
table.CreateCell().CreateText(quantities[i].ToString());
table.CreateCell().CreateText($"¥{prices[i]}");
table.CreateCell().CreateText($"¥{quantities[i] * prices[i]}");
}
// 计算总计
decimal total = 0;
for (int i = 0; i < products.Length; i++)
{
total += quantities[i] * prices[i];
}
// 表尾 - 总计
table.StartNewFooterRow();
CCell totalLabelCell = table.CreateFooterCell(colspan: 3);
totalLabelCell.CreateText("总计");
totalLabelCell.SetTextAlignment(CTextAlignment.Right);
totalLabelCell.SetFontWeight(CFontWeight.Bold);
CCell totalAmountCell = table.CreateFooterCell();
totalAmountCell.CreateText($"¥{total}");
totalAmountCell.SetFontWeight(CFontWeight.Bold);
// 添加备注
CParagraph notes = container.CreateParagraph("备注:请在 30 天内付款。");
notes.SetFontSize(10);
notes.SetFontColor(new CColor(100, 100, 100, 255));
// 保存文档
document.SaveToFile("invoice.pdf");
}
}创建报告文档
csharp
public void GenerateReport()
{
using (CDocument document = new CDocument())
{
CPage page = document.CreatePage(595, 842);
CDiv container = page.CreateDiv();
container.SetPadding(50);
// 标题
CText title = container.CreateText("年度报告");
title.SetFontSize(28);
title.SetFontWeight(CFontWeight.Bold);
title.SetTextAlignment(CTextAlignment.Center);
// 添加章节
AddSection(container, "1. 概述",
"本报告概述了公司在过去一年的主要成就和发展方向...");
// 添加图表
CDiv chartSection = container.CreateDiv();
chartSection.SetMarginTop(20);
chartSection.SetMarginBottom(20);
CText chartTitle = chartSection.CreateText("2. 销售数据");
chartTitle.SetFontSize(18);
chartTitle.SetFontWeight(CFontWeight.Bold);
CImage chart = chartSection.CreateImage("path/to/chart.png");
chart.SetWidth(400);
chart.SetHeight(300);
chart.SetHorizontalAlignment(CHorizontalAlignment.Center);
// 添加关键指标列表
CText metricsTitle = container.CreateText("3. 关键指标");
metricsTitle.SetFontSize(18);
metricsTitle.SetFontWeight(CFontWeight.Bold);
CList metricsList = container.CreateList();
metricsList.SetListSymbol(CListSymbolType.Disc);
metricsList.CreateListItem("年度收入增长: 25%");
metricsList.CreateListItem("客户满意度: 92%");
metricsList.CreateListItem("市场份额提升: 3%");
document.SaveToFile("report.pdf");
}
}
private void AddSection(CDiv container, string heading, string content)
{
CParagraph headingPara = container.CreateParagraph(heading);
headingPara.SetFontSize(18);
headingPara.SetFontWeight(CFontWeight.Bold);
headingPara.SetMarginTop(20);
headingPara.SetMarginBottom(10);
CParagraph contentPara = container.CreateParagraph(content);
contentPara.SetFontSize(12);
contentPara.SetTextAlignment(CTextAlignment.Justify);
contentPara.SetMultipliedLeading(1.5f);
}