Устранение неполадок
Распространённые проблемы и решения при работе с Aspose.PDF FOSS для .NET.
Загрузка документа
| Problem | Cause | Solution |
|---|
Document.Open бросает исключение при действительном PDF | Файл защищён паролем | Передайте пароль в конструкторе |
| Недостаточно памяти при больших PDF | Весь файл загружается в массив байтов | Обрабатывайте страницы по отдельности или используйте потоковую обработку |
Pages[0] бросает ошибку индекса | Страницы используют индексацию, начинающуюся с 1 | Используйте Pages[1] для первой страницы |
Аннотации
| Проблема | Причина | Решение |
|---|
| Аннотация не видна после сохранения | Прямоугольник имеет нулевую площадь или находится за пределами страницы | Убедитесь, что координаты находятся в пределах страницы MediaBox |
LinkAnnotation.Uri возвращает null | Ссылка использует действие GoTo или JavaScript | Решите через PdfAction.Create и проверьте ActionType |
Flatten() генерирует исключение | В аннотации отсутствует ссылка /P (страница) | Убедитесь, что аннотация была добавлена через Page.Annotations |
Извлечение текста
| Проблема | Причина | Решение |
|---|
| Извлечённый текст искажен | Нестандартная кодировка или сопоставление шрифтов CID | Проверьте встраивание шрифтов; отсканированные PDF могут потребовать OCR |
| Не найдено текстовых фрагментов | Содержимое страницы — растровое изображение | Используйте OCR перед извлечением текста |
| Регулярное выражение не возвращает совпадений | Разметка текста PDF вставляет пробелы | Используйте более свободный шаблон или нормализуйте пробелы |
Рендеринг и конверсия
| Problem | Cause | Solution |
|---|
| Rendered image is blurry | Resolution too low | Increase DPI in Resolution constructor |
| HTML output missing images | External image paths not configured | Use HtmlSaveOptions with embedded images |
| PDF/A conversion removes annotations | Target profile disallows annotations | Use PDF/A-2 or PDF/A-3 |
Поля формы
| Проблема | Причина | Решение |
|---|
| Значение поля пусто | Поле не имеет записи /V | Проверьте, что field.Value не равно null |
FillField не оказывает эффекта | Несоответствие имени поля | Используйте Form.FieldNames для списка доступных имен |
| ExportToJson возвращает пустой вывод | Аннотация виджета некорректно приведена | Убедитесь, что аннотация является WidgetAnnotation |
Общие рекомендации
- Всегда оборачивайте
Document в using, чтобы освободить дескрипторы файлов. - Используйте
Document.Open(byte[]) для потоков в памяти, чтобы избежать блокировок файлов. - Проверьте
doc.Pages.Count перед доступом к страницам по индексу. - Сохраняйте документ один раз после всех изменений для лучшей производительности.
См. также