iText7 & C# извлекает страницы из PDF, хранящиеся в MS SQL DB - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть документ PDF, уже сохраненный в базе данных. Он хранится в виде «образа» (у меня не было выбора). Я работаю в C#. NET с iText 7, и база данных MS SQL. Я хочу разбить эти данные базы данных на меньшие разделы этого файла. У меня нет исходного файла PDF, только изображение, хранящееся в базе данных.

Я хочу разделить исходные данные PDF (изображение) на страницы. То есть, если бы у нас был исходный файл, я хочу разбить этот большой файл каждые 2 страницы на новые файлы (например, 10-страничный PDF-файл превратился бы в 5 файлов, по 2 страницы в каждом). Затем я хочу сохранить эти меньшие PDF-файлы в базах данных.

Есть ли способ сделать это полностью в коде? Или мне нужно создать файл PDF в файловой системе, а затем создать новые файлы на основе этого файла, а затем импортировать отдельные файлы обратно в базу данных?

Спасибо за помощь.

1 Ответ

1 голос
/ 21 апреля 2020

Читайте о 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();
    ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...