Skip to content
DemoAPI 参考文档FAQ

PDF 生成模板编辑器

开源可视化 PDF 生成引擎,支持自定义模板,并提供面向开发者的 API,灵活构建文档生成流程。

查看 GitHub
React Native Guides Bates number

贝茨码 ​

贝茨码用于为法律、审计等批量文档添加连续编号。ComPDF React Native SDK 自 3.2.0 起支持读取、设置和清除贝茨码,并可配置前缀、位数、位置和文本样式。

设置贝茨码 ​

以下示例接收已完成文档加载的阅读器,为第一页添加带前缀的五位编号。

ts
import { CPDFReaderView } from '@compdfkit_pdf_sdk/react_native';

async function setBates(reader: CPDFReaderView) {
  const success = await reader._pdfDocument.updateBates({
    pages: [0],
    margin: { left: 24, top: 24, right: 24, bottom: 24 },
    pageOffset: 0,
    rule: 'v2',
    slots: [{ position: 'footer_right', text: 'CASE-<<#5#1#>>',
      fontName: 'Helvetica', fontSize: 12, textColor: '#000000' }],
  });
  if (!success) throw new Error('更新贝茨码失败');
  if (!await reader.save()) throw new Error('保存文档失败');
}

<<#5#1#>> 表示五位编号、从 1 开始,例如 CASE-00001。pages 使用从 0 开始的页面索引,边距和字号以 PDF 点计。位置与页眉页脚相同。

updateBates() 替换完整配置,修改时需保留仍使用的位置。跨平台示例使用 pageOffset: 0 和 rule: 'v2';iOS 不应用这两个参数的自定义值,Android 可配置页码偏移和 v1、v2 规则。

读取和清除 ​

ts
import { CPDFReaderView } from '@compdfkit_pdf_sdk/react_native';

async function clearBates(reader: CPDFReaderView) {
  const document = reader._pdfDocument;
  const current = await document.getBates();
  if (current === null) return;
  if (!await document.clearBates()) throw new Error('清除贝茨码失败');
  if (!await reader.save()) throw new Error('保存文档失败');
}

没有贝茨码时,getBates() 返回 null。clearBates() 清除文档中的贝茨码。应用应处理 false 和 Promise 拒绝两类失败结果。