Изменение размера изображения на листе книги не работает в Apache PoiJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Изменение размера изображения на листе книги не работает в Apache Poi

Сообщение Anonymous »

Я использую новейшую зависимость Apache Poi и хочу изменить размер изображения (чтобы оно не было таким большим после открытия книги):

Код: Выделить всё

    

org.apache.poi
poi
5.2.3


org.apache.poi
poi-ooxml
5.2.3


  • Я создал новую книгу в формате .xlsm и не менял шрифт по умолчанию (это Calibri 11 пикселей) согласно документации.
    < li>загруженное изображение из пикселей: ссылка на изображение Pexels
  • использован такой код:

Код: Выделить всё

import org.apache.commons.compress.utils.IOUtils;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.*;

public class ImageResizer {

public static  void main (String[] args) throws IOException {
ImageResizer resizer = new ImageResizer();
}
public ImageResizer() throws IOException {
InputStream inputStream;
XSSFWorkbook workbook = null;
XSSFSheet sheet = null;
Cell cell = null;
XSSFRow sheetRow = null;

try {
File myFile = new File("C:\\Users\\Luke\\Downloads\\TestWorkbook_AddingImage.xlsm");
FileInputStream fis = new FileInputStream(myFile);
workbook = new XSSFWorkbook (fis);
fis.close();
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
}

sheet = workbook.getSheetAt(0);

FileInputStream stream = null;
try {
stream = new FileInputStream( "C:\\Users\\Luke\\Downloads\\pexels-yura-forrat-12850802.jpg" );
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
}
CreationHelper helper = workbook.getCreationHelper();
Drawing drawing = sheet.createDrawingPatriarch();

ClientAnchor anchor = helper.createClientAnchor();
final int pictureIndex = workbook.addPicture( stream, Workbook.PICTURE_TYPE_JPEG);
stream.close();

anchor.setCol1( 0 );
anchor.setRow1( 0);
final Picture pict = drawing.createPicture( anchor, pictureIndex );
pict.resize(0.1,0.1);

FileOutputStream os = new FileOutputStream("C:\\Users\\Luke\\Downloads\\TestWorkbook_AddingImage_Saved.xlsm");
workbook.write(os);
os.close();
System.out.println("Done!");

}

}
А метод pict.resize(0.1, 0.1) делает мою картинку очень и очень маленькой (внутри ячейки едва видна точка). Я пробовал и с 0.5, и с 0.9, и даже с 2.0, но результат тот же.
Почему? Что я могу сделать, чтобы изменить размер изображения?
С наилучшими пожеланиями,
Михал

Подробнее здесь: https://stackoverflow.com/questions/750 ... apache-poi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»