Prezentációk importálása PDF vagy HTML-ből Pythonon keresztül Java-val
Bevezetés
Az Aspose.Slides for Python via Java képes PDF oldalak vagy HTML tartalmat PowerPoint diákra alakítani a Microsoft PowerPoint nélkül. A SlideCollection osztály biztosítja a addFromPdf és a addFromHtml metódusokat az importált tartalom bemutatóhoz való hozzáadásához.
Ha nagyobb ellenőrzésre van szükség a HTML elhelyezése felett, a SlideCollection.insertFromHtml be tudja illeszteni a generált diákat egy gyűjtemény indexén, vagy elkezdheti kitölteni a rendelkezésre álló helyet egy meglévő dián. A hosszú HTML automatikusan több diára kerül felosztásra, a forrás lehet karakterlánc vagy folyam, és külső erőforrások betölthetők az ExternalResourceResolver segítségével egy alap‑URI-val. A visszaadott Slide tömb az érintett és az újonnan létrehozott diákat azonosítja.
Importálás PDF-ből
A PDF dokumentumot PowerPoint bemutatóvá konvertáláshoz importálja a tartalmát a diagyűjteménybe és mentse az eredményt PPTX fájlba.

- Hozzon létre egy új Presentation objektumot.
- Hívja meg a addFromPdf metódust a PDF fájl elérési útjával.
- Hívja meg a save metódust a SaveFormat.Pptx használatával a bemutató PPTX fájlba írásához.
A következő Python példa importál egy PDF dokumentumot és elmenti a generált diát PowerPoint bemutatóként:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
presentation = Presentation()
try:
presentation.getSlides().addFromPdf("document.pdf")
presentation.save("presentation.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Az alapértelmezett üres dia a bemutatóban marad, mert az importálás hozzáfűzi a diákat. Ha csak az importált oldalakat szeretné megtartani, törölje a diagyűjteményt a SlideCollection.clear hívásával importálás előtt.
Az addFromPdf metódus visszaadja az általa hozzáadott diákat, ami hasznos, ha csak az importált diákon szeretne feldolgozni.
Tip
Próbálja ki az ingyenes PDF to PowerPoint webalkalmazást, hogy lássa a konverziós munkafolyamatot működés közben.Importálás HTML-ből
Az Aspose.Slides képes diák létrehozására HTML dokumentumból is. A forrás lehet HTML szöveg vagy folyam. Az alábbi lépések fájlfolyam használatával mutatják be a folyamatot:
- Hozzon létre egy új Presentation objektumot.
- Nyissa meg a HTML fájlt olvasásra, és adja át a folyamot a addFromHtml metódusnak.
- Hívja meg a save metódust a SaveFormat.Pptx használatával az eredmény PPTX fájlba írásához.
A következő Python példa importál egy HTML dokumentumot és elmenti a generált diát PowerPoint bemutatóként:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
from java.io import FileInputStream
presentation = Presentation()
try:
html_stream = FileInputStream("page.html")
try:
presentation.getSlides().addFromHtml(html_stream)
finally:
html_stream.close()
presentation.save("presentation.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
HTML tartalom beillesztése
Használja a SlideCollection.insertFromHtml metódust, amikor a HTML‑ből generált diákat egy meghatározott pozícióba kell helyezni a hozzáfűzés helyett. Az index nulla‑alapú és meghatározza azt a pozíciót, ahol az importálás kezdődik.
A useSlideWithIndexAsStart argumentum szabályozza, hogyan használja az importáló ezt a pozíciót:
- Ha
False, az importáló új diákot hoz létre a megadott indexnél és eltolja a következő diákat. - Ha
True, az importáló a megadott indexű meglévő dián lévő szabad helyet használja a tartalom elhelyezéséhez. Ha a HTML nem fér el, az Aspose.Slides automatikusan felosztja és további diákat szúr be közvetlenül a kezdő dia után.
A SlideCollection.insertFromHtml egy Slide objektumok tömbjét adja vissza. Ha a beszúrás új diákon kezdődik, minden visszaadott elem újonnan létrehozott. Ha egy meglévő diát használunk kiindulásként, a tömb tartalmazza az érintett diát, majd az esetleges új túlfutó diákokat. Ennek a tömbnek az ellenőrzésével elkerülhető a prezentáció diálszámából való számítás a ható tartomány meghatározásához.
HTML beillesztése új diákként
Az alábbi példa HTML‑t ad meg karakterláncként, és a generált diákat a gyűjtemény 1‑es indexére illeszti. A False átadása az existing diákat változatlanul hagyja, csak eltolja őket a hely biztosításához.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
presentation = Presentation()
try:
layout_slide = presentation.getLayoutSlides().get_Item(0)
presentation.getSlides().addEmptySlide(layout_slide)
presentation.getSlides().addEmptySlide(layout_slide)
insert_index = 1
html = "<html><body><h1>Quarterly update</h1><p>This content is inserted before the slide that was at index 1.</p></body></html>"
inserted_slides = presentation.getSlides().insertFromHtml(insert_index, html, False)
for slide in inserted_slides:
print("Inserted slide index:", presentation.getSlides().indexOf(slide))
presentation.save("presentation-with-inserted-html.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Kezdés egy meglévő diárról
A következő példa HTML‑t egy folyamként ad meg. Megtartja a fejlécalakzatot a meglévő sablon diáron, az importálást az elfoglalt terület alá kezdi, és a hosszú szöveg továbbfolytatódik új diákra.
A HTML tartalmaz egy relatív képelérési utat is. Egy ExternalResourceResolver szerzi be az erőforrást, míg az alap‑URI megmondja az importálónak, hogyan kell feloldani a images/logo.png hivatkozást. Ebben a példában a fájl a html-assets/images/logo.png helyen várható.
from pathlib import Path
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import ExternalResourceResolver, Presentation, SaveFormat, ShapeType
from java.io import ByteArrayInputStream
presentation = Presentation()
try:
template_slide = presentation.getSlides().get_Item(0)
header = template_slide.getShapes().addAutoShape(ShapeType.Rectangle, 20, 20, 680, 60)
header.getTextFrame().setText("Product roadmap")
html_parts = ["<html><body><img src='images/logo.png' width='120' height='60'><h2>Roadmap details</h2>"]
for item_index in range(1, 61):
html_parts.append(f"<p style='font-size:24pt'>Roadmap item {item_index}: detailed implementation notes.</p>")
html_parts.append("</body></html>")
html = "".join(html_parts)
html_data = html.encode("utf-8")
resolver = ExternalResourceResolver()
base_directory = Path("html-assets").resolve()
base_uri = base_directory.as_uri() + "/"
html_stream = ByteArrayInputStream(html_data)
try:
affected_slides = presentation.getSlides().insertFromHtml(0, html_stream, resolver, base_uri, True)
for slide in affected_slides:
print("Affected slide index:", presentation.getSlides().indexOf(slide))
finally:
html_stream.close()
presentation.save("presentation-with-html-overflow.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Warning
Egy korlátlan külső erőforrás-resolver képes helyi vagy hálózati erőforrásokat olvasni, amelyeket a HTML hivatkozik. Nem megbízható bemenet esetén ellenőrizze és tisztítsa meg az erőforrás‑URL‑eket egy engedélyezett sémák, könyvtárak és hostok listájával, mielőtt importálná a HTML‑t.GYIK
Képes‑e az Aspose.Slides táblázatokat felismerni PDF importáláskor?
Igen. Hozzon létre egy PdfImportOptions objektumot, hívja meg a setDetectTables metódust True értékkel, és adja át az opciókat a addFromPdf metódusnak. A táblázat‑felismerés minősége a forrás PDF szerkezetétől és összetettségétől függ.