Le principe est de convertir PPT en PDF, puis d'utiliser des images pour produire du PDF. et peut être résolu en recherchant simplement le suffixe ppt. Certaines boîtes chinoises.
Baidu et Google recherchent depuis longtemps, et certaines personnes ont dit que certaines personnes ont dit que c'était un bug sur le site officiel d'Apache, mais ils ont répondu que c'était un problème de police. Ce problème en soi, et lisez la police originale et la définissez sur la police actuelle, mais les performances devraient y avoir beaucoup de consommation. Presque pas de solutions prêtes à l'emploi sur Internet. J'ai également essayé étape par étape et j'ai finalement trouvé la solution.
Le PPTX avant le problème est converti en image:
Après la résolution, le PPTX est converti en image:
Solution:
Lisez chaque forme et convertissez le texte en une police unifiée.
pour (xslfshape forme: Slide [i] .getShapes ()) {if (forme instanceof xslftexThape) {xslftextShape txshape = (xslftextShape) forme; + txshape.getShapename ()); ; Le code complet est le suivant (à l'exception de la solution propre ci-dessus, la plupart sont le code sur stackOverflow):
Public Static Void ConvertPPTTOPDF (String SourcePath, String DestinationPath, String FileType) Exception {FileInputStream InputStream = new FileInputStrea M (SourcePath); PDFDocument = nouveau document (); SlideImage = null; ppt .getslides (); pdfDocument.SetPageSize (new rectangle (float) pgsize.getwidth (), (float) pgsize.GetHeight ()); =0 k]. ; (pgsi ze. Hauteur * Zoom), BufferedImage.type_int_rgb); , 0, pgsize. true));}} if (filetype.equalsignorecase (". pptx") {xmlslideShow ppt = new setPageSize (new rectangle ((float) pgsize.getwidth (), (float) pgsize.getheight ()); i ++) {pour (xslfs HAPE FORME: Slide [i] .getShapes ()) {if (forme instanceof xslftexThape) {xslftexThape txShape = (xslftextShape); ) + ":" + txshape. Textrunlist = textPara.getTexTruns (); ) Math.Ceil (pgsize.Height * Zoom), BufferedImage.Type_int_rgb); Float (0, 0, pgsize.width, pgsize.height)); ; }} PDF Document.Add (Table Configuration Maven:
<dependency> <proupId> org.apache.poi </proupId> <Artifactid> poi </ artifactId> <! - <version> 3.13 </-version> -> <version> 3.9 </ version> </peditedc y > <dependency> <proupId> org.apache.poi </proupId> <Ertifactid> poi-ooxml </refactId> <! - <version> 3.10-final </ version> -> <version> 3.9 </puil on> </ Dependency> <Dedency> <ProupId> com.ithoutpdf </rombandid> <letfactId> itHextpdf </ artifactive> <version> 5.5.7 </-version> </dependency> <dependency> <proupId> com.itextpdf .tool </proupId> <ArtifActid> xmlworker </lefactive> <version> 5.5.7 </-version> </dependency> <dependency> <proupId> org.apache.poi </proupId> <Artif ctid> poi-scratchpad </ artifactId> <! - <version> 3.12 </ version> -> <version> 3.9 </ version> </Dependance>
Ce qui précède est la solution au problème du chinois brouillé en Java pour mettre en œuvre PPT à PDF qui se produit en Java.