Convertiți PDF în Excel și Markdown

Convertiți PDF în Excel și Markdown

Convertește PDF în Excel și Markdown

Acest ghid arată cum să convertești un PDF într-un registru de lucru Excel (.xlsx) sau în Markdown și cum să încarci un PDF înapoi din oricare dintre formate. Document efectuează conversia în ambele direcții; ExcelSaveOptions și MarkdownSaveOptions ajustează exportul, iar ExcelLoadOptions și MarkdownLoadOptions ajustează importul. Din versiunea 26.9.0.


PDF în XLSX

Tabelele detectate în PDF devin grile de foi de calcul cu celule tipizate — numerele, datele, valorile booleene, monedele și procentele sunt scrise ca valori reale Excel, nu ca text — iar stilizarea sursă (familia/fontul, dimensiunea fontului, culoarea textului, umplerea celulei, borduri, înălțimea rândurilor, lățimea coloanelor, alinierea, celulele unite) este păstrată. Imaginile din interiorul celulelor de tabel sunt încorporate ca desene.

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 (un alias, SaveFormat.Excel, este de asemenea acceptat) oferă același rezultat cu opțiunile implicite: doc.save("report.xlsx", SaveFormat.Xlsx). Enumul ExcelFormat propriu al ExcelSaveOptions acceptă, de asemenea, XmlSpreadSheet2003, CSV și ODS pentru compatibilitatea Aspose.PDF API, dar această bibliotecă scrie întotdeauna un pachet .xlsx indiferent de valoarea setată. Poți, de asemenea, să scrii într-un flux cu doc.save(OutputStream, ExcelSaveOptions).


XLSX în PDF, inclusiv formulare interactive

Încarcă un registru de lucru .xlsx printr-un constructor Document care primește ExcelLoadOptions. Fiecare foaie devine un tabel PDF cu același tip de celule și suport de stilizare ca în direcția de export.

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

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

Setarea ExcelLoadOptions.setInteractiveForms(true) transformă celulele numerice și etichetă într-un formular PDF „live” în loc de text static: celulele numerice devin câmpuri de text editabile, celulele cu formule devin câmpuri numai pentru citire care se recalculă din intrările lor, iar celulele de etichetă sau constante rămân text static, cu excepția cazului în care o altă formulă le referă. ExcelFormulaTranslator traduce fiecare formulă în Acrobat JavaScript; o formulă a cărei funcție nu este suportată revine la ultima valoare statică calculată, astfel că câmpul afișează în continuare numărul corect. Recalcularea însă rulează numai într-un vizualizator cu motor forms/JavaScript — Adobe Acrobat sau Foxit; un vizualizator fără acel motor afișează doar valorile încorporate, fără recalculare în timp real.

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 în Markdown

Document proiectează un PDF în CommonMark / GitHub-Flavored Markdown: titluri, paragrafe, liste, tabele, evidențiere (bold/italic/strikethrough), cod inline și cod bloc, linkuri, imagini și note de subsol.

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 oferă același rezultat cu opțiunile implicite: doc.save("article.md", SaveFormat.Markdown). Document.markdownText(MarkdownSaveOptions) returnează Markdown-ul ca un String în loc să scrie un fișier (nu există un acces separat la „Markdown text” — această metodă este cea de utilizat pentru un rezultat în memorie).


Markdown în PDF

Încarcă un fișier Markdown printr-un constructor Document care primește MarkdownLoadOptions. Un parser scris manual pentru subsetul CommonMark/GFM citește sursa: titluri, paragrafe, liste, tabele, evidențiere, cod, linkuri, imagini, citate în bloc și note de subsol. HTML exotic încorporat în Markdown nu este redat complet.

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

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

Sfaturi și cele mai bune practici

  • Fidelitatea este structurală, nu exactă la nivel de pixel pentru niciunul dintre formate: conversiile păstrează conținutul, structura, imaginile și geometria paginii, nu aspectul redat exact.
  • ExcelSaveOptions.ExcelFormat și MarkdownSaveOptions indicatorii structurali modifică doar output formatul pachetului sau euristicile — valorile reale cu care PDF-ul tău a fost etichetat continuă să determine ce este detectat ca tabel, titlu sau listă.
  • Pentru formularele XLSX live, tratați valorile încorporate în celule ca fallback corect: doar un vizualizator capabil de formulare recalculează formulele la deschidere.

Probleme comune

ProblemăCauzăRemediere
Ieșirea XLSX are întotdeauna o extensie .xlsx chiar și după setarea ExcelFormat.CSV sau ODSGeneratorul FOSS serializează întotdeauna un pachet OOXML .xlsx; celelalte valori ExcelFormat există numai pentru compatibilitate Aspose.PDF APITratează ieșirea ca .xlsx indiferent de valoarea ExcelFormat pe care o setezi
Un formular XLSX care se recalculează afișează numere statice în loc de formule liveVizualizatorul PDF nu are motor de formulare/JavaScriptDeschide fișierul în Adobe Acrobat sau Foxit pentru a vedea recalcularea în timp real
O celulă cu formulă afișează o valoare învechităExcelFormulaTranslator nu acceptă funcția acelei formuleAcesta este fallback-ul documentat: câmpul păstrează ultima valoare statică calculată

FAQ

Pot obține Markdown ca String în loc de un fișier?

Da — apelați Document.markdownText(MarkdownSaveOptions); returnează textul Markdown direct în loc să îl scrie într-un fișier.

Importatorul XLSX suportă formule reale Excel?

Doar când ExcelLoadOptions.setInteractiveForms(true) este setat și numai submulțimea de funcții ExcelFormulaTranslator poate fi tradusă în Acrobat JavaScript. Tot restul revine la valoarea statică ultimă calculată a formulei în registrul sursă.


API Reference Rezumat

Clasă/MetodăDescriere:
ExcelSaveOptionsAjustează exportul PDF în XLSX
ExcelLoadOptionsAjustează importul XLSX în PDF, inclusiv formularele live
ExcelFormatVarianta de foaie de calcul vizată acceptată de ExcelSaveOptions
ExcelFormulaTranslatorTraduce formulele Excel în Acrobat JavaScript pentru formularele live
MarkdownSaveOptionsReglează exportul PDF în Markdown
MarkdownLoadOptionsReglează importul Markdown în PDF
Document.save(String, SaveFormat) / `Document.save(String, ExcelSaveOptionsMarkdownSaveOptions)`
Document.markdownText(MarkdownSaveOptions)Returnează Markdown-ul ca String

Vezi și:

 Română