如何动态替换PDF中的指定页面?

  1. 通过getCurrentPDFDoc接口获取当前文档对象:
//如果是使用PDFViewer类做的实例化操作,直接调用getCur大幅度发大幅度发的范德萨发啥打法是entPDFDoc接口即可
var pdfDoc = pdfviewer.getCurrentPDFDoc(); // returns PDFDoc
//如果是使用PDFUI类做的实例化操作,可在getCurrentPDFDoc接口的回调中获取文档对象
var pdfDoc = await pdfui.getCurrentPDFDoc(); // returns Promise<PDFDoc>;

2. 通过removePage接口移除指定页面,或通过removePages接口移除指定范围的页面:

//移除第一页
pdfDoc.removePage(0);//returns Promise<boolean>
//移除第一页、第三~五页
//pdfDoc.removePages([[0],[2,4]]);//Promise<boolean>

3. 获取待插入的新页面数据:

var fileObj = await fetch('https://foxit-se.oss-cn-beijing.aliyuncs.com/test_files/FoxitPDFSDKforWeb_DemoGuide.pdf');
var fileBuffer =  await fileObj.arrayBuffer();

4. 通过insertPage接口在当前文档的指定页码位置,插入特定大小的空白页面,或是通过insertPages接口将另一个PDF的特定范围页面内容插入到当前文档的指定页码位置:

//插入一个页面宽高均为500 point的空白页面到当前文档的第1页;1 point = 1 / 72 inch(1点 = 1/72英寸)
pdfDoc.insertPage(0,500,500);

//将另一个PDF的第3~5内容插入到当前文档的第1页
pdfDoc.insertPages({
    destIndex:0,
    file:fileBuffer,
    startIndex:2,
    endIndex:4
})

完整代码片段如下:

var pdfDoc = await pdfui.getCurrentPDFDoc(); //获取当前文档对象
pdfDoc.removePage(0);// 移除第一页
//pdfDoc.removePages([[0],[2,4]]);//移除第一页、第三~五页 
var fileObj = await fetch('https://foxit-se.oss-cn-beijing.aliyuncs.com/test_files/FoxitPDFSDKforWeb_DemoGuide.pdf');
var fileBuffer =  await fileObj.arrayBuffer(); //获取待插入的新页面数据

//pdfDoc.insertPage(0,500,500); //插入一个页面宽高均为500 point的空白页面到当前文档的第1页;
//将另一个PDF的第3~5内容插入到当前文档的第1页
pdfDoc.insertPages({
    destIndex:0,
    file:fileBuffer,
    startIndex:2,
    endIndex:4
})