我有一个PDF文档已经存储在数据库中。它被存储为"image"数据类型(我没有选择(。我在C#中使用iText 7,数据库是MSSQL。我想将数据库数据解析为该文件的较小部分。我没有原始的PDF文件,只有存储在数据库中的图像。
我想把原始的PDF数据(图像(分成几页。也就是说,如果我们有原始文件,我想将大文件每2页拆分为新文件(例如,一个10页的PDF将变成5个文件,每个文件2页(。然后我想把那些较小的"PDF"也存储到数据库中。
有什么方法可以完全用代码来实现这一点吗?还是我需要在文件系统中创建一个PDF文件,然后根据该文件创建新文件,然后将各个文件导入数据库?
谢谢你的帮助。
阅读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();
...