Release Notes


2026.8 - Август 2026 г.
Мы подробнее опишем, что было исправлено/улучшено и почему вам следует обновить:

1. Улучшен механизм подсчета страниц документа.
Формат документа, который не имеет страниц, называется потоковым или переформатируемым документом. Его содержимое течет непрерывно, а не делится на фиксированные страницы. Примеры включают:

  • Простой текст (.txt).
  • HTML (.html) (веб-страницы).
  • Markdown (.md).
  • XML (.xml).
  • EPUB (электронные книги с изменяемым форматированием).
В отличие от них, к форматам документов на основе страниц относятся:
  • Microsoft Word (.docx, .rtf, .doc) (использует страницы в макете печати).
  • PDF (.pdf любых версий).
  • OpenDocument Text (.odt).

Если мы говорим о Document .Net, то речь идет конкретно о форматах Microsoft Word (DOC, DOCX, RTF), то сам документ всегда поддерживает страницы в режиме макета печати. Однако, если вы переключитесь в режим веб-макета или черновика, документ отобразится как непрерывный поток без видимых границ страниц, даже если в документе еще есть страницы для печати. То же самое происходит в PDF-файлах (PDF .Net).

Sautinsoft.Document определяет количество страниц, компонуя документ в соответствии с его текущим форматированием, а затем подсчитывая количество получившихся страниц. Общее количество страниц может меняться по мере редактирования, поскольку Word постоянно пересчитывает макет.

Количество страниц зависит от таких факторов, как:
  • Размер бумаги (например, A4 или Letter).
  • Поля страницы.
  • Ориентация страницы (портретная или альбомная).
  • Тип и размер шрифта.
  • Межстрочный и межабзацный интервал.
  • Колонтитулы.
  • Изображения, таблицы и другие объекты.
  • Разрывы разделов и разрывы страниц.
  • Столбцы или другие параметры макета страницы.

Например, если вы увеличите размер шрифта с 11 пт до При размере шрифта 12 пунктов один и тот же текст может больше не помещаться на том же количестве страниц, что увеличивает счетчик страниц.

Как посмотреть счетчик страниц

  • Строка состояния: В левом нижнем углу окна Word обычно отображается что-то вроде "Страница 3 из 12".
  • Предварительный просмотр печати: Здесь точно отображается, как документ размечен для печати.
  • Диалоговое окно счетчика слов: Перейдите в меню «Рецензирование» → «Счетчик слов», чтобы увидеть количество страниц, а также количество слов, символов, абзацев и строк.

Почему счетчик страниц может отличаться

Один и тот же документ может иметь разное количество страниц, если:

  • Он открыт в системе с разными настройками принтера (Word использует метрики активного принтера для определения макет).
  • Изменяется размер бумаги (например, A4 против Letter).
  • Отсутствуют и заменяются шрифты.
  • Изменяются поля или параметры масштабирования.
  • Документ просматривается или печатается с различными вариантами макета.

Вкратце, движок Sautinsoft не оценивает количество страниц на основе количества слов. Он рассчитывает количество страниц на основе полностью отформатированного макета документа, который будет отображаться при печати или просмотре в режиме макета печати.

Наш движок был улучшен и теперь лучше обрабатывает различные форматы документов (DOCX, PDF, DOC, RTF), которые не имеют четкого представления о количестве страниц. Мы также добавили поддержку компонента NSalc внутри компонентов для быстрого и оптимального определения количества страниц.

2. Выполнение полнотекстового поиска в PDF с использованием C#.

Полнотекстовый поиск в PDF означает поиск по фактическому текстовому содержимому PDF-документа, а не только по его имени файла, метаданным или закладкам. Цель состоит в том, чтобы найти документы (или места внутри документов), содержащие определенные слова, фразы или шаблоны.

Существует несколько уровней сложности в зависимости от типа PDF-файла и требований к поиску.

  1. PDF-файлы с возможностью поиска и отсканированные PDF-файлы
  2. Прежде всего, следует понимать, что не все PDF-файлы содержат текст.
    PDF-файлы с возможностью поиска
    Эти PDF-файлы содержат фактические текстовые объекты.
    Примеры:
    • Microsoft Word → Сохранить как PDF
    • Excel → Экспорт в PDF
    • PDF-файл, сгенерированный из HTML
    Текст можно извлечь напрямую.
    Быстрая коричневая лиса перепрыгивает через ленивую собаку.
    Поиск просто означает изучение этих текстовых объектов.
    Отсканированный PDF-файл
    Отсканированный PDF-файл обычно представляет собой просто изображение.

    Текст, доступный для поиска, отсутствует.

    Для выполнения полнотекстового поиска документ должен сначала пройти обработку с помощью OCR (оптического распознавания символов) для преобразования изображения в текст.

  3. Как хранится текст в PDF
  4. В отличие от документа Word, PDF-файлы не хранят текст в виде абзацев.
    Вместо этого они содержат множество команд для рисования.
    Пример (концептуально):
    Нарисуйте "H" в точке (100,700)
    Нарисуйте "e" в точке (108,700)
    Нарисуйте "l" в точке (115,700)
    Нарисуйте "l" в точке (118,700)
    Нарисуйте "o" в точке (121,700)

    Библиотека PDF восстанавливает эти символы в слова и предложения перед поиском.

  5. Базовый полнотекстовый поиск
  6. Простейший алгоритм:
    
    bool found = text.Contains("invoice",
    StringComparison.OrdinalIgnoreCase);
    
    

    Методы поиска в SautinSoft:

    • Поиск по фразам
    • Поиск по нескольким ключевым словам
    • Поиск по регулярным выражениям
    • Учет регистра
    • Поиск по целым словам
    • Нечеткий поиск
    • Индексированный поиск
    • Выделение результатов

  7. Проблемы полнотекстового поиска в PDF-файлах
  8. PDF-файлы предназначены для представления, а не для логической структуры документа, поэтому поиск не всегда прост. Типичные проблемы включают в себя:

  9. Типичная архитектура
  10. Система поиска по PDF-файлам производственного уровня часто использует следующий алгоритм:
  11. Полнотекстовый поиск на C#
  12. Для приложений .NET рабочий процесс обычно выглядит следующим образом:
    • Открыть PDF-файл с помощью библиотеки PDF/DOCX SautinSoft.
    • Извлечь текст с каждой страницы.
    • Если PDF-файл После сканирования сначала запустите OCR.
    • Поиск в извлеченном тексте с использованием сопоставления строк, регулярных выражений или индекса.
    • При желании сопоставьте найденные совпадения с координатами страницы, чтобы выделить их.

    Для некоторых PDF-файлов обычно достаточно извлечения текста и поиска в памяти. Для больших коллекций (тысячи или миллионы документов) создание полнотекстового индекса с помощью поисковой системы, такой как Sautinsoft.Document или SautinSoft.Pdf, обеспечивает гораздо более высокую скорость выполнения запросов и поддерживает расширенные функции, такие как ранжирование по релевантности, фразовые запросы и нечеткое сопоставление.

    Для выполнения полнотекстового поиска в PDF .Net с использованием C# обычно необходимо:
    1) Извлечь текст из PDF.
    2) Выполнить поиск в извлеченном тексте по ключевому слову или фразе.
    Вот наиболее распространенные подходы.
    Установка:
    dotnet add package SautinSoft.Pdf
    Пример:
    using System;
    using System.IO;
    using SautinSoft;
    using SautinSoft.Pdf;
    using SautinSoft.Pdf.Content;
    using System.Linq;
    
    namespace Sample
    {
        class Sample
        {
            /// 
            /// Find text in the PDF.
            /// 
            /// 
            /// Details: https://sautinsoft.com/products/pdf/help/net/developer-guide/find-text.php
            /// 
            static void Main(string[] args)
            {
                // Before starting this example, please get a free trial key:
                // https://sautinsoft.com/start-for-free/
    
                // Apply the key here:
                PdfDocument.SetLicense("Serial_key");
    
                string pdfFile = @"Example_01.pdf";
    
                var document = PdfDocument.Load(pdfFile);
                {
                    // 1.   Try to find text "Hello My Friend"
                    var text = document.Pages[0].Content.GetText().Find("Hello My Friend ");
    
                    Console.WriteLine("Found " + text.Count() + " elements of this symbol combination.");
    
                    foreach (var occur in text)
                    {
                        // 2.   Show the bounds of the string " Hello My Friend "
                        Console.WriteLine(occur.ToString());
                        Console.WriteLine(
                            $"Bottom    {occur.Bounds.Bottom}\n"+
                            $"Left      {occur.Bounds.Left}\n" +
                            $"Top       {occur.Bounds.Top}\n" +
                            $"Right     {occur.Bounds.Right}");
    
    
                        //      I create a new PdfQuad with Top and Hight of the found " Hello My Friend "
    
                        double dL = occur.Bounds.Left;
                        double dB = occur.Bounds.Bottom;
                        double dR = occur.Bounds.Right;
                        double dT = occur.Bounds.Top;
                        PdfQuad quad = new PdfQuad(dL, dB, dR, dT);
    
                        // 4.   Show the bounds for GetText
                        Console.WriteLine("\n\nGet text of amount on position:");
                        Console.WriteLine(
                            $"Bottom    {dB}\n" +
                            $"Left      {dL}\n" +
                            $"Top       {dT}\n" +
                            $"Right     {dR}");
    
                        // 5.   GetText with PdfTextOptions
                        var txtOnBounds = document.Pages[0].Content.GetText(new PdfTextOptions
                        {
                            Bounds = new PdfQuad(140, 640, 250, 660),
                            Order = PdfTextOrder.Reading
                        });
    
                        // 6.   Show found amount
                        Console.WriteLine($"\n\nFound Text:\n{txtOnBounds.ToString()}:");
    
                    }
    
                }
            }
        }
    }
        

Преимущества

  • Бесплатно
  • Поддержка .NET
  • Хорошее извлечение текста
  • Нет зависимости от Adobe

3. Полная поддержка встроенных шрифтов в движках SautinSoft.

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

Зачем встраивать шрифты?
Встраивание шрифтов дает несколько преимуществ:
  • Единообразный внешний вид — Текст отображается точно так, как задумал автор.
  • Кроссплатформенная совместимость – PDF-файл корректно отображается в Windows, macOS, Linux, на мобильных устройствах и в браузерах.
  • Надежная печать – Предотвращает замену шрифтов, которая может изменить макет или переносы строк.
  • Долгосрочное архивирование – Требуется стандартами, такими как PDF/A.
Типы встраивания шрифтов
  1. Полное встраивание
  2. В PDF-файл включена вся программа шрифтов.
    Преимущества
    • Доступны все символы.
    • Часто текст можно редактировать без использования оригинального шрифта.
    • Недостатки
    • Больший размер PDF-файла.
  3. Подмножество шрифта
  4. Встраиваются только глифы (символы), фактически используемые в документе.
    Например:
    Оригинальный шрифт:
    ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
    Текст в PDF:
    HELLO
    Встроенное подмножество:
    H E L L O
    Преимущества
    • Значительно меньший размер PDF-файла.
    • Большинство PDF-файлов используют этот подход.
    • Недостатки
    • Если вы позже отредактируете PDF-файл и добавите символы, которые не были встроены, программе редактирования может потребоваться доступ к исходному шрифту или заменить его другим шрифтом.

    Что произойдет, если шрифты не встроены?

    Когда PDF-файл ссылается на шрифт, который не встроен:
    1) Программа просмотра PDF-файлов ищет шрифт в локальной системе.
    2) Если она не может его найти, она заменяет его другим шрифтом.
    3) Внешний вид документа может измениться.

    Возможные последствия:
    • Разное перенесение строк
    • Изменение разрывов страниц
    • Неправильное выравнивание таблиц
    • Неправильный интервал
    • Отсутствующие символы или нелатинские символы.

    Какие шрифты нельзя встраивать?

    Некоторые коммерческие шрифты имеют ограничения лицензирования.
    Шрифт содержит разрешение на встраивание (часто называемое флагом fsType в OpenType). (шрифты), указывающие, является ли встраивание:
    • Устанавливаемый
    • Редактируемый
    • Предварительный просмотр и печать
    • Ограниченный (встраивание запрещено).
    SautinSoft.PDF обычно соблюдает эти разрешения.
    SautinSoft обеспечивает надежную поддержку встроенных шрифтов в PDF-документах.
    Ключевые возможности включают:
    • ✅ Чтение встроенных шрифтов из PDF-файлов.
    • ✅ Сохранение встроенных шрифтов во время загрузки и сохранения PDF-файла.
    • ✅ Поддержка трех режимов через PdfLoadOptions.PreserveEmbeddedFonts:
    • Включено – Всегда загружать встроенные шрифты.
      Отключено – Игнорировать встроенные шрифты и использовать системные шрифты.
      Авто – Использовать встроенные шрифты только тогда, когда шрифт не установлен в системе (рекомендуется).

    Например:

    var options = new PdfLoadOptions()
    {
        PreserveEmbeddedFonts = PropertyState.Enabled
    };
    
    DocumentCore dc = DocumentCore.Load("input.pdf", options);
        
    Также добавлена и улучшена поддержка встроенных шрифтов в DOCX.
    Согласно примечаниям к выпуску:
    • ✅ Читает файлы DOCX, содержащие встроенные шрифты.
    • ✅ Сохраняет встроенные шрифты во время обработки документа.
    • ✅ Постоянно улучшаются параметры выбора шрифтов, что уменьшает размер документа при сохранении качества отображения.

    Обработка шрифтов

    Если необходимый шрифт недоступен, SautinSoft предоставляет:

    • Обнаружение отсутствующих шрифтов (FontSettingsMissingFonts)
    • Замена шрифтов (FontSettingsAddFontSubstitutes)
    • События выбора шрифтов для пользовательской логики замены

    Юникод и расширенные шрифты Поддержка

    В последних версиях также расширена поддержка следующих шрифтов:
    • Шрифты TrueType
    • Шрифты Unicode
    • Лигатуры OpenType
    • CJK (китайский, японский, корейский)
    • WOFF и другие форматы шрифтов
    • Специальные глифы, орнаменты и символьные шрифты.

2026.7 - Июль, 2026
Это самое масштабное обновление за последние несколько месяцев (с января 2026 г.). Мы подробнее опишем, что было исправлено/улучшено и почему вам следует обновиться:

  • Стабильность компонентов в многопоточном режиме.
Наши библиотеки предлагают больше функциональности, чем простое преобразование форматов. Мы устранили нестабильность и критические ошибки (сбои), возникавшие при многопоточном преобразовании документов. За последние несколько месяцев была проделана обширная работа по ускорению однопоточного и многопоточного режимов, а также улучшено взаимодействие между PDF, DOCX, HTML, RTF, Excel и другими приложениями. При реализации параллелизма в C# учитывайте специфику ваших задач:
  • Parallel.ForEachAsync (рекомендуется): для задач, интенсивно использующих ввод-вывод (дисковые и сетевые операции), без простоя потоков.
  • Parallel.ForEach: исключительно для задач, интенсивно использующих ЦП (вычисления, парсинг в памяти).

В настоящее время гарантируется стабильная работа всей линейки продуктов SautinSoft.

  • Полная поддержка китайского, японского и корейского языков.
Для решения проблем обработки ряда азиатских языков был реализован новый алгоритм распознавания текста. Если исходный шрифт недоступен в операционной системе или не может быть обработан, система выполняет интеллектуальную замену. Альтернативный шрифт выбирается с полной точностью на основе ширины, высоты и геометрии столбцов (пример: "YouYuan" -> "SimSun").
  • Движок Excel. Читатель/Записыватель.
  • Мы добавили поддержку множества шрифтов Unicode в наш движок.

    2026.6 — Июнь, 2026
    Мы рады официально представить новую версию нашего SautinSoft.Excel 2026.6
    Давайте посмотрим, что нового:

    • Мы улучшили механизм обработки слоев, содержащих текст, изображения, фигуры и заливки.
    • Исправлены мелкие ошибки и неточности.

    2026.5 — Май, 2026
    Мы рады официально представить новую версию нашего SautinSoft.Excel 2026.5
    Давайте посмотрим, что нового:

    • В библиотеку внесены важные изменения.
    • Исправлены мелкие ошибки и неточности.
    • Внесено множество изменений в библиотеку для уменьшения количества выделений памяти и общего объема выделенной памяти.
    • Улучшен анализ листов Excel с поврежденными или некорректными структурами.

    От 5-ого мая:

    • В библиотеку внесены важные изменения.
    • Исправлены мелкие ошибки и неточности.
    • Исправлена ошибка, приводящая к некорректной обработке некоторых элементов при анализе документов Excel.

    2026.4 — Апрель, 2026
    Мы рады официально представить новую версию нашего SautinSoft.Excel 2026.4
    Давайте посмотрим, что нового:

    • Парсер изображений улучшает поведение оптимизации изображений за счет кодирования изображений.
      Благодаря этой модификации, пересжатие изображений теперь синхронизируется с выбранным кодированием в процессе оптимизации, что приводит к более стабильным результатам при изменении размера изображений, ограничении разрешения и настройке параметров качества.
    • PDF-движок и PDF-редактор: После выпуска версии 2026.4.X, в которой особое внимание уделено улучшению вычислений таблиц в HTML и PDF-ридерах, улучшенной поддержке ParagraphFormat и превосходному рендерингу, выпускаются частые обновления.
      Эти обновления включают специализированные версии, такие как PDF.Net, PDF Metamorphosis .Net, PDF Focus .Net, PDF Vision .Net, Document .Net, которые регулярно обновляются для обеспечения совместимости с платформой .NET.

    От 22-ого апреля:

    • Исправлены мелкие ошибки и неточности.
    • Улучшена обработка границ и полей таблиц в Excel: XLSX.

    2026.3 — Март, 2026

    Мы рады официально представить новую версию нашего SautinSoft.Excel 2026.3!
    Давайте посмотрим, что нового:

    • Исправлена ошибка, связанная с отсутствием некоторых специфических символов в результирующем файле.
    • Исправлены мелкие ошибки и неточности.

    2026.2 — Февраль, 2026

    Мы рады официально представить новую версию нашего SautinSoft.Excel 2026.2!
    Давайте посмотрим, что нового:

    • Исправлена ошибка, препятствовавшая созданию пустых файлов XLSX.
    • Повышена стабильность компонента в .Net 10.
    • Исправлены мелкие ошибки и неточности.

    От 19-ого, февраля:

    • Исправлена ошибка с пустыми ячейками.

    2026.1 — Январь, 2026
    Мы рады официально представить новую версию нашего SautinSoft.Excel 2026.1
    Давайте посмотрим, что нового:

    • Исправлены мелкие ошибки, обнаруженные и сообщенные нам нашими клиентами. Благодаря этому компонент стал работать без ошибок.
    • Добавлены новые функции и свойства.
    • Поддержка .NET 10.0: начиная с версии 2026.1.20 появились сборки SautinSoft, скомпилированные для унифицированной платформы .NET 10.0.

      .NET 10.0 support

    • Увеличена скорость обработки документов Word в 1,6 раза.
    • Улучшено качество преобразования HTML за счет добавления новых стилей, тегов и метаданных.
    • Оптимизировано время преобразования между форматами в 1,3 раза с использованием новых моделей движка PDF/WORD/EXCEL.
    • Добавлены новые исправления и патчи безопасности для соответствия мировым стандартам.
    • Общее качество наших компонентов улучшилось и стало более стабильным.

    2025.11 — Ноябрь, 2025

    Мы рады официально представить новую версию нашего SautinSoft.Excel 2025.11!
    Давайте посмотрим, что нового:

    • Скорость обработки файлов XLSX увеличена вдвое благодаря оптимизации параметров чтения структурированных данных.
    • Добавлена поддержка нескольких формул.
    • Учтены отзывы клиентов.
    • Повышено качество обработки табличных данных.
    • Улучшено форматирование ячеек.

    2025.10.17 - 17 октября, 2025

    Мы рады официально представить новую версию нашего SautinSoft.Excel 2025.10. Это обновление содержит усовершенствования, направленные на повышение точности визуальных и структурных элементов при обработке. Давайте посмотрим, что нового:

    • В этом выпуске улучшена обработка формул, что обеспечивает более точные вычисления и улучшенную совместимость со сложными электронными таблицами.
    • Также было устранено несколько незначительных проблем для обеспечения более стабильного и надежного преобразования.

    2025.8.12 - 12 августа, 2025

    Мы рады официально представить новую версию нашего SautinSoft.Excel 2025.8. Это обновление содержит усовершенствования, направленные на повышение точности визуальных и структурных элементов при обработке. Давайте посмотрим, что нового:

    • Улучшено преобразование файлов Excel для повышения точности и сохранения форматирования.
    • Улучшена обработка объединенных ячеек и сложных структур листов, что обеспечивает лучшую точность компоновки в экспортируемых форматах.
    • Исправлено несколько незначительных ошибок для повышения общей стабильности и производительности.

    2025.8.4 - 4 августа, 2025

    Мы рады официально представить новую версию нашего SautinSoft.Excel 2025.8. Это обновление содержит усовершенствования, направленные на повышение точности визуальных и структурных элементов при обработке. Давайте посмотрим, что нового:

    • В этом выпуске представлены усовершенствования в общем процессе преобразования файлов Excel.
    • Вывод в такие форматы, как DOCX, RTF и PDF, теперь более экономичен, позволяя разместить больше содержимого на каждой странице.
    • Мы также улучшили экспорт в формате XLSX и устранили несколько незначительных ошибок, чтобы повысить надежность и согласованность в различных сценариях.

    2025.6.5 - 5 июня, 2025

    Мы рады официально представить новую версию нашего SautinSoft.Excel 2025.6. Это обновление содержит усовершенствования, направленные на повышение точности визуальных и структурных элементов при обработке. Давайте посмотрим, что нового:

    • Улучшена обработка условного форматирования для обеспечения более точной цветопередачи в различных условиях ячейки.
    • Улучшена обработка изображений.
    • Также была улучшена визуализация фигур, благодаря чему повысилась точность цветопередачи и появилась поддержка сгруппированных фигур, что позволяет более точно отображать сложные макеты.
    • Также было исправлено несколько незначительных ошибок для улучшения общей стабильности.

    2025.4.23 - 4 апреля, 2025

    Мы рады официально представить новую версию нашего SautinSoft.Excel 2025.4. Давайте посмотрим, что нового:

    • Мы внедрили небольшие усовершенствования, направленные на повышение стабильности, отзывчивости и обеспечение равномерного повышенная согласованность при работе с различными файловыми структурами Excel. Теперь этот компонент лучше приспособлен для работы со сложными сценариями, обеспечивая при этом более плавное восприятие в целом.
    • Мы обновили поля содержимого по умолчанию, чтобы обеспечить лучшее выравнивание при экспорте в разные форматы. Кроме того, поддержка для более широкого спектра формул Excel была добавлена новая версия, позволяющая более точно интерпретировать и преобразовывать сложные вычисления.

    2025.2.6 - 6 февраля, 2025

    Мы рады сообщить об официальном выпуске SautinSoft.Excel 2025.2.6! SautinSoft.Excel - это отдельная сборка на C#, которая предоставляет вам полный набор API для работы (чтения, записи, редактирования, преобразования) с документами в форматах XLSX, XLS, CSV. Компонент полностью написан на 100% управляемом C# и поможет вам:

    • Создавать и редактировать файлы Excel (XLS, XLSX) на лету или на основе существующих документов.
    • Поддержка формул: добавлять, изменять и вычислять сложные формулы.
    • Параметры форматирования: настраивание стилей, шрифтов, цветов, границ, объединение ячеек и многое другое.
    • Обработка данных: работа с большими наборами данных, включая добавление, удаление и обновление строк и столбцов.
    • Интеграция с мультимедиа: вставка изображений, диаграмм и графиков.
    • Совместимость: чтение и запись файлов Excel, созданных в различных версиях Microsoft Excel.
    • Кроссплатформенная поддержка: совместимость с Windows, macOS и Linux.