Převést PDF do Excelu a Markdownu

Převést PDF do Excelu a Markdownu

Převést PDF do Excelu a Markdownu

Tento průvodce ukazuje, jak převést PDF do sešitu Excel (.xlsx) nebo do Markdownu a jak načíst PDF zpět z libovolného formátu. Document provádí konverzi v obou směrech; ExcelSaveOptions a MarkdownSaveOptions ladí export a ExcelLoadOptions a MarkdownLoadOptions ladí import. Od verze 26.9.0.


PDF do XLSX

Tabulky detekované v PDF se stanou mřížkami listu s typovanými buňkami — čísla, data, booleovské hodnoty, měny a procenta jsou zapisovány jako skutečné hodnoty Excelu místo textu — a původní stylování (písmo/velikost, barva textu, výplň buňky, ohraničení, výšky řádků, šířky sloupců, zarovnání, sloučené buňky) je zachováno. Obrázky uvnitř buněk tabulky jsou vloženy jako kresby.

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 (alias, SaveFormat.Excel, je také akceptován) dává stejný výsledek s výchozími možnostmi: doc.save("report.xlsx", SaveFormat.Xlsx). Enum ExcelFormat v ExcelSaveOptions také přijímá XmlSpreadSheet2003, CSV a ODS pro kompatibilitu s Aspose.PDF API, ale tato knihovna vždy zapisuje balíček .xlsx bez ohledu na nastavenou hodnotu. Také můžete zapisovat do proudu pomocí doc.save(OutputStream, ExcelSaveOptions).


XLSX do PDF, včetně živých formulářů

Načtěte sešit .xlsx přes konstruktor Document, který přijímá ExcelLoadOptions. Každý list se stane PDF tabulkou se stejným typováním buněk a podporou stylování jako při exportu.

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

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

Nastavení ExcelLoadOptions.setInteractiveForms(true) převádí číselné a popiskové buňky na „živý“ PDF formulář místo statického textu: číselné buňky se stávají editovatelnými textovými poli, buňky s formulí se mění na pole jen pro čtení, která přepočítávají své vstupy, a popiskové nebo konstantní buňky zůstávají statickým textem, pokud na ně neodkazuje jiná formule. ExcelFormulaTranslator překládá každou formuli do Acrobat JavaScript; formule, jejíž funkci nepodporuje, se vrátí k poslední vypočtené statické hodnotě, takže pole stále zobrazuje správné číslo. Samotné přepočítání probíhá jen v prohlížeči s engine forms/JavaScript — Adobe Acrobat nebo Foxit; prohlížeč bez tohoto enginu zobrazí jen zapečené hodnoty, bez živého přepočítání.

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 do Markdownu

Document převádí PDF na CommonMark / GitHub-flavorovaný Markdown: nadpisy, odstavce, seznamy, tabulky, zvýraznění (tučné/kurzíva/přeškrtnutí), vložený a blokový kód, odkazy, obrázky a poznámky pod čarou.

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 poskytuje stejný výsledek s výchozími možnostmi: doc.save("article.md", SaveFormat.Markdown). Document.markdownText(MarkdownSaveOptions) vrací Markdown jako String místo zápisu do souboru (neexistuje samostatný přístup k „Markdown text“ — tato metoda je ta, která se má použít pro výsledek v paměti).


Markdown do PDF

Načtěte soubor Markdown pomocí konstruktoru Document, který přijímá MarkdownLoadOptions. Ručně psaný parser podmnožiny CommonMark/GFM čte zdroj: nadpisy, odstavce, seznamy, tabulky, zvýraznění, kód, odkazy, obrázky, blokové citace a poznámky pod čarou. Exotické HTML vložené do Markdownu není plně reprodukováno.

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

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

Tipy a osvědčené postupy

  • Věrnost je strukturální, nikoli pixelově přesná pro oba formáty: převody zachovávají obsah, strukturu, obrázky a geometrické uspořádání stránek, nikoli přesný vzhled při vykreslení.
  • ExcelSaveOptions.ExcelFormat a MarkdownSaveOptions strukturální příznaky mění pouze output formát balíčku nebo heuristiky — skutečné hodnoty, se kterými byl váš PDF označen, stále určují, co je detekováno jako tabulka, nadpis nebo seznam.
  • U živých formulářů XLSX považujte přednastavené hodnoty buněk za správný fallback: pouze prohlížeč podporující formuláře přepočítá vzorce při otevření.

Časté problémy

ProblémPříčinaOprava
Výstup XLSX má vždy příponu .xlsx, i po nastavení ExcelFormat.CSV nebo ODSFOSS zapisovač vždy serializuje OOXML balíček .xlsx; ostatní hodnoty ExcelFormat existují pouze pro kompatibilitu s Aspose.PDF APIPovažujte výstup za .xlsx bez ohledu na hodnotu ExcelFormat, kterou nastavíte
Přepočítávající formulář XLSX zobrazuje pevná čísla místo živých vzorcůProhlížeč PDF nemá žádný engine formulářů/JavaScriptOtevřete soubor v Adobe Acrobat nebo Foxit, abyste viděli živé přepočítání
Buňka s vzorcem zobrazuje zastaralou hodnotuExcelFormulaTranslator nepodporuje funkci tohoto vzorceToto je dokumentovaný záložní mechanismus: pole si uchovává svou poslední vypočtenou statickou hodnotu

FAQ

Mohu získat Markdown jako String místo souboru?

Ano — zavolejte Document.markdownText(MarkdownSaveOptions); vrátí text Markdown přímo místo zápisu do souboru.

Podporuje importér XLSX skutečné Excelové vzorce?

Pouze když je nastaveno ExcelLoadOptions.setInteractiveForms(true) a pouze podmnožina funkcí, které ExcelFormulaTranslator dokáže přeložit do Acrobat JavaScript. Všechno ostatní se vrátí k poslední vypočtené statické hodnotě vzorce ve zdrojovém sešitu.


API Reference Shrnutí

Třída/MetodaPopis:
ExcelSaveOptionsLadí export PDF do XLSX
ExcelLoadOptionsLadí import XLSX do PDF, včetně živých formulářů
ExcelFormatCílová varianta tabulky akceptována ExcelSaveOptions
ExcelFormulaTranslatorPřekládá Excelové vzorce do Acrobat JavaScript pro živé formuláře
MarkdownSaveOptionsLadí export PDF do Markdown
MarkdownLoadOptionsLadí import Markdown do PDF
Document.save(String, SaveFormat) / `Document.save(String, ExcelSaveOptionsMarkdownSaveOptions)`
Document.markdownText(MarkdownSaveOptions)Vrací Markdown jako String

Viz také:

 Čeština