JPEG, BMP 유형의 이미지에서 PDF를 생성하려고하지만 이미지의 일부가 항상 잘릴 수 있습니다. 나는 기본 창 그림 Sunset.jpg 중 하나를 사용하고 있습니다.PDFBox - 이미지에서 PDF 생성 문제
이import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.imageio.stream.FileImageInputStream;
import org.apache.pdfbox.exceptions.COSVisitorException;
import org.apache.pdfbox.io.RandomAccessFile;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.edit.PDPageContentStream;
import org.apache.pdfbox.pdmodel.graphics.xobject.PDCcitt;
import org.apache.pdfbox.pdmodel.graphics.xobject.PDJpeg;
import org.apache.pdfbox.pdmodel.graphics.xobject.PDPixelMap;
import org.apache.pdfbox.pdmodel.graphics.xobject.PDXObjectImage;
public class ImageToPDF
{
public void createPDFFromImage(String file, String image) throws IOException, COSVisitorException
{
PDDocument doc = null;
try
{
doc = new PDDocument();
PDPage page = new PDPage();
doc.addPage(page);
PDXObjectImage ximage = null;
if(image.toLowerCase().endsWith(".jpg") || image.toLowerCase().endsWith(".jpeg"))
{
BufferedImage awtImage = ImageIO.read(new File(image));
ximage = new PDJpeg(doc, awtImage, 0);
}
else if (image.toLowerCase().endsWith(".tif") || image.toLowerCase().endsWith(".tiff"))
{
ximage = new PDCcitt(doc, new RandomAccessFile(new File(image),"r"));
}
else
{
BufferedImage awtImage = new BufferedImage(1000, 800, BufferedImage.TYPE_INT_RGB);
awtImage = ImageIO.read(new FileImageInputStream(new File(image)));
ximage = new PDPixelMap(doc, awtImage);
}
System.out.println(" Width of the image.... "+ximage.getWidth());
PDPageContentStream contentStream = new PDPageContentStream(doc, page);
contentStream.drawImage(ximage, 20, 20);
contentStream.close();
doc.save(file);
}
finally
{
if(doc != null)
{
doc.close();
}
}
}
public static void main(String[] args)
{
ImageToPDF app = new ImageToPDF();
try
{
app.createPDFFromImage("C:\\test1.pdf", "C:\\Sunset.jpg");
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
내가 뭘 잘못 수정에 제발 도와주세요 : 아래
는 코드입니다.
혹시에 대한 답변을 찾으셨습니까하여 여기서 질문 하나? 그렇다면 그들도 같은 문제에 직면하고 있기 때문에 공유하십시오. – Anuj
최신 버전을 사용해 보셨습니까? jemp와 tempbox가 포함되어있어 모든 라이브러리 usch를 적절하게 사용 하시겠습니까 ?? – MemLeak