鴻蒙圖片轉PDF

一、學習筆記

HarmonyOS NEXT API 12


二、實例代碼

將 base64 格式的圖片,轉為PDF

  /**
   * @param mOutputPdfFileName 保存的路徑;例如:getContext().cacheDir +"/"+fileName
   * @param base64Str  base64格式的圖片
   */
  async picConvertPDF(mOutputPdfFileName: string, base64Str: string) {

    let filePath = await base64ImgConvertFilePath(getContext(), base64Str)
    if (filePath == undefined) {
      throw new Error('PDF轉換失敗')
      return
    }

    let pixMap = await uriOrPathConvertPixelMap(filePath)
    if (pixMap == undefined) {
      throw new Error('PDF轉換失敗')
      return
    }
    let imageInfo = await pixMap.getImageInfo()
    let pdfDocument = new pdfService.PdfDocument()
    // 一英寸等于72Points,A4紙的尺寸描述為210 x 297毫米 (8.27 x 11.69英寸)
    let documentWidth = 72 * 8.27
    let documentHeigh = 72 * 11.6
    let createResult = pdfDocument.createDocument(documentWidth, documentHeigh)
    if (createResult) { // 是否成功創建文檔
      let pdfPage: pdfService.PdfPage = pdfDocument.getPage(0);
      // pxConvertInch() 像素轉英寸;
      let imageWidthIn = WindowUtils.pxConvertInch(imageInfo.size.width) * 72
      let imageHeightIn = WindowUtils.pxConvertInch(imageInfo.size.height) * 72
      // 寬度拉滿時,縮放的倍數
      let ratio = documentWidth / imageWidthIn

      pdfPage.addImageObject(
        filePath,
        (documentWidth - imageWidthIn * ratio ) / 2,   // 為了圖片居中
        (documentHeigh - imageHeightIn * ratio) / 2,  // 為了圖片居中
        imageWidthIn * ratio, 
        imageHeightIn * ratio
      )
      pdfDocument.saveDocument(mOutputPdfFileName)
    } else {
      throw new Error('PDF 創建失敗')
      return
    }
  }
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 背景 年前的時候,開發一個電子雜志項目,功能需求是通過上傳pdf文件,將其轉為圖片格式,所以雜志的內容其實就是一張...
    程序員Winn閱讀 10,790評論 25 24
  • 圖片優化技巧 前言:對于大多數前端工程師來說,圖片就是UI設計師(或者自己)切好的圖,你要做的只是把圖片丟進項目中...
    loneliness_8728閱讀 1,005評論 0 1
  • 前言 Image通過調用接口來創建,接口調用形式如下: 該接口通過圖片數據源獲取圖片,支持本地圖片和網絡圖片的渲染...
    __Mr_Xie__閱讀 2,998評論 0 1
  • 公司有個業務需求,要求后臺傳pdf的base64編碼給前端,前端顯示到界面上,后來在網上搜索了很多關于base64...
    心_c2a2閱讀 16,816評論 2 6
  • 原文:https://lwebapp.com/zh/post/python-image-to-ascii[http...
    openHacking閱讀 1,119評論 0 0