.NET使用PDFSharp拆分PDF文件流
最近做了一个比较有意思的功能,当A用户传入一个pdf文件后,其他人申请借阅的时候只能借阅这个pdf的某几页,这时候就要对原始的pdf文件流进行拆分,给用户展示指定的某几页,废话不多说,直接开始实践步骤。
1.导入第三方组件
这里我用到的第三方组件为PDFSharp,在项目引用上右键,点击NuGet搜索PDFSharp并安装到项目中即可
2.编写核心代码
/// <summary>
/// 拆分pdf文件流(返回拆分后的页合集)
/// </summary>
/// <param name="memoryStream">pdf文件流</param>
/// <returns></returns>
private static List<MemoryStream> SplitPdf(MemoryStream memoryStream)
{
// 打开文件(文件流方式)
var inputDocument = PdfSharp.Pdf.IO.PdfReader.Open(memoryStream, PdfSharp.Pdf.IO.PdfDocumentOpenMode.Import);
var streamList = new List<MemoryStream>();
for (int idx = 0; idx < inputDocument.PageCount; idx++)
{
// 创建新的pdf文档
var outputDocument = new PdfSharp.Pdf.PdfDocument
{
Version = inputDocument.Version
};
outputDocument.Info.Title = String.Format("Page {0} of {1}", idx + 1, inputDocument.Info.Title);
outputDocument.Info.Creator = inputDocument.Info.Creator;
// 添加拆分页到list
outputDocument.AddPage(inputDocument.Pages[idx]);
var ms = new MemoryStream();
outputDocument.Save(ms);
streamList.Add(ms);
}
return streamList;
}
3.拿到拆分后的文件流,就可以根据自己的需求进行操作了,比如保存到本地,或者直接使用控件加载指定的文件流显示。
版权声明:
作者:兴兴
文章:.NET使用PDFSharp拆分PDF文件流
链接:https://www.networkcabin.com/notes/2791
文章版权归本站所有,未经授权请勿转载。
作者:兴兴
文章:.NET使用PDFSharp拆分PDF文件流
链接:https://www.networkcabin.com/notes/2791
文章版权归本站所有,未经授权请勿转载。
THE END