Das Prinzip besteht darin, PPT in PDF umzuwandeln und dann PDF zu erstellen. und kann einfach nach PPT -Suffix gesucht werden. Einige chinesische Kisten.
Baidu und Google haben lange gesucht, und einige Leute sagten, dass einige Leute auf der offiziellen Website von Apache ein Fehler sei, aber sie antworteten, dass es sich um ein Schriftproblem handelte. Dieses Problem für sich und las die ursprüngliche Schriftart und setzte sie auf die aktuelle Schriftart, aber die Leistung sollte viel Verbrauch geben. Fast keine fertigen Lösungen im Internet. Ich habe auch Schritt für Schritt versucht und die Lösung schließlich gefunden.
Das PPTX vor dem Problem wird in ein Bild umgewandelt:
Nach der Auflösung wird der PPTX in ein Bild umgewandelt:
Lösung:
Lesen Sie jede Form und konvertieren Sie den Text in eine einheitliche Schriftart.
für (xslfShape Form: Slide [i] .GetShapes ()) {if (Forminstanz xslftextSthape) {xslftextStHape txShape = (xslftextStHape) Form; + txShape.getShapename ()); ; Der vollständige Code lautet wie folgt (mit Ausnahme der obigen eigenen Lösung ist der größte Teil des Codes auf Stackoverflow):
public void convertPPTTOPDF (String Quellpath, String -Filetype) Ausnahme {FileInputStream -InputStream pdfdocument = neuer Dokument (); SlideImage = null; ppt .getSlides (); = 0; k]. ; (PGSI ZE. HEIGHEIT * ZOOM), BEBELTERIMAGE.TYPE_INT_RGB); , 0, PGSIZE. true)); SetPageSize (neuer Rechteck ((float) pgSize.getWidth (), (float) pgSize.Getheight ()); i ++) {für (xslfs hape Form: Folie [i] .GetShapes ()) {if (Forminstanz xslftextStHape) {xslfTextSthape TxShape = (xslftextStHape) Form; ) + ":" + txShape. textrunlist = textPara.gettextruns () für (xslftextrun textrun: textrunlist) {textrun.setfontfamily ("宋体"); ) Math.ceil (pgSize.Height * zoom), bufferedImage.type_int_rgb); Float (0, 0, pgsize.width, pgsize.height)); ; // Javax. }} PDF -Dokument.Add (Tabelle); Maven -Konfiguration:
<Depopenty> <gruppe> org.apache.poi </Groupid> <artifactId> poi </artifactid> <!-<version> 3.13 </Version>-> <version> 3.9 </Version> </abhängig y > <depeencing> <gruppe> org.apache.poi </Groupid> <artifactId> poi-ooxml </artifactId> <!-<version> 3.10-final </Version>-> <version> 3.9 </verwsie unter> </abhängig> <abhängigkeit> <gruppe> com.thoutpdf </Groupid> <artifactId> iTHextPDF </artifactid> <version> 5.5.7 </Version> </abhängig .tool </GroupID> <artifactId> xmlworker </artifactId> <version> 5.5.7 </Version> </abhängig> <depeaponcy> <Groupid> org.apache.poi </Groupid> <artif CTID> poi-scratchpad </artifactid> <!-<version> 3.12 </Version>-> <version> 3.9 </Version> </abhängig>
Die oben genannte Lösung für das Problem des verstümmelten Chinesens in Java, PPT in PDF zu implementieren, das in Java auftritt.