Конвертувати PDF у Excel та Markdown

Конвертувати PDF у Excel та Markdown

Конвертувати PDF у Excel та Markdown

Цей посібник показує, як конвертувати PDF у книгу Excel (.xlsx) або у Markdown, а також як завантажити PDF назад з будь-якого з форматів. Document виконує конвертацію в обох напрямках; ExcelSaveOptions і MarkdownSaveOptions налаштовують експорт, а ExcelLoadOptions і MarkdownLoadOptions — імпорт. З версії 26.9.0.


PDF у XLSX

Таблиці, виявлені у PDF, перетворюються у сітки листів з типізованими клітинками— числа, дати, булеві значення, валюта та відсотки записуються як реальні значення Excel, а не як текст— і стиль джерела (шрифт/розмір, колір тексту, заливка клітинки, межі, висота рядків, ширина колонок, вирівнювання, об’єднані клітинки) зберігається. Зображення всередині клітинок таблиці вбудовуються як рисунки.

import org.aspose.pdf.Document;
import org.aspose.pdf.ExcelSaveOptions;

try (Document doc = new Document("report.pdf")) {
    ExcelSaveOptions options = new ExcelSaveOptions();
    options.setFormat(ExcelSaveOptions.ExcelFormat.XLSX); // default
    options.setMinimizeTheNumberOfWorksheets(true);        // merge pages onto fewer sheets
    options.setInsertBlankColumnAtFirst(false);            // no leading spacer column
    options.setUniformWorksheets(false);                   // allow per-sheet column widths
    options.setStructuralHeuristics(true);                 // recover tables on untagged PDFs
    options.setSuppressRunningHeadersFooters(true);         // drop repeated page furniture
    doc.save("report.xlsx", options);
}

SaveFormat.Xlsx (псевдонім, SaveFormat.Excel, також приймається) дає той самий результат з параметрами за замовчуванням: doc.save("report.xlsx", SaveFormat.Xlsx). Перелік ExcelFormat у ExcelSaveOptions також приймає XmlSpreadSheet2003, CSV і ODS для сумісності Aspose.PDF API, але ця бібліотека завжди записує пакет .xlsx незалежно від встановленого значення. Ви також можете записати у потік за допомогою doc.save(OutputStream, ExcelSaveOptions).


XLSX у PDF, включаючи живі форми

Завантажте книгу .xlsx за допомогою конструктора Document, який приймає ExcelLoadOptions. Кожен лист перетворюється у таблицю PDF з тією ж підтримкою типізації клітинок та стилізації, що й під час експорту.

import org.aspose.pdf.Document;
import org.aspose.pdf.ExcelLoadOptions;

try (Document doc = new Document("book.xlsx", new ExcelLoadOptions())) {
    doc.save("book.pdf");
}

Налаштування ExcelLoadOptions.setInteractiveForms(true) перетворює числові та міткові комірки у “живу” форму PDF замість статичного тексту: числові комірки стають редагованими полями вводу, комірки формули – полями лише для читання, які переобчислюються за їхніми вхідними даними, а міткові чи константні комірки залишаються статичним текстом, якщо їх не посилається інша формула. ExcelFormulaTranslator перетворює кожну формулу у Acrobat JavaScript; формула, функцію якої система не підтримує, повертається до останнього обчисленого статичного значення, тож поле все одно показує правильне число. Саме переобчислення виконується лише у переглядачі з движком forms/JavaScript — Adobe Acrobat або Foxit; переглядач без цього двигуна показує лише вбудовані значення без живого переобчислення.

import org.aspose.pdf.Document;
import org.aspose.pdf.ExcelLoadOptions;

ExcelLoadOptions options = new ExcelLoadOptions();
options.setInteractiveForms(true); // cells → fields, formulas → calculate actions

try (Document doc = new Document("invoice.xlsx", options)) {
    doc.save("invoice-live.pdf");
}

PDF у Markdown

Document проєктує PDF у CommonMark / GitHub-стильний Markdown: заголовки, абзаци, списки, таблиці, виділення (жирний/курсив/закреслення), вбудований та блоковий код, посилання, зображення та виноски.

import org.aspose.pdf.Document;
import org.aspose.pdf.MarkdownSaveOptions;

try (Document doc = new Document("article.pdf")) {
    MarkdownSaveOptions options = new MarkdownSaveOptions();
    options.setStructuralHeuristics(true);          // recover headings/lists/tables
    options.setSuppressRunningHeadersFooters(true);  // drop repeated page furniture
    options.setRasterizeVectorGraphics(true);        // charts/shapes -> referenced images
    doc.save("article.md", options);
}

SaveFormat.Markdown дає той самий результат з параметрами за замовчуванням: doc.save("article.md", SaveFormat.Markdown). Document.markdownText(MarkdownSaveOptions) повертає Markdown як String замість запису у файл (окремого “Markdown text” accessor’а не існує — цей метод слід викликати для отримання результату в пам’яті).


Markdown у PDF

Завантажте файл Markdown через конструктор Document, який приймає MarkdownLoadOptions. Ручний парсер підмножини CommonMark/GFM читає джерело: заголовки, абзаци, списки, таблиці, виділення, код, посилання, зображення, блокові цитати та виноски. Екзотичний HTML, вбудований у Markdown, не відтворюється повністю.

import org.aspose.pdf.Document;
import org.aspose.pdf.MarkdownLoadOptions;

try (Document doc = new Document("README.md", new MarkdownLoadOptions())) {
    doc.save("README.pdf");
}

Поради та найкращі практики

  • Точність є структурною, а не піксельно-точною для будь-якого формату: перетворення зберігають вміст, структуру, зображення та геометрію сторінок, а не точний вигляд при рендерингу.
  • ExcelSaveOptions.ExcelFormat і MarkdownSaveOptions структурні прапорці лише змінюють output формат пакету або евристики — фактичні значення, якими ваш PDF був позначений, все ще визначають, що розпізнається як таблиця, заголовок або список.
  • Для живих форм XLSX розглядайте вбудовані значення клітинок як правильний запасний варіант: лише переглядач, який підтримує форми, переобчислює формули під час відкриття.

Поширені проблеми

ПроблемаПричинаВиправлення
Вивід XLSX завжди має розширення .xlsx, навіть після встановлення ExcelFormat.CSV або ODSFOSS-пишучий завжди серіалізує пакет OOXML .xlsx; інші значення ExcelFormat існують лише для сумісності Aspose.PDF APIРозглядайте вивід як .xlsx незалежно від значення ExcelFormat, яке ви встановлюєте
Перераховуюча форма XLSX показує статичні числа замість живих формулPDF-переглядач не має движка forms/JavaScript engineВідкрийте файл у Adobe Acrobat або Foxit, щоб побачити живе перерахування
Комірка з формулою показує застаріле значенняExcelFormulaTranslator не підтримує функцію цієї формулиЦе документований резервний варіант: поле зберігає своє останнє обчислене статичне значення

FAQ

Чи можу я отримати Markdown у вигляді String замість файлу?

Так — викличте Document.markdownText(MarkdownSaveOptions); вона повертає текст Markdown безпосередньо, а не записує його у файл.

Чи підтримує імпортер XLSX справжні формули Excel?

Лише коли встановлено ExcelLoadOptions.setInteractiveForms(true), і лише підмножина функцій ExcelFormulaTranslator може бути перекладена в Acrobat JavaScript. Усі інші випадки повертаються до останнього обчисленого статичного значення формули у вихідній робочій книзі.


API Reference Огляд

Клас/МетодОпис
ExcelSaveOptionsНалаштовує експорт PDF у XLSX
ExcelLoadOptionsНалаштовує імпорт XLSX у PDF, включаючи живі форми
ExcelFormatЦільовий варіант електронної таблиці, прийнятий ExcelSaveOptions
ExcelFormulaTranslatorПеретворює формули Excel у JavaScript Acrobat для живих форм
MarkdownSaveOptionsНалаштовує експорт PDF у Markdown
MarkdownLoadOptionsНалаштовує імпорт Markdown у PDF
Document.save(String, SaveFormat) / `Document.save(String, ExcelSaveOptionsMarkdownSaveOptions)`
Document.markdownText(MarkdownSaveOptions)Повертає Markdown як String

Дивіться також

 Українська