问题描述
我一直在尝试创建一种将BMP之类的图像转换为PDF的方法,并让创建的PDF保持相同的尺寸。例如,如果我查看以ms paint绘制的BMP文件的高度和宽度,则它的宽度为0.87英寸,高度为0.92英寸。不幸的是,在Adobe Acrobat中查看时,转换后的文件的高度为1.15英寸(宽)和1.22英寸(高)。
我是iText的新手,并且为许多不兼容的较旧版本而苦苦挣扎。
这是我用来将图像转换为PDF的代码:
public static byte[] convertimageBytesToPdfBytes(byte[] imgBytes) {
ByteArrayOutputStream returnSM = new ByteArrayOutputStream();
try {
PdfWriter writer = new PdfWriter(returnSM);
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
//PdfDocument doc = new PdfDocument(new PdfReader(src),new PdfWriter(returnSM));
// Creating an ImageData object
ImageData data = ImageDataFactory.create(imgBytes);
// Creating an Image object
Image img = new Image(data);
img.setBorder(Border.NO_BORDER);
float imgWidth = img.getimageWidth();
float imgHeight = img.getimageHeight();
img.setFixedPosition(0,0);
Rectangle rect = new Rectangle(imgWidth,imgHeight);
PageSize pagesize = new PageSize(rect);
pdfDoc.setDefaultPageSize(pagesize);
// Creating a Document Document
Document document = new Document(pdfDoc,pagesize);
document.setMargins(0,0);
// Adding image to the document
document.add(img);
// Closing the document
document.close();
writer.close();
}
catch (Exception e) {
e.printstacktrace();
}
return returnSM.toByteArray();
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)