如何在Java中将ppt文件转换为pdf文件?
我想将MS powerpoint(ppt)文档转换为PDF 我搜索了一些jar,比如如何在Java中将ppt文件转换为pdf文件?,java,pdf,powerpoint,itext,apache-poi,Java,Pdf,Powerpoint,Itext,Apache Poi,我想将MS powerpoint(ppt)文档转换为PDF 我搜索了一些jar,比如officetools.jar,但这需要购买 是否有任何方法可以通过itext和ApachePOI将其转换为PDF格式?请尝试使用aspose。我个人以前没用过。 以下是使用aspose的方法。我个人以前没用过。 以下是我尝试使用LibreOffice JAVA API打开PPT并将其保存为PDF。我尝试使用LibreOffice JAVA API打开PPT并将其保存为PDF。使用,但需要OpenOffice.o
officetools.jar
,但这需要购买
是否有任何方法可以通过
itext
和ApachePOI
将其转换为PDF格式?请尝试使用aspose。我个人以前没用过。
以下是使用aspose的方法。我个人以前没用过。
以下是我尝试使用LibreOffice JAVA API打开PPT并将其保存为PDF。我尝试使用LibreOffice JAVA API打开PPT并将其保存为PDF。使用,但需要OpenOffice.org。使用,但需要OpenOffice.org。我正在使用iText和apache poi: 以下是进口清单-
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.hslf.model.Slide;
import org.apache.poi.hslf.usermodel.SlideShow;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Image;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
方法是
public void convertPPTToPDF(String sourcepath, String destinationPath, String fileType) throws Exception {
FileInputStream inputStream = new FileInputStream(sourcepath);
double zoom = 2;
AffineTransform at = new AffineTransform();
at.setToScale(zoom, zoom);
Document pdfDocument = new Document();
PdfWriter pdfWriter = PdfWriter.getInstance(pdfDocument, new FileOutputStream(destinationPath));
PdfPTable table = new PdfPTable(1);
pdfWriter.open();
pdfDocument.open();
Dimension pgsize = null;
Image slideImage = null;
BufferedImage img = null;
if (fileType.equalsIgnoreCase(".ppt")) {
SlideShow ppt = new SlideShow(inputStream);
pgsize = ppt.getPageSize();
Slide slide[] = ppt.getSlides();
pdfDocument.setPageSize(new Rectangle((float) pgsize.getWidth(), (float) pgsize.getHeight()));
pdfWriter.open();
pdfDocument.open();
for (int i = 0; i < slide.length; i++) {
img = new BufferedImage((int) Math.ceil(pgsize.width * zoom), (int) Math.ceil(pgsize.height * zoom), BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = img.createGraphics();
graphics.setTransform(at);
graphics.setPaint(Color.white);
graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));
slide[i].draw(graphics);
graphics.getPaint();
slideImage = Image.getInstance(img, null);
table.addCell(new PdfPCell(slideImage, true));
}
}
if (fileType.equalsIgnoreCase(".pptx")) {
XMLSlideShow ppt = new XMLSlideShow(inputStream);
pgsize = ppt.getPageSize();
XSLFSlide slide[] = ppt.getSlides();
pdfDocument.setPageSize(new Rectangle((float) pgsize.getWidth(), (float) pgsize.getHeight()));
pdfWriter.open();
pdfDocument.open();
for (int i = 0; i < slide.length; i++) {
img = new BufferedImage((int) Math.ceil(pgsize.width * zoom), (int) Math.ceil(pgsize.height * zoom), BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = img.createGraphics();
graphics.setTransform(at);
graphics.setPaint(Color.white);
graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));
slide[i].draw(graphics);
graphics.getPaint();
slideImage = Image.getInstance(img, null);
table.addCell(new PdfPCell(slideImage, true));
}
}
pdfDocument.add(table);
pdfDocument.close();
pdfWriter.close();
System.out.println("Powerpoint file converted to PDF successfully");
}
public void convertPPTToPDF(字符串源路径、字符串目标路径、字符串文件类型)引发异常{
FileInputStream inputStream=新的FileInputStream(sourcepath);
双变焦=2;
AffineTransform at=新的AffineTransform();
在.setToScale(缩放,缩放);
文档pdfDocument=新文档();
PdfWriter PdfWriter=PdfWriter.getInstance(pdfDocument,新文件输出流(destinationPath));
PdfPTable table=新的PdfPTable(1);
pdfWriter.open();
pdfDocument.open();
维度pgsize=null;
图像slideImage=null;
BuffereImage img=null;
if(fileType.equalsIgnoreCase(“.ppt”)){
幻灯片放映ppt=新幻灯片放映(inputStream);
pgsize=ppt.getPageSize();
幻灯片[]=ppt.getSlides();
setPageSize(新矩形((float)pgsize.getWidth(),(float)pgsize.getHeight());
pdfWriter.open();
pdfDocument.open();
对于(int i=0;i
我正在使用iText和apache poi:
以下是进口清单-
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.hslf.model.Slide;
import org.apache.poi.hslf.usermodel.SlideShow;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Image;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
方法是
public void convertPPTToPDF(String sourcepath, String destinationPath, String fileType) throws Exception {
FileInputStream inputStream = new FileInputStream(sourcepath);
double zoom = 2;
AffineTransform at = new AffineTransform();
at.setToScale(zoom, zoom);
Document pdfDocument = new Document();
PdfWriter pdfWriter = PdfWriter.getInstance(pdfDocument, new FileOutputStream(destinationPath));
PdfPTable table = new PdfPTable(1);
pdfWriter.open();
pdfDocument.open();
Dimension pgsize = null;
Image slideImage = null;
BufferedImage img = null;
if (fileType.equalsIgnoreCase(".ppt")) {
SlideShow ppt = new SlideShow(inputStream);
pgsize = ppt.getPageSize();
Slide slide[] = ppt.getSlides();
pdfDocument.setPageSize(new Rectangle((float) pgsize.getWidth(), (float) pgsize.getHeight()));
pdfWriter.open();
pdfDocument.open();
for (int i = 0; i < slide.length; i++) {
img = new BufferedImage((int) Math.ceil(pgsize.width * zoom), (int) Math.ceil(pgsize.height * zoom), BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = img.createGraphics();
graphics.setTransform(at);
graphics.setPaint(Color.white);
graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));
slide[i].draw(graphics);
graphics.getPaint();
slideImage = Image.getInstance(img, null);
table.addCell(new PdfPCell(slideImage, true));
}
}
if (fileType.equalsIgnoreCase(".pptx")) {
XMLSlideShow ppt = new XMLSlideShow(inputStream);
pgsize = ppt.getPageSize();
XSLFSlide slide[] = ppt.getSlides();
pdfDocument.setPageSize(new Rectangle((float) pgsize.getWidth(), (float) pgsize.getHeight()));
pdfWriter.open();
pdfDocument.open();
for (int i = 0; i < slide.length; i++) {
img = new BufferedImage((int) Math.ceil(pgsize.width * zoom), (int) Math.ceil(pgsize.height * zoom), BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = img.createGraphics();
graphics.setTransform(at);
graphics.setPaint(Color.white);
graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));
slide[i].draw(graphics);
graphics.getPaint();
slideImage = Image.getInstance(img, null);
table.addCell(new PdfPCell(slideImage, true));
}
}
pdfDocument.add(table);
pdfDocument.close();
pdfWriter.close();
System.out.println("Powerpoint file converted to PDF successfully");
}
public void convertPPTToPDF(字符串源路径、字符串目标路径、字符串文件类型)引发异常{
FileInputStream inputStream=新的FileInputStream(sourcepath);
双变焦=2;
AffineTransform at=新的AffineTransform();
在.setToScale(缩放,缩放);
文档pdfDocument=新文档();
PdfWriter PdfWriter=PdfWriter.getInstance(pdfDocument,新文件输出流(destinationPath));
PdfPTable table=新的PdfPTable(1);
pdfWriter.open();
pdfDocument.open();
维度pgsize=null;
图像slideImage=null;
BuffereImage img=null;
if(fileType.equalsIgnoreCase(“.ppt”)){
幻灯片放映ppt=新幻灯片放映(inputStream);
pgsize=ppt.getPageSize();
幻灯片[]=ppt.getSlides();
setPageSize(新矩形((float)pgsize.getWidth(),(float)pgsize.getHeight());
pdfWriter.open();
pdfDocument.open();
对于(int i=0;i