HarmonyOS 鸿蒙Next PDF无法编辑的问题
HarmonyOS 鸿蒙Next PDF无法编辑的问题
使用PDF Kit创建一个pdf,并插入空白页,在空白页上添加文本和图片,保存。插入空白页和保存都成功了,但文本和图片并没有添加到页面上。显示的是两个空白页。另:save中的进度回调中的log没有输出。具体代码如下:
import { pdfService } from "@kit.PDFKit";
saveAsPdf(savePath: string, images: string[], callback?: Function) {
const tempFilePath: string = `${this.context.tempDir}/${this.dirName}.pdf`;
const pdfDocument: pdfService.PdfDocument = new pdfService.PdfDocument();
pdfDocument.createDocument(595, 842);
pdfDocument.insertBlankPage(1, 595, 842);
const page = pdfDocument.getPage(1);
page.addTextObject('Hello world', 20, 20, {textColor: Color.Red, textSize: 20});
LogUtil.info('图片:', JSON.stringify(images));
LogUtil.info('沙箱地址:', FileUtil.getFilePath(images[0]));
page.addImageObject(images[0], 0, 0, 595, 842);
pdfDocument.saveDocument(tempFilePath, (progress: number) => {
LogUtil.info('进度:', progress.toString());
return progress;
})
}
更多关于HarmonyOS 鸿蒙Next PDF无法编辑的问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
参考此demo
import { fileIo as fs } from '@kit.CoreFileKit';
import { pdfService } from '@kit.PDFKit';
import { common } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
@Entry
@Component
struct Page {
build() {
Column() {
Button('转图片')
.onClick(()=>{
this.copyFile('index.png')
this.savePdf()
})
.margin(20)
}
}
copyFile(fileName:string){
let context = getContext(this) as common.UIAbilityContext;
try {
let data = context.resourceManager.getRawFileContentSync(fileName)
let buffer = data.buffer
let sanboxPath = context.filesDir
try {
let filePath = sanboxPath + "/" + fileName
let file = fs.openSync(filePath, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE)
try {
fs.writeSync(file.fd, buffer) // 拷贝文件到沙箱
fs.close(file.fd)
console.log('myRawfileCopy success ' + data)
} catch (err) {
console.log('myRawfileCopy error')
}
} catch (error) {
let err: BusinessError = error as BusinessError;
console.error(err.message);
}
} catch (error) {
let err: BusinessError = error as BusinessError;
console.error(err.message);
}
}
savePdf(){
let filePath = getContext().filesDir + '/pdf002.pdf'
let imgPath = getContext().filesDir + "/index.png";
if (!fs.accessSync(filePath)) {
// 新建并打开文件
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
// 关闭文件
fs.closeSync(file);
}
if (!fs.accessSync(imgPath)) {
console.info("没有图片")
return
}
let tempFilePath = getContext().tempDir + `/temp${Math.random()}.pdf`;
fs.copyFileSync(filePath,tempFilePath)
let pdfDocument = new pdfService.PdfDocument();
let loadResult = pdfDocument.loadDocument(tempFilePath,'');
console.info("pdfService.ParseResult.PARSE_SUCCESS:",pdfService.ParseResult.PARSE_SUCCESS)
pdfDocument.createDocument(728.27,1000)
let pdfPage: pdfService.PdfPage = pdfDocument.getPage(0);
pdfPage.addImageObject(imgPath, 0, 0, 728.27, 1000);
pdfDocument.saveDocument(filePath);
}
}
更多关于HarmonyOS 鸿蒙Next PDF无法编辑的问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
添加图片是正常的,但是添加文字后,最终生成的pdf中没有文字,不知道什么原因。我的这块代码没有修改过,5.0.0版本的时候还是正常的,升级后就没有文字了。
怎么解决的?看不出来呀。
针对HarmonyOS(鸿蒙)系统中Next PDF无法编辑的问题,这里提供直接的技术解答:
在鸿蒙系统上,如果Next PDF应用程序不支持编辑功能,这通常意味着该PDF文件是以只读模式打开的,或者Next PDF应用本身不具备编辑PDF文件的能力。要解决这个问题,你可以尝试以下几个方法:
-
检查PDF文件属性:确保PDF文件没有被设置为只读。虽然这通常在文件系统中设置,但在某些PDF编辑软件中也可以查看和修改。
-
使用专业PDF编辑软件:尝试使用其他支持PDF编辑的软件,如WPS Office或Adobe Acrobat等,这些软件通常提供完整的PDF编辑功能。
-
转换PDF为可编辑格式:如果原始PDF文件是由其他格式(如Word、Excel)转换而来的,尝试找到原始文件并进行编辑,然后再转换回PDF格式。
-
检查鸿蒙系统版本:确保你的鸿蒙系统已经更新到最新版本,因为新版本可能会修复一些已知的问题或增加新的功能。
-
应用更新:检查Next PDF应用是否有可用的更新,因为开发者可能已经修复了编辑相关的问题。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html