在开发过程中,我们会遇到图像的处理及转换,包括将图像转为PDF,下面代码可实现,将image.PixelMap对象转为PDF

export function pixelMapObjToPdf(pixelMap: image.PixelMap,  pdfPath: string): boolean {
  let context = getContext() as common.UIAbilityContext;
  let dir: string = context.tempDir
  let pngPath: string = dir + "/temp.png";
  pixelMapSaveToSandBoxFile(pixelMap,pngPath); // 可参考 https://developer.huawei.com/consumer/cn/blog/topic/03190538585433120
  // 创建 PDF 文档对象
  const pdfDoc = new pdfService.PdfDocument();
  // 创建PDF页面(匹配图片尺寸)
  pdfDoc.createDocument( pixelMap.getImageInfoSync().size.width, pixelMap.getImageInfoSync().size.height)
  pdfDoc.insertBlankPage(0, pixelMap.getImageInfoSync().size.width, pixelMap.getImageInfoSync().size.height);
  // 创建一页 PDF(宽高同 PNG 图像)
  const page = pdfDoc.getPage(0);
  page.addImageObject(pngPath, 0, 0, page.getWidth(), page.getHeight());
  const result: boolean = pdfDoc.saveDocument(pdfPath);
  pdfDoc.releaseDocument();
  return result;
}

调用代码示例

pixelMapObjToPdf(this.pixelMap,pdfPath)