HarmonyOS 鸿蒙Next 将base64转位pdf文件并展示如何实现

发布于 1周前 作者 gougou168 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 将base64转位pdf文件并展示如何实现
将base64转位pdf文件并展示如何实现

3 回复

可以参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs-V5/faqs-media-library-kit-V5#section7509828205616,可使用picker选择器保存到文件管理,

参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-file-picker-V5#save-2

import { BusinessError, request } from '@kit.BasicServicesKit';
import { filePreview } from '@kit.PreviewKit';
import fs, { ReadOptions } from '@ohos.file.fs';
import { buffer, util } from '@kit.ArkTS';
import { fileIo, fileUri, picker } from '@kit.CoreFileKit';
import { common } from '@kit.AbilityKit';

let uiContext = getContext(this);
@Entry
@Component
struct ImagePreview {
  build() {
    Column() {
      Button('保存')
        .onClick(async () =>{
          try {
            try {
              let documentSaveOptions = new picker.DocumentSaveOptions();
              documentSaveOptions.newFileNames = ['test.pdf'];
              let documentPicker = new picker.DocumentViewPicker(uiContext);
              documentPicker.save(documentSaveOptions).then((documentSaveResult: Array<string>) =>{
                console.info('DocumentViewPicker.save successfully, documentSaveResult uri: ' + JSON.stringify(documentSaveResult));
                let that = new util.Base64Helper();
                let buff = 'Base64字符串';
                let result:Uint8Array = that.decodeSync(buff, util.Type.MIME);
                let buf:ArrayBuffer = result.buffer as ArrayBuffer
                let uri = documentSaveResult[0];
                let file = fs.openSync(uri, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE)
                fs.writeSync(file.fd, buf)
                fs.close(file.fd)
              }).catch((err: BusinessError) =>{
                console.error('DocumentViewPicker.save failed with err: ' + JSON.stringify(err));
              });
            } catch (error) {
              let err: BusinessError = error as BusinessError;
              console.info("[picker] photoViewPickerSave error = " + JSON.stringify(err));
            }
          } catch (error) {
            let err: BusinessError = error as BusinessError;
            console.error(err.message);
          }
        })
    }
  }
}

更多关于HarmonyOS 鸿蒙Next 将base64转位pdf文件并展示如何实现的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next系统中,若要将base64编码的数据转换为PDF文件并展示,可以按照以下步骤实现:

  1. 解码base64数据: 使用鸿蒙系统提供的API或库函数,将base64编码的字符串解码为二进制数据。鸿蒙系统通常内置了处理base64编码的库,可以直接调用。

  2. 生成PDF文件: 将解码后的二进制数据写入到一个PDF文件中。鸿蒙系统可能提供专门的PDF处理库,或者可以通过第三方库(如iTextSharp等,但需确保鸿蒙系统兼容)来完成PDF文件的生成。

  3. 展示PDF文件: 使用鸿蒙系统的UI组件或框架,如ArkUI,来加载并展示生成的PDF文件。可以通过内置的PDF查看器组件,或者自定义一个UI界面来展示PDF内容。

  4. 注意事项:

    • 确保在编码和解码过程中,数据的完整性和准确性。
    • 生成的PDF文件应存储在合适的路径下,以便后续访问和展示。
    • 展示PDF时,注意处理文件加载和渲染的效率,确保用户体验。

如果问题依旧没法解决请联系官网客服,官网地址是: https://www.itying.com/category-93-b0.html

回到顶部