页眉页脚
福昕 PDF SDK 安卓版通过 Core SDK 提供了完整的页眉页脚 API,支持为 PDF 文档添加、更新和删除页眉页脚,内容可包含日期、页码和自定义文本。
核心类
| 类 | 说明 |
|---|---|
HeaderFooter | 页眉页脚对象,包含字体、颜色、页码范围、页边距、内容等全部属性 |
HeaderFooterContent | 六个位置的文本内容(页眉左/中/右、页脚左/中/右) |
HeaderFooterContentGenerator | 内容生成器,支持按格式插入日期、页码及自定义文本 |
PageNumberRange | 页码范围,指定起止页和筛选条件 |
通过 PDFDoc 的 addHeaderFooter()、updateHeaderFooter()、getEditableHeaderFooter()、removeAllHeaderFooters() 和 hasHeaderFooter() 方法管理页眉页脚。
使用 ContentGenerator 生成内容
HeaderFooterContentGenerator 可按预定义格式生成日期和页码字符串,避免手动拼接格式标记:
java
HeaderFooterContentGenerator generator = new HeaderFooterContentGenerator();
generator.addDate(HeaderFooterContentGenerator.e_DateFormatYYYYHyphenMMHyphenDD);
generator.addString(" - Page ");
generator.addPageNumber(HeaderFooterContentGenerator.e_PageNumberFormatDefault);
String result = generator.generateContent();
日期格式常量(部分)
| 常量 | 格式 |
|---|---|
e_DateFormatMSlashD | M/D |
e_DateFormatMMSlashDDSlashYYYY | MM/DD/YYYY |
e_DateFormatYYYYHyphenMMHyphenDD | YYYY-MM-DD |
e_DateFormatDDDotMMDotYYYY | DD.MM.YYYY |
备注
SDK 共提供 21 种日期格式常量,覆盖常见的国际日期格式。完整列表请参阅 API 手册。
页码格式常量
| 常量 | 输出示例 |
|---|---|
e_PageNumberFormatDefault | 1 |
e_PageNumberFormatNumberOfCount | 1 of 10 |
e_PageNumberFormatNumberSlashCount | 1/10 |
e_PageNumberFormatPageNumber | Page 1 |
e_PageNumberFormatPageNumberOfCount | Page 1 of 10 |
完整示例
java
PDFDoc doc = new PDFDoc(filePath);
doc.load(null);
// 生成页脚居中内容:页码
HeaderFooterContentGenerator pageNumGen = new HeaderFooterContentGenerator();
pageNumGen.addString("- ");
pageNumGen.addPageNumber(HeaderFooterContentGenerator.e_PageNumberFormatDefault);
pageNumGen.addString(" -");
String footerCenter = pageNumGen.generateContent();
// 生成页眉右侧内容:日期
HeaderFooterContentGenerator dateGen = new HeaderFooterContentGenerator();
dateGen.addDate(HeaderFooterContentGenerator.e_DateFormatYYYYHyphenMMHyphenDD);
String headerRight = dateGen.generateContent();
// 设置内容
HeaderFooterContent content = new HeaderFooterContent();
content.setHeader_left_content("Foxit PDF SDK");
content.setHeader_right_content(headerRight);
content.setFooter_center_content(footerCenter);
// 设置页码范围
PageNumberRange pageRange = new PageNumberRange();
pageRange.setStart_number(0);
pageRange.setEnd_number(doc.getPageCount() - 1);
pageRange.setFilter(0);
// 创建 HeaderFooter 对象
HeaderFooter headerFooter = new HeaderFooter();
headerFooter.setFont(new Font(Font.e_StdIDHelvetica));
headerFooter.setText_size(10.0f);
headerFooter.setText_color(0x000000);
headerFooter.setPage_range(pageRange);
headerFooter.setPage_margin(new RectF(72, 36, 72, 36));
headerFooter.setStart_page_number(1);
headerFooter.setContent(content);
headerFooter.setIs_to_embed_font(true);
// 添加到文档
doc.addHeaderFooter(headerFooter);
doc.saveAs(outputPath, PDFDoc.e_SaveFlagNormal);
API 参考
HeaderFooter、HeaderFooterContent、HeaderFooterContentGenerator 的完整接口说明请参阅 API 手册。