Konvertera PDF till Excel och Markdown

Konvertera PDF till Excel och Markdown

Konvertera PDF till Excel och Markdown

Denna guide visar hur man konverterar en PDF till en Excel (.xlsx) arbetsbok eller till Markdown, samt hur man laddar en PDF tillbaka från något av formaten. Document utför konverteringen i båda riktningarna; ExcelSaveOptions och MarkdownSaveOptions finjusterar exporten, och ExcelLoadOptions och MarkdownLoadOptions finjusterar importen. Sedan 26.9.0.


PDF till XLSX

Tabeller som identifieras i PDF-filen blir kalkylarksrutnät med typade celler — tal, datum, booleska värden, valuta och procentsatser skrivs som faktiska Excel-värden snarare än som text — och källstilen (teckensnitt/familj, storlek, textfärg, cellfyllning, kanter, radhöjder, kolumnbredder, justering, sammanslagna celler) överförs. Bilder i tabellceller bäddas in som teckningar.

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 (ett alias, SaveFormat.Excel, accepteras också) ger samma resultat med standardalternativ: doc.save("report.xlsx", SaveFormat.Xlsx). ExcelSaveOptionss egen ExcelFormat-enum accepterar också XmlSpreadSheet2003, CSV och ODS för Aspose.PDF API-kompatibilitet, men detta bibliotek skriver alltid ett .xlsx-paket oavsett vilket värde som är satt. Du kan också skriva till en ström med doc.save(OutputStream, ExcelSaveOptions).


XLSX till PDF, inklusive interaktiva formulär

Läs in en .xlsx-arbetsbok via en Document-konstruktör som tar ExcelLoadOptions. Varje blad blir en PDF-tabell med samma celltypning och stilstöd som i export-riktningen.

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

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

Inställning ExcelLoadOptions.setInteractiveForms(true) omvandlar numeriska och etikettceller till ett ”live” PDF-formulär istället för statisk text: numeriska celler blir redigerbara textfält, formelceller blir skrivskyddade fält som beräknas om från sina indata, och etikett- eller konstantceller förblir statisk text såvida inte en annan formel refererar till dem. ExcelFormulaTranslator översätter varje formel till Acrobat JavaScript; en formel vars funktion den inte stödjer faller tillbaka på sitt senast beräknade statiska värde, så fältet visar fortfarande rätt siffra. Omräkningen sker endast i en visare med en forms/JavaScript-motor — Adobe Acrobat eller Foxit; en visare utan den motorn visar bara de inbakade värdena, utan live-omräkning.

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

Document projicerar en PDF till CommonMark / GitHub-flavorad Markdown: rubriker, stycken, listor, tabeller, betoning (fet/kursiv/genomstruken), inline- och inramad kod, länkar, bilder och fotnoter.

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 ger samma resultat med standardalternativ: doc.save("article.md", SaveFormat.Markdown). Document.markdownText(MarkdownSaveOptions) returnerar Markdown som en String istället för att skriva en fil (det finns ingen separat ”Markdown-text”-accessor — denna metod är den som ska anropas för ett resultat i minnet).


Markdown till PDF

Läs in en Markdown-fil via en Document-konstruktor som tar MarkdownLoadOptions. En handskriven CommonMark/GFM-delmängdsparser läser källan: rubriker, stycken, listor, tabeller, betoning, kod, länkar, bilder, blockcitat och fotnoter. Exotisk HTML inbäddad i Markdown återges inte fullt ut.

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

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

Tips och bästa praxis

  • Noggrannheten är strukturell, inte pixel-exakt för något av formaten: konverteringar bevarar innehåll, struktur, bilder och sidgeometri, inte det exakta renderade utseendet.
  • ExcelSaveOptions.ExcelFormat och MarkdownSaveOptions strukturella flaggor ändrar bara output paketformat eller heuristik — de faktiska värdena som din PDF markerades med styr fortfarande vad som upptäcks som en tabell, en rubrik eller en lista.
  • För levande XLSX-formulär, behandla de inbakade cellvärdena som korrekt reserv: endast en formulärkapabel visare beräknar om formler vid öppning.

Vanliga problem

ProblemOrsakÅtgärd
XLSX-utdata har alltid en .xlsx-filändelse även efter att ha ställt in ExcelFormat.CSV eller ODSFOSS-skrivaren serialiserar alltid ett OOXML .xlsx-paket; de andra ExcelFormat-värdena finns endast för Aspose.PDF API-kompatibilitetBehandla utdata som .xlsx oavsett vilket ExcelFormat-värde du anger
Ett omräknande XLSX-formulär visar statiska tal istället för levande formlerPDF-visaren har ingen forms/JavaScript motorÖppna filen i Adobe Acrobat eller Foxit för att se levande omräkning
En formelcell visar ett värde som ser föråldrat utExcelFormulaTranslator stöder inte den formelns funktionDetta är den dokumenterade reservlösningen: fältet behåller sitt senast beräknade statiska värde

FAQ

Kan jag få Markdown som en String istället för en fil?

Ja — anropa Document.markdownText(MarkdownSaveOptions); den returnerar Markdown-texten direkt istället för att skriva den till en fil.

Stöder XLSX-importören riktiga Excel-formler?

Endast när ExcelLoadOptions.setInteractiveForms(true) är inställd, och endast den delmängd av funktioner som ExcelFormulaTranslator kan översätta till Acrobat JavaScript. Allt annat faller tillbaka på formelns senast beräknade statiska värde i källarboken.


API Reference Sammanfattning

Klass/MetodBeskrivning
ExcelSaveOptionsFinjusterar PDF till XLSX-export
ExcelLoadOptionsFinjusterar XLSX till PDF-import, inklusive live-formulär
ExcelFormatMålkalkylbladsvariant som accepteras av ExcelSaveOptions
ExcelFormulaTranslatorÖversätter Excel-formler till Acrobat JavaScript för live-formulär
MarkdownSaveOptionsFinjusterar PDF till Markdown-export
MarkdownLoadOptionsFinjusterar Markdown till PDF-import
Document.save(String, SaveFormat) / `Document.save(String, ExcelSaveOptionsMarkdownSaveOptions)`
Document.markdownText(MarkdownSaveOptions)Returnerar Markdown som en String

Se även

 Svenska