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 aMarkdownSaveOptionsa 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éma | Oka | Javí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 helyett | A PDF-nézegetőnek nincs forms/JavaScript motorja | Nyisd 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 meg | ExcelFormulaTranslator nem támogatja az adott képlet függvényét | Ez 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ódszer | Leírás |
|---|---|
ExcelSaveOptions | Finomhangolja a PDF-XLSX exportot |
ExcelLoadOptions | Finomhangolja az XLSX-PDF importot, beleértve az élő űrlapokat |
ExcelFormat | Cél táblázatváltozat, amelyet a ExcelSaveOptions elfogad |
ExcelFormulaTranslator | Átalakítja az Excel képleteket Acrobat JavaScript formátumba élő űrlapokhoz |
MarkdownSaveOptions | Finomhangolja a PDF → Markdown exportot |
MarkdownLoadOptions | Finomhangolja a Markdown → PDF importálást |
Document.save(String, SaveFormat) / `Document.save(String, ExcelSaveOptions | MarkdownSaveOptions)` |
Document.markdownText(MarkdownSaveOptions) | Visszaadja a Markdown-ot egy String formájában |