PDF naar Excel en Markdown converteren

PDF converteren naar Excel en Markdown

Deze gids laat zien hoe je een PDF converteert naar een Excel (.xlsx) werkmap of naar Markdown, en hoe je een PDF terug laadt vanuit elk formaat. Document voert de conversie in beide richtingen uit; ExcelSaveOptions en MarkdownSaveOptions verfijnen de export, en ExcelLoadOptions en MarkdownLoadOptions verfijnen de import. Sinds 26.9.0.


PDF naar XLSX

Tabellen die in de PDF worden gedetecteerd worden werkbladroosters met getypeerde cellen — cijfers, datums, booleans, valuta en percentages worden geschreven als echte Excel-waarden in plaats van tekst — en de bronopmaak (lettertype/familie, grootte, tekstkleur, celvulling, randen, rijhoogtes, kolombreedtes, uitlijning, samengevoegde cellen) wordt overgenomen. Afbeeldingen in tabelcellen worden ingebed als tekeningen.

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 (een alias, SaveFormat.Excel, wordt ook geaccepteerd) geeft hetzelfde resultaat met standaardopties: doc.save("report.xlsx", SaveFormat.Xlsx). De eigen ExcelFormat enum van ExcelSaveOptions accepteert ook XmlSpreadSheet2003, CSV en ODS voor Aspose.PDF API compatibiliteit, maar deze bibliotheek schrijft altijd een .xlsx pakket, ongeacht welke waarde is ingesteld. Je kunt ook naar een stream schrijven met doc.save(OutputStream, ExcelSaveOptions).


XLSX naar PDF, inclusief live formulieren

Laad een .xlsx werkmap via een Document constructor die ExcelLoadOptions accepteert. Elk blad wordt een PDF-tabel met dezelfde celtypisatie en opmaakondersteuning als in de exportrichting.

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

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

Het instellen van ExcelLoadOptions.setInteractiveForms(true) verandert numerieke en labelcellen in een “live” PDF-formulier in plaats van statische tekst: numerieke cellen worden bewerkbare tekstvelden, formulecellen worden alleen-lezen velden die herberekenen op basis van hun invoer, en label- of constante cellen blijven statische tekst tenzij een andere formule ernaar verwijst. ExcelFormulaTranslator vertaalt elke formule naar Acrobat JavaScript; een formule waarvan de functie niet wordt ondersteund, valt terug op de laatst berekende statische waarde, zodat het veld nog steeds het juiste getal toont. Herberekening zelf wordt alleen uitgevoerd in een viewer met een forms/JavaScript engine — Adobe Acrobat of Foxit; een viewer zonder die engine toont alleen de ingebakken waarden, zonder live herberekening.

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 naar Markdown

Document projecteert een PDF naar CommonMark / GitHub-geflavorde Markdown: koppen, alinea’s, lijsten, tabellen, nadruk (vet/cursief/doorgestreept), inline en fenced code, links, afbeeldingen en voetnoten.

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 geeft hetzelfde resultaat met de standaardopties: doc.save("article.md", SaveFormat.Markdown). Document.markdownText(MarkdownSaveOptions) retourneert de Markdown als een String in plaats van een bestand te schrijven (er is geen afzonderlijke “Markdown-tekst” accessor — deze methode is de juiste om een in-memory resultaat te krijgen).


Markdown naar PDF

Laad een Markdown-bestand via een Document constructor die MarkdownLoadOptions accepteert. Een handgeschreven CommonMark/GFM-subset parser leest de bron: koppen, alinea’s, lijsten, tabellen, nadruk, code, links, afbeeldingen, blockquotes en voetnoten. Exotische HTML ingebed in de Markdown wordt niet volledig gereproduceerd.

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

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

Tips en best practices

  • Nauwkeurigheid is structureel, niet pixel-exact voor elk formaat: conversies behouden inhoud, structuur, afbeeldingen en paginageometrie, niet het exacte weergegeven uiterlijk.
  • ExcelSaveOptions.ExcelFormat en de MarkdownSaveOptions structurele vlaggen wijzigen alleen de output pakkettenformaat of heuristieken — de feitelijke waarden waarmee uw PDF is getagd blijven bepalen wat wordt gedetecteerd als een tabel, een kop of een lijst.
  • Voor live XLSX-formulieren, beschouw de ingebakken celwaarden als de juiste fallback: alleen een formulier-compatibele viewer herberekent formules bij het openen.

Veelvoorkomende problemen

ProbleemOorzaakOplossing
XLSX-uitvoer heeft altijd een .xlsx-extensie, zelfs na het instellen van ExcelFormat.CSV of ODSDe FOSS-schrijver serialiseert altijd een OOXML .xlsx-pakket; de andere ExcelFormat-waarden bestaan alleen voor Aspose.PDF API-compatibiliteitBehandel de output als .xlsx ongeacht de ExcelFormat waarde die je instelt
Een herberekenend XLSX-formulier toont statische cijfers in plaats van liveformulesDe PDF-viewer heeft geen forms/JavaScript engineOpen het bestand in Adobe Acrobat of Foxit om live herberekening te zien
Een formulecel toont een verouderde ogende waardeExcelFormulaTranslator ondersteunt die formulefunctie nietDit is de gedocumenteerde fallback: het veld behoudt zijn laatst berekende statische waarde

FAQ

Kan ik Markdown krijgen als een String in plaats van een bestand?

Ja — roep Document.markdownText(MarkdownSaveOptions) aan; het retourneert de Markdown-tekst direct in plaats van deze naar een bestand te schrijven.

Ondersteunt de XLSX-importeur echte Excel-formules?

Alleen wanneer ExcelLoadOptions.setInteractiveForms(true) is ingesteld, en alleen de subset van functies die ExcelFormulaTranslator kan vertalen naar Acrobat JavaScript. Alles andere valt terug op de laatst berekende statische waarde van de formule in de oorspronkelijke werkmap.


API Reference Samenvatting

Klasse/MethodeBeschrijving
ExcelSaveOptionsStemt de PDF-naar-XLSX-export af
ExcelLoadOptionsStemt de XLSX-naar-PDF-import af, inclusief live-formulieren
ExcelFormatDoel-spreadsheet-variant geaccepteerd door ExcelSaveOptions
ExcelFormulaTranslatorVertaalt Excel-formules naar Acrobat JavaScript voor live-formulieren
MarkdownSaveOptionsStemt de PDF-naar-Markdown-export af
MarkdownLoadOptionsStemt de Markdown-naar-PDF-import af
Document.save(String, SaveFormat) / `Document.save(String, ExcelSaveOptionsMarkdownSaveOptions)`
Document.markdownText(MarkdownSaveOptions)Retourneert de Markdown als een String

Zie ook

 Nederlands