如何使用IText 7将图像转换为PDF,并在PDF中保持高度和宽度相同?

问题描述

我一直在尝试创建一种将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 (将#修改为@)