Μετατροπή PDF σε Excel και Markdown
Μετατροπή PDF σε Excel και Markdown
Αυτός ο οδηγός δείχνει πώς να μετατρέψετε ένα PDF σε ένα βιβλίο εργασίας Excel (.xlsx) ή σε Markdown, και πώς να φορτώσετε ξανά ένα PDF από οποιαδήποτε μορφή. Document εκτελεί τη μετατροπή και στις δύο κατευθύνσεις· ExcelSaveOptions και MarkdownSaveOptions ρυθμίζουν την εξαγωγή, και ExcelLoadOptions και MarkdownLoadOptions ρυθμίζουν την εισαγωγή. Από την έκδοση 26.9.0.
PDF σε XLSX
Οι πίνακες που εντοπίζονται στο PDF γίνονται πλέγματα φύλλων εργασίας με τυποποιημένα κελιά — αριθμοί, ημερομηνίες, boolean, νόμισμα και ποσοστά γράφονται ως πραγματικές τιμές Excel αντί για κείμενο — και το στυλ προέλευσης (γένους/μέγεθος γραμματοσειράς, χρώμα κειμένου, γέμισμα κελιών, περιγράμματα, ύψη γραμμών, πλάτη στηλών, στοίχιση, συγχωνευμένα κελιά) μεταφέρεται. Οι εικόνες μέσα στα κελιά των πινάκων ενσωματώνονται ως σχέδια.
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 (ένα ψευδώνυμο, SaveFormat.Excel, επίσης αποδεκτό) δίνει το ίδιο αποτέλεσμα με τις προεπιλεγμένες επιλογές: doc.save("report.xlsx", SaveFormat.Xlsx). Η δική του ExcelFormat enum του ExcelSaveOptions δέχεται επίσης XmlSpreadSheet2003, CSV και ODS για τη συμβατότητα Aspose.PDF API, αλλά αυτή η βιβλιοθήκη γράφει πάντα ένα πακέτο .xlsx ανεξάρτητα από την τιμή που ορίζεται. Μπορείτε επίσης να γράψετε σε ροή με doc.save(OutputStream, ExcelSaveOptions).
XLSX σε PDF, συμπεριλαμβανομένων των ζωντανών φορμών
Φορτώστε ένα βιβλίο εργασίας .xlsx μέσω ενός κατασκευαστή Document που δέχεται ExcelLoadOptions. Κάθε φύλλο γίνεται πίνακας PDF με την ίδια υποστήριξη τυποποίησης κελιών και στυλ όπως η κατεύθυνση εξαγωγής.
import org.aspose.pdf.Document;
import org.aspose.pdf.ExcelLoadOptions;
try (Document doc = new Document("book.xlsx", new ExcelLoadOptions())) {
doc.save("book.pdf");
}Η ρύθμιση ExcelLoadOptions.setInteractiveForms(true) μετατρέπει τα αριθμητικά και ετικετοποιημένα κελιά σε μια «ζωντανή» φόρμα PDF αντί για στατικό κείμενο: τα αριθμητικά κελιά γίνονται επεξεργάσιμα πεδία κειμένου, τα κελιά τύπου γίνονται πεδία μόνο για ανάγνωση που επαναϋπολογίζουν από τις εισόδους τους, και τα ετικετοποιημένα ή σταθερά κελιά παραμένουν στατικό κείμενο εκτός εάν κάποιο άλλο τύπο αναφέρεται σε αυτά. ExcelFormulaTranslator μετατρέπει κάθε τύπο σε Acrobat JavaScript; ένας τύπος του οποίου η λειτουργία δεν υποστηρίζεται επιστρέφει στην τελευταία υπολογισμένη στατική τιμή, ώστε το πεδίο να εμφανίζει ακόμα τον σωστό αριθμό. Η επαναϋπολογισμός εκτελείται μόνο σε προβολέα με μηχανή forms/JavaScript — Adobe Acrobat ή Foxit· ένας προβολέας χωρίς αυτή τη μηχανή δείχνει μόνο τις ενσωματωμένες τιμές, χωρίς ζωντανή επαναϋπολογισμό.
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 σε Markdown
Document μετατρέπει ένα PDF σε CommonMark / GitHub-Flavored Markdown: τίτλοι, παραγράφους, λίστες, πίνακες, τονισμούς (έντονα/πλάγια/διαγραμμένα), ενσωματωμένο και φραγμένο κώδικα, συνδέσμους, εικόνες και υποσημειώσεις.
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 παρέχει το ίδιο αποτέλεσμα με τις προεπιλεγμένες επιλογές: doc.save("article.md", SaveFormat.Markdown). Document.markdownText(MarkdownSaveOptions) επιστρέφει το Markdown ως String αντί να γράψει σε αρχείο (δεν υπάρχει ξεχωριστός πρόσβαση «Markdown text» — αυτή η μέθοδος είναι αυτή που πρέπει να κληθεί για αποτέλεσμα στη μνήμη).
Markdown σε PDF
Φορτώστε ένα αρχείο Markdown μέσω ενός κατασκευαστή Document που δέχεται MarkdownLoadOptions. Ένας χειρογραφημένος αναλυτής υποσυνόλου CommonMark/GFM διαβάζει την πηγή: τίτλοι, παραγράφους, λίστες, πίνακες, τονισμούς, κώδικα, συνδέσμους, εικόνες, αποσπάσματα και υποσημειώσεις. Οι εξωτικές HTML ενσωματωμένες στο Markdown δεν αναπαράγονται πλήρως.
import org.aspose.pdf.Document;
import org.aspose.pdf.MarkdownLoadOptions;
try (Document doc = new Document("README.md", new MarkdownLoadOptions())) {
doc.save("README.pdf");
}Συμβουλές και Καλές Πρακτικές
- Η πιστότητα είναι δομική, όχι ακριβής ανά pixel για κανένα από τα δύο μορφότυπα: οι μετατροπές διατηρούν το περιεχόμενο, τη δομή, τις εικόνες και τη γεωμετρία των σελίδων, όχι την ακριβή εμφανιζόμενη εμφάνιση.
ExcelSaveOptions.ExcelFormatκαι τοMarkdownSaveOptionsοι δομικές σημαίες αλλάζουν μόνο το output μορφή πακέτου ή ευρετικές — οι πραγματικές τιμές με τις οποίες έχει επισημανθεί το PDF σας εξακολουθούν να καθορίζουν τι ανιχνεύεται ως πίνακας, επικεφαλίδα ή λίστα.- Για ζωντανές φόρμες XLSX, θεωρήστε τις ενσωματωμένες τιμές κελιών ως τη σωστή εναλλακτική: μόνο ένας προβολέας που υποστηρίζει φόρμες επαναϋπολογίζει τους τύπους κατά το άνοιγμα.
Κοινά Προβλήματα
| Πρόβλημα | Αιτία | Διόρθωση |
|---|---|---|
Η έξοδος XLSX έχει πάντα μια επέκταση .xlsx ακόμη και μετά τον ορισμό του ExcelFormat.CSV ή του ODS | Ο FOSS writer πάντα σειριοποιεί ένα πακέτο OOXML .xlsx; οι άλλες τιμές ExcelFormat υπάρχουν μόνο για συμβατότητα Aspose.PDF API | Αντιμετωπίστε την έξοδο ως .xlsx ανεξάρτητα από την τιμή ExcelFormat που έχετε ορίσει |
| Ένα επαναϋπολογιζόμενο φόρμα XLSX εμφανίζει στατικούς αριθμούς αντί για ζωντανά τύπους | Ο προβολέας PDF δεν διαθέτει μηχανή forms/JavaScript | Ανοίξτε το αρχείο στο Adobe Acrobat ή στο Foxit για να δείτε ζωντανό επαναϋπολογισμό |
| Ένα κελί τύπου εμφανίζει μια αξία που φαίνεται παλιά | ExcelFormulaTranslator δεν υποστηρίζει τη λειτουργία αυτού του τύπου | Αυτή είναι η τεκμηριωμένη εναλλακτική: το πεδίο διατηρεί την τελευταία υπολογισμένη στατική τιμή |
FAQ
Μπορώ να λάβω το Markdown ως String αντί για αρχείο;
Ναι — καλέστε το Document.markdownText(MarkdownSaveOptions); επιστρέφει το κείμενο Markdown άμεσα αντί να το γράφει σε αρχείο.
Υποστηρίζει ο εισαγωγέας XLSX πραγματικούς τύπους Excel;
Μόνο όταν έχει οριστεί το ExcelLoadOptions.setInteractiveForms(true), και μόνο το υποσύνολο των συναρτήσεων ExcelFormulaTranslator μπορεί να μεταφραστεί σε Acrobat JavaScript. Όλα τα άλλα επιστρέφονται στην τελευταία υπολογισμένη στατική τιμή του τύπου στο πηγαίο βιβλίο εργασίας.
API Reference Περίληψη
| Κλάση/Μέθοδος | Περιγραφή |
|---|---|
ExcelSaveOptions | Ρυθμίζει την εξαγωγή PDF σε XLSX |
ExcelLoadOptions | Ρυθμίζει την εισαγωγή XLSX σε PDF, συμπεριλαμβανομένων των ζωντανών φορμών |
ExcelFormat | Επιθυμητός τύπος λογιστικού φύλλου που αποδέχεται το ExcelSaveOptions |
ExcelFormulaTranslator | Μετατρέπει τους τύπους του Excel σε Acrobat JavaScript για ζωντανές φόρμες |
MarkdownSaveOptions | Ρυθμίζει την εξαγωγή PDF σε Markdown |
MarkdownLoadOptions | Ρυθμίζει την εισαγωγή Markdown σε PDF |
Document.save(String, SaveFormat) / `Document.save(String, ExcelSaveOptions | MarkdownSaveOptions)` |
Document.markdownText(MarkdownSaveOptions) | Επιστρέφει το Markdown ως String |