PDFDocument对PDF文档进行管理

PDFDocument简介

可以对PDF文档进行管理,包括合并和删除页面、设置文档打开方式以及创建或更改文档安全性设置。

PDFDocument.load()

加载现有的pdf文件。

 PDFDocument.load(pdf: string | Uint8Array | ArrayBuffer, options?: LoadOptions): 

参数

名称类型描述默认
pdfstring|Uint8Array|ArrayBuffer包含PDF文档的输入数据-
optionsLoadOptions加载文档时要使用的选项{}

LoadOptions包含 5 种属性:

  1. capNumbers? : undefined | false | true上限编号
  2. ignoreEncryption? : undefined | false | true忽略加密
  3. parseSpeed? : ParseSpeeds | number解析速度
  4. throwOnInvalidObject? : undefined | false | true抛出无效对象
  5. updateMetadata? : undefined | false | true更新元数据

返回类型:Promise<PDFDocument<>>

PDFDocument.copyPages()

将页面从源文档复制到此文档中。允许页面在不同的PDFDocument实例之间复制。例如:

PDFDocument.copyPages(srcDoc: PDFDocument, indices: number[]): Promise<PDFPage[]>
// 实例
const pdfDoc = await PDFDocument.create()
const srcDoc = await PDfDocument.load(...)

const copiedPages = await pdfDoc.copyPages(srcDoc, [0, 3, 89])
const [firstPage, fourthPage, ninetiethPage] = copiedPages;

pdfDoc.addPage(fourthPage)
pdfDoc.insertPage(0, ninetiethPage)
pdfDoc.addPage(firstPage)

参数

名称类型描述
srcDocPDF文档要从中复制页面的文档
indices数字[]要复制的页面的索引

返回类型:Promise<PDFPage[]>

PDFDocument.insertPage()

在此文档中给定索引处插入页面。此方法中page参数有三种不同值类型:

  • undefined 创建一个新页面并将其插入到此文档中
  • [number, number] 创建一个具有给定尺寸的新页面并将其插入到此文档中
  • PDFPage 将现有页面插入到此文档中
PDFDocument.insertPage(index: number, page?: [number, number] | PDFPage): PDFPage
// 实例
// page=undefined
// 在页面索引2得位置插入了一个空白页
const newPage = pdfDoc.insertPage(2)
// page=[number, number]
import { pageSizes } from 'pdf-lib'
// 创建一个A7大小的页面在索引2位置插入
const newPage1 = pdfDoc.insertPage(2, PageSizes.A7)
const newPage2 = pdfDoc.insertPage(0, PageSizes.Letter)
const newPage3 = pdfDoc.insertPage(198, [500, 750])
// page=PDFPage
const pdfDoc1 = await PDFDocument.create()
const pdfDoc2 = await PDFDocument.load(...)
// 复制pdfDoc2的第一页
const [existingPage] = await pdfDoc1.copyPages(pdfDoc2, [0])
// pdfDoc1第一页插入复制的那一页
pdfDoc1.insertPage(0, existingPage)

参数

名称类型描述
indexnumber应在其中插入页面的索引(0开始)
page?PDFPage|[数字, 编号](可选)所需的维度或现有页面

返回类型:PDFPage

PDFDocument.save()

将此文档序列化为构成PDF文件的字节数组。

PDFDocument.save(options?: SaveOptions): Promise<Uint8Array>
const pdfBytes = await pdfDoc.save()

参数

名称类型描述默认
optionsSaveOptions保存文档时要使用的选项{}

SaveOptions包含四个属性:

  1. addDefaultPage? : undefined | false | true
  2. objectsPerTick? : undefined | number
  3. updateFieldAppearances? : undefined | false | true
  4. useObjectStreams? : undefined | false | true

返回类型:Promise‹Uint8Array›

参考文档:
链接1:PDF-LIB

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Aspose.PDF for .Net中,可以使用以下代码将PDF转换为HTML并保存超链接: ```csharp // 加载PDF文档 Document pdfDocument = new Document(dataDir + "input.pdf"); // 创建HTML转换选项 HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); htmlOptions.LettersPositioningMethod = LettersPositioningMethods.UseEmUnitsAndCompensationOfRoundingErrorsInCss; htmlOptions.RasterImagesSavingMode = HtmlSaveOptions.RasterImagesSavingModes.AsEmbeddedPartsOfPngPageBackground; htmlOptions.FontSavingMode = HtmlSaveOptions.FontSavingModes.SaveInAllFormats; htmlOptions.PartsEmbeddingMode = HtmlSaveOptions.PartsEmbeddingModes.EmbedAllIntoHtml; // 保存HTML文件 pdfDocument.Save(dataDir + "output.html", htmlOptions); ``` 这样,你就可以将PDF转换为HTML并保存超链接。请注意,上述代码中的`dataDir`是指示输入和输出文件路径的变量,你需要根据实际情况进行设置。 #### 引用[.reference_title] - *1* [如何使用Aspose.PDF在.NET中将PDF转换为HTML?操作非常简单···](https://blog.csdn.net/mnrssj/article/details/102741576)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Aspose.PDF for .NET功能解读:如何在桌面和Web应用中将HTML转换为PDF](https://blog.csdn.net/weixin_33721696/article/details/117725435)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值