Skip to content
DemoAPI 参考文档FAQ

PDF 生成模板编辑器

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

查看 GitHub
React Native Guides Pdf standard conversion

PDF 标准识别与转换 ​

转换前完成文档加载,准备与源文件不同、父目录已存在且可写的输出路径。

读取和转换 ​

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

async function convertStandard(reader: CPDFReaderView, outputPath: string) {
  const document = reader._pdfDocument;
  const currentType = await document.getPdfStandardType();
  if (!await reader.save()) throw new Error('保存文档失败');
  const success = await document.convertToPdfStandard(
    outputPath, 'pdf_a_2b', true,
  );
  if (!success) throw new Error('PDF 标准转换失败');
  return { currentType, outputPath };
}

getPdfStandardType() 读取文档声明的标准,不是完整的合规校验。convertToPdfStandard(outputPath, type, fontSubset) 返回 boolean;fontSubset 默认为 true,用于保存时的字体子集处理。

转换目标 ​

标准type
PDF/A-1pdf_a_1a、pdf_a_1b
PDF/A-2pdf_a_2a、pdf_a_2u、pdf_a_2b
PDF/A-3pdf_a_3a、pdf_a_3u、pdf_a_3b
PDF/Xpdf_x_1a、pdf_x_3、pdf_x_4
PDF/Epdf_e_1
PDF/UApdf_ua_1
PDF/VTpdf_vt_1、pdf_vt_2

保存和结果处理 ​

  • 先保存待转换内容。Android 从已保存的源文件执行转换,未保存的编辑不会包含在输出中;iOS 使用当前文档的内存副本。
  • 转换加密文件前,使用 saveAs(path, true, true) 输出无密码副本,并打开该副本后转换。应先具备相应文档权限。
  • 输出路径不能与源文件相同。Android 也支持具有写入权限的目标 content:// URI。
  • 转换不会自动打开输出文件。成功后可调用 document.open(outputPath),再读取类型或检查输出。
  • 参数、加密状态或保存失败可能导致返回 false 或 Promise 拒绝。只有确认成功后,才继续使用输出文件。