PDF in Excel und Markdown konvertieren

PDF in Excel und Markdown konvertieren

Dieser Leitfaden zeigt, wie man ein PDF in eine Excel (.xlsx) Arbeitsmappe oder in Markdown konvertiert und wie man ein PDF aus beiden Formaten wieder lädt. Document führt die Konvertierung in beide Richtungen durch; ExcelSaveOptions und MarkdownSaveOptions steuern den Export, und ExcelLoadOptions und MarkdownLoadOptions steuern den Import. Seit Version 26.9.0.


PDF zu XLSX

Im PDF erkannte Tabellen werden zu Arbeitsblatt-Gittern mit typisierten Zellen — Zahlen, Datumsangaben, Booleans, Währungen und Prozentsätze werden als echte Excel-Werte statt als Text geschrieben — und die ursprüngliche Formatierung (Schriftart/Größe, Textfarbe, Zellfüllung, Rahmen, Zeilenhöhen, Spaltenbreiten, Ausrichtung, zusammengeführte Zellen) wird übernommen. Bilder in Tabellenzellen werden als Zeichnungen eingebettet.

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 (ein Alias, SaveFormat.Excel, wird ebenfalls akzeptiert) liefert dasselbe Ergebnis mit den Standardoptionen: doc.save("report.xlsx", SaveFormat.Xlsx). Das eigene ExcelFormat-Enum von ExcelSaveOptions akzeptiert außerdem XmlSpreadSheet2003, CSV und ODS für die Aspose.PDF API-Kompatibilität, aber diese Bibliothek schreibt immer ein .xlsx-Paket, unabhängig davon, welcher Wert gesetzt ist. Sie können auch mit doc.save(OutputStream, ExcelSaveOptions) in einen Stream schreiben.


XLSX zu PDF, einschließlich Live-Formularen

Laden Sie eine .xlsx-Arbeitsmappe über einen Document-Konstruktor, der ExcelLoadOptions entgegennimmt. Jeder Arbeitsblatt wird zu einer PDF-Tabelle mit derselben Zelltypisierung und Formatierungsunterstützung wie in der Export-Richtung.

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

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

Das Einstellen von ExcelLoadOptions.setInteractiveForms(true) verwandelt numerische und Beschriftungszellen in ein „Live“-PDF-Formular anstelle von statischem Text: Numerische Zellen werden zu editierbaren Textfeldern, Formelfelder zu schreibgeschützten Feldern, die aus ihren Eingaben neu berechnet werden, und Beschriftungs- oder Konstantenzellen bleiben statischer Text, sofern nicht eine andere Formel sie referenziert. ExcelFormulaTranslator übersetzt jede Formel in Acrobat JavaScript; eine Formel, deren Funktion nicht unterstützt wird, fällt auf ihren zuletzt berechneten statischen Wert zurück, sodass das Feld weiterhin die korrekte Zahl anzeigt. Die Neuberechnung selbst läuft nur in einem Viewer mit einer forms/JavaScript-Engine — Adobe Acrobat oder Foxit; ein Viewer ohne diese Engine zeigt nur die eingebetteten Werte, ohne Live-Neuberechnung.

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

Document projiziert ein PDF zu CommonMark / GitHub-basiertem Markdown: Überschriften, Absätze, Listen, Tabellen, Hervorhebungen (fett/kursiv/durchgestrichen), Inline- und Block-Code, Links, Bilder und Fußnoten.

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 liefert dasselbe Ergebnis mit den Standardoptionen: doc.save("article.md", SaveFormat.Markdown). Document.markdownText(MarkdownSaveOptions) gibt das Markdown als String zurück, anstatt eine Datei zu schreiben (es gibt keinen separaten “Markdown text”-Accessor — diese Methode ist die zu verwendende für ein Ergebnis im Speicher).


Markdown zu PDF

Lade eine Markdown-Datei über einen Document-Konstruktor, der MarkdownLoadOptions entgegennimmt. Ein handgeschriebener CommonMark/GFM-Teilparser liest die Quelle: Überschriften, Absätze, Listen, Tabellen, Hervorhebungen, Code, Links, Bilder, Blockzitate und Fußnoten. Exotisches HTML, das im Markdown eingebettet ist, wird nicht vollständig reproduziert.

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

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

Tipps und bewährte Verfahren

  • Die Treue bezieht sich auf die Struktur, nicht auf pixelgenaue Übereinstimmung für beide Formate: Konvertierungen erhalten Inhalt, Struktur, Bilder und Seitengeometrie, jedoch nicht das exakt gerenderte Erscheinungsbild.
  • ExcelSaveOptions.ExcelFormat und das MarkdownSaveOptions Strukturelle Flags ändern nur das output Paketformat oder Heuristiken — die tatsächlichen Werte, mit denen Ihr PDF getaggt wurde, bestimmen weiterhin, was als Tabelle, Überschrift oder Liste erkannt wird.
  • Bei Live-XLSX-Formularen sollten die eingebetteten Zellwerte als korrekter Fallback behandelt werden: Nur ein formularfähiger Viewer berechnet Formeln beim Öffnen neu.

Häufige Probleme

ProblemUrsacheLösung
XLSX-Ausgabe hat immer eine .xlsx-Erweiterung, selbst nachdem ExcelFormat.CSV oder ODS eingestellt wurde.Der FOSS-Writer serialisiert immer ein OOXML .xlsx-Paket; die anderen ExcelFormat-Werte existieren nur für die Aspose.PDF API-KompatibilitätBehandle die Ausgabe als .xlsx, ungeachtet des von dir gesetzten ExcelFormat-Werts.
Ein neu berechnendes XLSX-Formular zeigt statische Zahlen anstelle von Live-Formeln.Der PDF-Viewer hat keine forms/JavaScript-Engine.Öffne die Datei in Adobe Acrobat oder Foxit, um die Live-Neuberechnung zu sehen.
Eine Formezelle zeigt einen veraltet wirkenden Wert an.ExcelFormulaTranslator unterstützt die Funktion dieser Formel nicht.Dies ist der dokumentierte Fallback: Das Feld behält seinen zuletzt berechneten statischen Wert bei.

FAQ

Kann ich Markdown als String statt einer Datei erhalten?

Ja — rufen Sie Document.markdownText(MarkdownSaveOptions) auf; es gibt den Markdown-Text direkt zurück, anstatt ihn in eine Datei zu schreiben.

Unterstützt der XLSX-Importer echte Excel-Formeln?

Nur wenn ExcelLoadOptions.setInteractiveForms(true) gesetzt ist und nur der Funktionsunterbereich, den ExcelFormulaTranslator in Acrobat JavaScript übersetzen kann. Alles andere fällt auf den zuletzt berechneten statischen Wert der Formel im Quell-Arbeitsbuch zurück.


API Reference Zusammenfassung

Klasse/MethodeBeschreibung
ExcelSaveOptionsOptimiert den PDF-zu-XLSX-Export
ExcelLoadOptionsOptimiert den XLSX-zu-PDF-Import, einschließlich Live-Formularen
ExcelFormatZieltabellenkalkulationsvariante, die von ExcelSaveOptions akzeptiert wird
ExcelFormulaTranslatorÜbersetzt Excel-Formeln in Acrobat JavaScript für Live-Formulare
MarkdownSaveOptionsOptimiert den PDF-zu-Markdown-Export
MarkdownLoadOptionsOptimiert den Markdown-zu-PDF-Import
Document.save(String, SaveFormat) / `Document.save(String, ExcelSaveOptionsMarkdownSaveOptions)`
Document.markdownText(MarkdownSaveOptions)Gibt das Markdown als String zurück

Siehe auch

 Deutsch