Prinsipnya adalah untuk mengubah PPT menjadi PDF, dan kemudian menggunakan gambar untuk menghasilkan PDF. dan dapat diselesaikan dengan hanya mencari akhiran PPT. Beberapa kotak Cina.
Baidu dan Google telah mencari waktu yang lama, dan beberapa orang mengatakan bahwa beberapa orang mengatakan itu adalah bug di situs web resmi Apache, tetapi mereka menjawab bahwa itu adalah masalah font. Masalah ini dengan sendirinya, dan membaca font asli dan mengaturnya ke font saat ini, tetapi kinerjanya harus ada banyak konsumsi. Hampir tidak ada solusi siap pakai di internet. Saya juga mencoba langkah demi langkah dan akhirnya menemukan solusinya.
PPTX sebelum masalah dikonversi menjadi gambar:
Setelah resolusi, PPTX dikonversi menjadi gambar:
Larutan:
Baca setiap bentuk dan konversi teks menjadi font terpadu.
untuk (xslfshape bentuk: slide [i] .getShapes ()) {if (bentuk instance dari xslftextshape) {xslftextshape txshape = (xslftextshape) bentuk; + txshape.getShapename ()); ; Kode lengkapnya adalah sebagai berikut (kecuali untuk solusi di atas sendiri, sebagian besar adalah kode di StackOverflow):
public void convertPPTTOPDF (String SourcePath, String DestinationPath, String FileType) Melempar Exception {FileInputStream InputStream = FileInputstrea m (SourcePath); PDFDocument = Dokumen Baru (); SlideImage = NULL; ppt .getslides (); = 0; k]. ; (pgsi ze. tinggi * zoom), bufferedimage.type_int_rgb); , Pgsize. true); setPagesze ((float) pgsize.getWidth (), (float) pgsize.getHeight ())); i ++) {for (xslfs hape bentuk: slide [i] .getShapes ()) {if (bentuk contoh xslftextshape) {xslftextshape 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 (Tabel); Konfigurasi Maven:
<dependency> <GroupId> org.apache.poi </groupid> <ArTifactId> poi </artifactid> <!-<version> 3.13 </version>-> <version> 3.9 </version> </dependc y > <dependency> <GroupId> org.apache.poi </groupid> <ArTifactId> poi-ooxml </artifactid> <!-<version> 3.10-final </versi>-> <version> 3.9 </versi ON> </gantage> <dependency> <GroupId> com.ithoutpdf </groupid> <ArTifactId> ithextpdf </sartifactid> <version> 5.5.7 </versi> </dependency> <dependency> <groupid> com.itextpdf .tool </groupid> <ArTifactId> xmlworker </artifactid> <version> 5.5.7 </version> </dependency> <dependency> <groupid> org.apache.poi </groupid> <artif ctid> poi-scrratchpad </artifactId> <!-<version> 3.12 </version>-> <version> 3.9 </version> </dependency>
Di atas adalah solusi untuk masalah orang Cina yang kacau di Java untuk mengimplementasikan PPT ke PDF yang terjadi di Java.