有谁知道如何将图像文件轻松转换为PDF格式。我需要从数据库中获取图像并将其以PDF格式显示在屏幕上。我究竟做错了什么?我尝试使用iText,但没有结果。
我的代码:
StreamResource resource = file.downloadFromDatabase();//get file from db
Document converToPdf=new Document();//Create Document Object
PdfWriter.getInstance(convertToPdf, new FileOutputStream(""));//Create PdfWriter for Document to hold physical file
convertToPdf.open();
Image convertJpg=Image.getInstance(resource); //Get the input image to Convert to PDF
convertToPdf.add(convertJpg);//Add image to Document
Embedded pdf = new Embedded("", convertToPdf);//display document
pdf.setMimeType("application/pdf");
pdf.setType(Embedded.TYPE_BROWSER);
pdf.setSizeFull();
谢谢。
最佳答案
您没有正确使用iText:
您永远不会关闭编写器,因此图像的添加永远不会写入输出流。
您将一个空字符串传递给FileOutputStream
。如果要将pdf保留在内存中,请使用ByteArrayOutputStream
。如果不是,请定义一个临时名称。
您将Document
对象(它是iText特定的对象)传递给Embedded
对象,并将其视为文件。它不是pdf文件或byte []。您可能需要将ByteArrayOutputStream
传递或将临时文件作为ByteArrayOutputStream
读取到内存中,然后将其传递给Embedded
。