打开pdf跳转到指定页数

打开pdf,后端直接传URL,用window.open可以直接打开pdf

window.open(url)

若是后端穿的base64,可以先处理成url

// 假设从后端接收到的 base64Data 是后端传输的 Base64 数据
let base64Data = "data:application/pdf;base64,xxx"; // 假设这里是 Base64 数据

// 将 Base64 数据解码为二进制数据
let binaryData = atob(base64Data.split(',')[1]);

// 创建一个 Uint8Array 对象
let uint8Array = new Uint8Array(binaryData.length);
for (let i = 0; i < binaryData.length; i++) {
    uint8Array[i] = binaryData.charCodeAt(i);
}

// 创建 Blob 对象
let blob = new Blob([uint8Array], { type: 'application/pdf' });

// 生成可用于访问 Blob 对象的 URL
let blobUrl = URL.createObjectURL(blob);

若是需求碰上要你给pdf加上水印,这个库可以满足你的要求

https://pdf-lib.js.org/

碰到需求说要跳转到指定页数和按比例缩放

// view的值可以是FitH、FitV、FitR或者一个百分比(例如0.5代表50%)

let url = `${URL}#page=${你要跳转的页数}&view={你要的缩放比例}`

window.open(url)

要在Java中实现PDF点击链接跳转指定码,可以使用iText库。iText是一个开源的Java PDF库,可以用来创建、编辑和操作PDF文档。 下面是一个示例代码,展示如何在PDF文档中创建一个跳转链接,点击链接后跳转到第5: ```java import com.itextpdf.kernel.pdf.PdfDocument; import com.itextpdf.kernel.pdf.PdfDestination; import com.itextpdf.kernel.pdf.PdfPage; import com.itextpdf.kernel.pdf.action.PdfAction; import com.itextpdf.kernel.pdf.navigation.PdfExplicitDestination; // 打开PDF文档 PdfDocument pdfDoc = new PdfDocument(new PdfReader("example.pdf"), new PdfWriter("output.pdf")); // 获取第5 PdfPage page = pdfDoc.getPage(4); // 创建PdfDestination对象 PdfDestination dest = PdfExplicitDestination.createFitH(page, page.getPageSize().getHeight()); // 创建PdfAction对象,指向PdfDestination PdfAction action = PdfAction.createGoTo(dest); // 在文本中创建超链接,指向PdfAction对象 Paragraph p = new Paragraph("Click here to go to page 5"); Link link = new Link(" ", action); link.setUnderline(false); p.add(link); // 将文本添加到PDF文档中 Document doc = new Document(pdfDoc); doc.add(p); // 关闭文档 doc.close(); ``` 在上述代码中,首先打开了一个名为example.pdfPDF文档,并获取了第5面对象。然后,使用PdfExplicitDestination类创建了一个指向第5PdfDestination对象dest。接着,使用PdfAction类创建了一个指向dest对象的PdfAction对象action。最后,在文本中创建了一个超链接,指向action对象。 需要注意的是,创建PdfExplicitDestination对象时,需要指定目标面和定位类型。定位类型可以是createFitH、createFitV、createFitR等等,可以根据需要选择不同的定位类型。如果需要指定更详细的目标位置,可以在定位类型后面添加参数,如createFitH(page, 300)表示距离面顶部300个单位的位置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值