我正在编写一个代码,将Microsoft power-point(ppt)幻灯片转换为图像,并将生成的图像写入pdf文件.以下代码生成并将图像写入pdf文件,但我面临的问题是,当我将图像写入pdf文件时,它的大小超过了pdf页面大小,我只能看到75%的图像休息是不可见的.这里需要注意的另一件事是,pdf文件中的书写图像看起来像缩放或扩展.看一下下面的代码片段:
for (int i = 0; i < slide.length; i++) {
BufferedImage img = new BufferedImage(pgsize.width, pgsize.height, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = img.createGraphics();
graphics.setPaint(Color.white);
graphics.fill(new Rectangle(0, 0, pgsize.width, pgsize.height));
slide[i].draw(graphics);
fileName="C:/DATASTORE/slide-"+(i+1)+".png";
FileOutputStream out = new FileOutputStream(fileName);
javax.imageio.ImageIO.write(img, "png", out);
out.flush();
out.close();
com.lowagie.text.Image image =com.lowagie.text.Image.getInstance(fileName);
image.setWidthPercentage(40.0f);
doc.add((image));
}
doc.close();
} catch(DocumentException de) {
System.err.println(de.getMessage());
}
Run Code Online (Sandbox Code Playgroud)
如果有人知道解决方案,请帮我纠正.谢谢.
这是它完成我希望的任务的代码.现在,按照Bruno Lowagie的建议,我得到了理想的结果.
但是,正如Bruno Lowagie先前指出的那样,它们是生成的png图像中的一个问题.生成的png图像不正确,因为幻灯片中的形状或图像与幻灯片的文本重叠.你能帮我识别并纠正错误吗?
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import com.itextpdf.text.Image;
import java.awt.image.BufferedImage;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.poi.hslf.model.Slide;
import org.apache.poi.hslf.usermodel.SlideShow;
import …Run Code Online (Sandbox Code Playgroud) 我已经阅读了doc文件,现在我正在尝试阅读docx文件内容.当我搜索样本代码时,我发现很多,没有任何效果.检查代码以供参考......
import java.io.*;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.text.Document;
import com.itextpdf.text.Paragraph;
public class createPdfForDocx {
public static void main(String[] args) {
InputStream fs = null;
Document document = new Document();
XWPFWordExtractor extractor = null ;
try {
fs = new FileInputStream("C:\\DATASTORE\\test.docx");
//XWPFDocument hdoc=new XWPFDocument(fs);
XWPFDocument hdoc=new XWPFDocument(OPCPackage.open(fs));
//XWPFDocument hdoc=new XWPFDocument(fs);
extractor = new XWPFWordExtractor(hdoc);
OutputStream fileOutput = new FileOutputStream(new File("C:/DATASTORE/test.pdf"));
PdfWriter.getInstance(document, fileOutput);
document.open();
String fileData=extractor.getText();
System.out.println(fileData);
document.add(new Paragraph(fileData));
System.out.println(" pdf document created");
} catch(IOException e) {
System.out.println("IO Exception"); …Run Code Online (Sandbox Code Playgroud)