Кажется, что растровые изображения загружаются с разрешением 96 DPI. Если вы используете размер страницы по умолчанию для Impress (11,02 x 8,27 дюйма), тогда размер полностью подходящего растрового изображения (в пикселях):
1058 x 794
Кроме того, если вы придерживаетесь этого размера (поскольку это, вероятно, наиболее совместимый выбор, например, когда вы сохраняете в PPT), не полагайтесь на тот факт, что это значение по умолчанию. После создания документа вы можете установить размер слайдов, установив свойства Width
и Height
любой страницы (кажется, что все другие страницы будут следовать после изменения размера одной из них).
API использует шкалу 100 / мм. 11.02 дюйма равны 280 мм, поэтому ширина 280 * 100 = 28000, высота 21000.
Пример Java для изменения размера представления до 11,02 "x 8,27" и вставки (предпочтительно 4: 3) изображения для всей страницы:
XDrawPage page;
XMultiServiceFactory factory;
// ... setting up the environment and opening document
// resize the page (and all other pages) to our default size
XPropertySet pagePropSet = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, page);
pagePropSet.setPropertyValue("Width", 28000);
pagePropSet.setPropertyValue("Height", 21000);
// create GraphicObjectShape with the size of the page in the top-left corner
Object picture = factory.createInstance("com.sun.star.drawing.GraphicObjectShape");
XShape pictureShape = (XShape)UnoRuntime.queryInterface(XShape.class, picture);
pictureShape.setSize(new Size(28000, 21000));
pictureShape.setPosition(new Point(0, 0));
// load the image file into our the shape
XPropertySet propSet = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, pictureShape);
propSet.setPropertyValue("GraphicURL", new File("c:\\Users\\Vbence\\Downloads\\slide.png").toURI().toURL().toString());
// add the shape to the page
page.add(pictureShape);