Изображение становится размытым при добавлении в Excel через JXL - PullRequest
1 голос
/ 16 августа 2011

Я использую JXL API, чтобы добавить изображение в файл Excel.Использованные библиотеки:jcommon (1.0.14)jfreechart (1.0.13)jxl (2.6.10)

// chartImage is of type BufferedImage
com.KeyPoint.PngEncoder encoder = new com.KeyPoint.PngEncoder(chartImage, true, 0, 0); 
jxl.write.WritableImage image = new jxl.write.WritableImage(0, 2, (chartImage.getWidth()/100),16, 
encoder.pngEncode());
sheet.addImage(image);

Проблема заключается в том, что конструкторы WritableImage принимают ширину и высоту в терминах строк и столбцов (ширина: от столбца 0 до столбца chartImage.getWidth () / 100, высота: строка2 в строке 16).Это приводит к размытию изображения диаграммы.Как я могу получить исходное изображение в Excel, используя JXL?Пожалуйста, помогите.Спасибо!: -)

Ответы [ 2 ]

1 голос
/ 17 августа 2011

Проблема заключается либо в сжатии, используемом в Excel, либо в кодере, который вы использовали.

Решение, которое работает, - это нарисовать диаграмму больше, чем намеченное изображение, а затем позволить Excel выполнить масштабирование.Это обеспечивает ясность, хотя книга, заполненная диаграммой, будет намного больше, чем раньше.

AFAIK - это единственное решение проблемы.У меня были похожие проблемы с Word и PowerPoint, и решение кажется масштабируемым.

При масштабировании диаграммы следует учитывать, что размеры шрифтов также необходимо изменить.

1 голос
/ 16 августа 2011

Не используйте PngEncoder напрямую.Вместо этого используйте соответствующий метод ChartUtilities, который найдет кодировщик Sun / Oracle PNG, если он доступен.

...