HarmonyOS 鸿蒙Next PDF添加水印后展示白屏?

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

HarmonyOS 鸿蒙Next PDF添加水印后展示白屏?

HarmonyOS PDF添加水印后展示白屏?

2 回复

1、请确认选用的字体是否存在,在获取字体后,可以打印下字体信息,如不存在请更换字体后重试; 2、字体可以在system/fonts/目录下查看,可能需要多试几个,在传入字体名称时,需要将下划线换成空格; 片段示例:

// let fontInfo: font.FontInfo = font.getFontByName("HarmonyOS Sans");
//需要去掉下划线: /system/fonts/HarmonyOS_Sans_Digit.ttf
let fontInfo: font.FontInfo = font.getFontByName("HarmonyOS Sans Digit");
console.error(TAG, 'addTextWatermark fontInfo:' + JSON.stringify(fontInfo));
wminfo.fontInfo.fontPath = fontInfo.path;

完整示例:

async addTextWatermark(pdfDocument: pdfService.PdfDocument, path: string) {
  console.log(TAG, "addTextWatermark, path: " + path);
  if (await fs.access(path)) {
    fs.unlinkSync(path);
  }
  try {
    let wminfo: pdfService.TextWatermarkInfo = new pdfService.TextWatermarkInfo();
    wminfo.watermarkType = pdfService.WatermarkType.WATERMARK_TEXT;
    wminfo.content = "This is watermark";
    wminfo.textSize = 30;
    // wminfo.textColor = 0x000000;
    wminfo.textColor = 200;
    wminfo.fontInfo = new pdfService.FontInfo();
    // let fontInfo: font.FontInfo = font.getFontByName("HarmonyOS Sans");
    // /system/fonts/HarmonyOS_Sans_Digit.ttf
    let fontInfo: font.FontInfo = font.getFontByName("HarmonyOS Sans Digit");
    console.error(TAG, 'addTextWatermark fontInfo:' + JSON.stringify(fontInfo));
    wminfo.fontInfo.fontPath = fontInfo.path;
    wminfo.opacity = 0.5;
    wminfo.isOnTop = false;
    wminfo.rotation = 45;
    wminfo.scale = 1.5;
    wminfo.opacity = 0.5;
    wminfo.verticalAlignment = pdfService.WatermarkAlignment.WATERMARK_ALIGNMENT_TOP;
    wminfo.horizontalAlignment = pdfService.WatermarkAlignment.WATERMARK_ALIGNMENT_LEFT;
    wminfo.horizontalSpace = 1.0;
    wminfo.verticalSpace = 1.0;
    pdfDocument.addWatermark(wminfo, 0, pdfDocument.getPageCount(), true, true);
    pdfDocument.saveDocument(path);
  } catch (e) {
    console.error(TAG, 'addTextWatermark errMsg:' + JSON.stringify(e));
  }
}

针对HarmonyOS 鸿蒙Next PDF添加水印后展示白屏的问题,这可能是由于多种原因导致的。以下是一些可能的原因及解决方法:

  1. 水印添加方式不当:检查水印添加的代码逻辑,确保水印是以正确的方式添加到PDF中的。如果使用的是第三方库或工具,请确认其兼容性和正确性。
  2. PDF文件损坏:在添加水印的过程中,PDF文件可能已损坏。尝试重新生成或修复PDF文件。
  3. 系统或应用问题:确保鸿蒙OS Next系统已更新到最新版本,同时检查相关应用(如PDF阅读器)是否也是最新版本。有时系统或应用的bug可能导致文件显示异常。
  4. 资源限制:检查设备或模拟器的资源使用情况,如内存和存储空间。资源不足可能导致文件无法正常加载和显示。

如果以上方法均无法解决问题,请联系官网客服以获取更专业的帮助。官网地址是:https://www.itying.com/category-93-b0.html

回到顶部