Бесплатная библиотека для создания, объединения и изменения PDF-документов

Вопрос или проблема

Я знаю, что этот вопрос уже задавался, но предыдущие ответы кажутся слишком старыми, чтобы быть актуальными или релевантными.

Организация, в которой я работаю, в настоящее время использует два лицензированных продукта для работы с PDF. Поскольку лицензионные сборы становятся очень высокими, мне поручили найти одно решение, предпочтительно бесплатное или с открытым исходным кодом, на которое мы могли бы перейти, чтобы удовлетворить наши потребности.

Решение должно обеспечивать следующую функциональность:

  • Конвертировать входящий поток байтов в кодировке Base64 в PDF.
  • Объединять несколько потоков байтов в один документ.
  • Добавлять произвольный штамп к PDF (например, как печать, которую использует клерк для обозначения того, что документы обработаны. Штамп должен быть настраиваемым, чтобы дату и имя клерка можно было добавлять на лету).

Я рассматривал PDFSharp. Похоже, что он может справиться с тем, что нам нужно. Проблема в том, что документация настолько плоха, что я даже не могу заставить работать примеры. Я не знаю, связано ли это с тем, что API не совместимы с .NET 8 или по какой-то другой причине, которую я не вижу. Я не нашел никаких учебников, которые могли бы помочь мне понять, если я делал какие-либо ошибки.

Кто-нибудь знает о решении, которое могло бы мне помочь? Это может быть платное решение, но лицензирование должно быть простым и не на основе каждого проекта.

Спасибо!

Библиотека Spire.PDF для .NET предоставляет функции, о которых вы говорили. Вы можете запросить бесплатную лицензию для пробного использования и тщательно протестировать её.

Вот документация библиотеки для вашего ознакомления:

https://www.e-iceblue.com/Tutorials/Spire.PDF/Spire.PDF-Program-Guide/Spire.PDF-Program-Guide-Content.html

Библиотека PDF4NET поддерживает все ваши требования.
Оценочная версия доступна для скачивания.
Примеры доступны на GitHub: https://github.com/o2solutions/pdf4net
Наша служба поддержки ответит на любые вопросы, которые у вас могут возникнуть по поводу библиотеки.

Примечание: я работаю в компании, которая разрабатывает PDF4NET

Вы можете попробовать фреймворк PDF от Syncfusion.

  • Создавайте, читайте и редактируйте PDF-файлы всего несколькими строками кода.
  • Конвертируйте более 20 самых распространенных и популярных форматов документов в PDF.
  • Просматривайте и проверяйте PDF-файлы без проблем в ваших приложениях.

https://www.syncfusion.com/document-processing/pdf-framework/net

Syncfusion также предлагает бесплатную лицензию для сообщества. https://www.syncfusion.com/products/communitylicense

Примечание: я работаю в компании Syncfusion

Windows CMD с несколькими файлами будет (вам нужно будет использовать tar.exe для распаковки zip-файлов)

Сделано, это всего 2 или 3 строки кода в оболочке CMD

или они все предоставляют открытые решения для “собери свое собственное”

Ответ или решение

Ваша задача по созданию, объединению и изменению PDF-документов может быть решена с использованием нескольких бесплатных и открытых библиотек. Я предложу несколько вариантов, которые соответствуют вашим требованиям, и рассмотрю их функциональность.

  1. PdfSharp: Это популярная библиотека для работы с PDF в .NET, но, как вы заметили, документация может быть недостаточно подробной. Хотя PdfSharp позволяет создавать PDF-документы, объединение и добавление печатей может потребовать дополнительных усилий, например, интеграции с библиотеками, такими как MigraDoc.

  2. iText 7 Community: Эта библиотека является мощным инструментом для обработки PDF-документов и предоставляет возможность работы с Base64, объединения документов и добавления кастомных печатей. iText имеет хорошую документацию и множество примеров. Однако, учитывайте, что лицензия AGPL требует, чтобы ваше программное обеспечение также было открытым, если вы планируете его распространение.

  3. PDF4NET: Эта библиотека поддерживает все ваши требования. Она позволяет конвертировать Base64 в PDF, объединять документы и добавлять кастомные печати. Вы можете скачать оценочную версию PDF4NET и ознакомиться с примерами на GitHub. Моя рекомендация — воспользоваться поддержкой от команды разработчиков для получения дополнительных знаний.

  4. Syncfusion PDF Framework: Эта библиотека также подходит под ваши критерии и предлагает возможность создания, чтения и редактирования PDF-файлов с минимальным количеством кода. Syncfusion предоставляет бесплатную сообщественную лицензию для малых предприятий и стартапов, что может быть полезно для вашей организации. Лицензия проста и не требует дополнительных затрат за проект. Подробности можно найти здесь.

  5. PDFCPU и Poppler: Если вы ищете более низкоуровневые и командные решения, можете использовать PDFCPU для добавления печатей и Poppler для объединения PDF-документов. Эти инструменты могут быть вызваны из командной строки и предоставляют мощные возможности обработки PDF без сложной интеграции кода.

Пример использования некоторых из этих библиотек для выполнения ваших задач:

  • Конвертация Base64 в PDF:

    byte[] pdfBytes = Convert.FromBase64String(base64String);
    File.WriteAllBytes("output.pdf", pdfBytes);
  • Объединение документов (например, с использованием PDF4NET):

    PdfDocument document = new PdfDocument();
    foreach (string file in filesToMerge)
    {
      PdfDocument srcDoc = PdfReader.Open(file, PdfDocumentOpenMode.Import);
      document.AddPages(srcDoc.Pages);
    }
    document.Save("merged.pdf");
  • Добавление печати (с использованием iText):

    PdfDocument pdfDoc = new PdfDocument(new PdfReader("original.pdf"), new PdfWriter("stamped.pdf"));
    PdfCanvas canvas = new PdfCanvas(pdfDoc.GetPage(1));
    canvas.SaveState();
    canvas.BeginText();
    canvas.SetFontAndSize(PdfFontFactory.CreateFont(), 12);
    canvas.ShowTextAligned("Отметка: " + clerkName + " " + date.ToShortDateString(), x, y, TextAlignment.LEFT);
    canvas.EndText();
    canvas.RestoreState();
    pdfDoc.Close();

Надеюсь, эти советы помогут вам найти подходящее решение для вашего проекта. Если у вас будут дополнительные вопросы, не стесняйтесь обращаться!

Оцените материал
Добавить комментарий

Капча загружается...