iText7 & C# 从存储在 MSSQL DB 中的 PDF 中提取页面
Posted
技术标签:
【中文标题】iText7 & C# 从存储在 MSSQL DB 中的 PDF 中提取页面【英文标题】:iText7 & C# extract pages from PDF stored in MSSQL DB 【发布时间】:2020-08-03 11:51:42 【问题描述】:我有一个已存储在数据库中的 PDF 文档。它存储为“图像”数据类型(我别无选择)。我正在使用 iText 7 在 C# .NET 中工作,数据库是 MSSQL。我想将该数据库数据解析为该文件的较小部分。我没有原始的 PDF 文件,只有存储在数据库中的图像。
我想将原始 PDF 数据(图像)分成页面。也就是说,如果我们有原始文件,我想将该大文件按每 2 页拆分为新文件(例如,10 页 PDF 将变为 5 个文件,每个 2 页)。然后我想将那些较小的“PDF”也存储到数据库中。
有没有办法完全在代码中做到这一点?或者我需要在文件系统中创建一个PDF文件,然后基于该文件创建新文件,然后将单个文件导入回数据库中?
感谢您的帮助。
【问题讨论】:
【参考方案1】:了解 MemoryStream,它可以在不创建文件的情况下保存您的数据。例如,
// database part here
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
byte[] pdf = (byte[])dr["image_pdf"];
MemoryStream ms = new MemoryStream(picarr);
ms.Seek(0, SeekOrigin.Begin);
// PDF part here
Document doc = new Document();
PdfWriter writer = PdfWriter.GetInstance(doc, ms);
doc.Open();
...
【讨论】:
以上是关于iText7 & C# 从存储在 MSSQL DB 中的 PDF 中提取页面的主要内容,如果未能解决你的问题,请参考以下文章