PDF átalakítása Excelbe és Markdownba

PDF átalakítása Excelbe és Markdownba

PDF konvertálása Excelre és Markdownra

Ez az útmutató bemutatja, hogyan lehet egy PDF-et Excel (.xlsx) munkafüzetre vagy Markdownra konvertálni, valamint hogyan lehet visszatölteni egy PDF-et bármelyik formátumból. Document mindkét irányban elvégzi a konverziót; ExcelSaveOptions és MarkdownSaveOptions finomhangolják az exportot, míg ExcelLoadOptions és MarkdownLoadOptions finomhangolják az importot. 26.9.0 óta.


PDF XLSX-be

A PDF-ben észlelt táblázatok munkalap-rácsokká alakulnak tipizált cellákkal — a számok, dátumok, logikai értékek, pénznemek és százalékok valós Excel-értékekként kerülnek írásra, nem szövegként — és a forrásstílus (betűtípus/méret, szövegszín, cella kitöltés, szegélyek, sormagasság, oszlopszélesség, igazítás, egyesített cellák) átkerül. A táblázatcellákban lévő képek rajzokként kerülnek beágyazásra.

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 (egy alias, SaveFormat.Excel, szintén elfogadott) ugyanazt az eredményt adja az alapértelmezett beállításokkal: doc.save("report.xlsx", SaveFormat.Xlsx). ExcelSaveOptions saját ExcelFormat enumja szintén elfogadja a XmlSpreadSheet2003, CSV és ODS értékeket a Aspose.PDF API kompatibilitás érdekében, de ez a könyvtár mindig egy .xlsx csomagot ír, függetlenül attól, hogy melyik érték van beállítva. Írhat szintén adatfolyamba a doc.save(OutputStream, ExcelSaveOptions) használatával.


XLSX PDF-be, élő űrlapokkal

Töltsön be egy .xlsx munkafüzetet egy Document konstruktoron keresztül, amely ExcelLoadOptions-t fogad. Minden munkalap PDF táblázattá alakul, ugyanazzal a cellatípus- és stílustámogatással, mint az export irányában.

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

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

Az ExcelLoadOptions.setInteractiveForms(true) beállítása a numerikus és címke cellákat „live” PDF űrlappá alakítja a statikus szöveg helyett: a numerikus cellák szerkeszthető szövegmezőkké válnak, a képletcellák csak olvasható mezőkké, amelyek újraszámolnak a bemenetek alapján, míg a címke- vagy állandó cellák statikus szöveg maradnak, hacsak egy másik képlet nem hivatkozik rájuk. ExcelFormulaTranslator minden képletet az Acrobat JavaScript formátumba fordít; egy olyan képlet, amelynek funkcióját nem támogatja, visszatér az utolsó kiszámított statikus értékére, így a mező továbbra is a helyes számot mutatja. Az újraszámolás csak olyan megjelenítőben fut, amelyik rendelkezik forms/JavaScript motorral – Adobe Acrobat vagy Foxit; egy olyan megjelenítő, amelyik nem rendelkezik ezzel a motorral, csak a beágyazott értékeket mutatja, élő újraszámolás nélkül.

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 Markdownra

Document egy PDF-t CommonMark / GitHub-ízesített Markdownra konvertál: címsorok, bekezdések, listák, táblázatok, hangsúlyozás (félkövér/dőlt/áthúzott), beágyazott és keretezett kód, linkek, képek és lábjegyzetek.

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 ugyanazt az eredményt adja az alapértelmezett beállításokkal: doc.save("article.md", SaveFormat.Markdown). Document.markdownText(MarkdownSaveOptions) a Markdownot String formájában adja vissza a fájl írása helyett (nincs külön „Markdown text” accessor — ez a módszer a megfelelő, ha memóriában szeretnénk az eredményt).


Markdown PDF-re

Töltsön be egy Markdown fájlt egy Document konstruktoron keresztül, amely MarkdownLoadOptions-t vesz fel. Egy kézzel írt CommonMark/GFM részhalmaz-elemző olvassa a forrást: címsorok, bekezdések, listák, táblázatok, hangsúlyozás, kód, linkek, képek, idézetblokk és lábjegyzetek. A Markdownba beágyazott egzotikus HTML nem kerül teljes mértékben reprodukálásra.

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

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

Tippek és bevált gyakorlatok

  • A hűség strukturális, nem pixel-pontos egyik formátumnál sem: a konverziók megőrzik a tartalmat, a szerkezetet, a képeket és az oldalgeometriát, nem pedig a pontos megjelenített kinézetet.
  • ExcelSaveOptions.ExcelFormat és a MarkdownSaveOptions a strukturális jelzők csak a output csomagformátumot vagy heurisztikát — a PDF-nek a címkézésekor megadott tényleges értékek továbbra is meghatározzák, hogy mi kerül észlelésre táblaként, címsorként vagy listaként.
  • Élő XLSX űrlapok esetén tekintse a beágyazott cellaértékeket helyes visszaesésnek: csak egy űrlapkezelő képességű megjelenítő számolja újra a képleteket megnyitáskor.

Gyakori problémák

ProblémaOkaJavítás
Az XLSX kimenet mindig .xlsx kiterjesztést kap, még a ExcelFormat.CSV vagy ODS beállítása után is.A FOSS író mindig egy OOXML .xlsx csomagot sorosít; a többi ExcelFormat érték csak a Aspose.PDF API kompatibilitás miatt létezik.Kezeld a kimenetet .xlsx-ként, függetlenül attól, hogy milyen ExcelFormat értéket állítasz be
Az újraszámoló XLSX űrlap statikus számokat jelenít meg élő képletek helyettA PDF-nézegetőnek nincs forms/JavaScript motorjaNyisd meg a fájlt Adobe Acrobat vagy Foxit programban, hogy lásd az élő újraszámítást
Egy képletcellában elavultnak tűnő érték jelenik megExcelFormulaTranslator nem támogatja az adott képlet függvényétEz a dokumentált visszaesés: a mező megőrzi az utolsó számított statikus értékét

FAQ

Kaphatok Markdown-ot Stringként fájl helyett?

Igen — hívd a Document.markdownText(MarkdownSaveOptions); közvetlenül visszaadja a Markdown szöveget ahelyett, hogy fájlba írná.

Támogatja az XLSX importáló a valódi Excel képleteket?

Csak akkor, ha a ExcelLoadOptions.setInteractiveForms(true) be van állítva, és csak a ExcelFormulaTranslator által lefordítható függvények részhalmaza az Acrobat JavaScript-re. Minden egyéb a forrásmunkafüzet képletének legutóbb kiszámított statikus értékére támaszkodik.


API Reference Összefoglaló

Osztály/MódszerLeírás
ExcelSaveOptionsFinomhangolja a PDF-XLSX exportot
ExcelLoadOptionsFinomhangolja az XLSX-PDF importot, beleértve az élő űrlapokat
ExcelFormatCél táblázatváltozat, amelyet a ExcelSaveOptions elfogad
ExcelFormulaTranslatorÁtalakítja az Excel képleteket Acrobat JavaScript formátumba élő űrlapokhoz
MarkdownSaveOptionsFinomhangolja a PDF → Markdown exportot
MarkdownLoadOptionsFinomhangolja a Markdown → PDF importálást
Document.save(String, SaveFormat) / `Document.save(String, ExcelSaveOptionsMarkdownSaveOptions)`
Document.markdownText(MarkdownSaveOptions)Visszaadja a Markdown-ot egy String formájában

Lásd még:

 Magyar