2011-07-17 4 views
1

일련의 이미지 파일에서 Impress 프레젠테이션을 만듭니다. Page을 만들고 아무런 문제없이 GraphicObjectShape을 삽입 할 수 있지만 이미지가 포함 된 도형의 크기를 조정해야 할 때 붙어 있습니다.OpenOffice Drawing API : 페이지 크기의 사진으로 슬라이드 쇼 만들기

내 문제는 내가 어떤 크기를 사용해야하는지 전혀 모른다는 것입니다. 물론 나는 시행 착오의 과정을 밟을 수 있지만, 그렇게 전문적이지는 않겠는가?

내 질문 : 새로운 크기는 얼마입니까 픽셀을으로 만들면 Page을 만들 수 있습니까? 그림의 컨텍스트 메뉴에서 찾을 수있는 "원본 크기"기능에 액세스하는 방법은 무엇입니까?

페이지 설정에 11.02 "x 8.27"크기가 표시됩니다. - 새 문서와 새 페이지를 만들 때 모든 향후 버전에서이 크기를 사용할 것이라는 보증이 있습니까?

이미지 파일이 전체 페이지에 맞게 어떤 크기인지 알아 보는 것은 흥미로운 일입니다.

답변

1

래스터 이미지가 96 DPI 해상도로로드 된 것 같습니다. 당신이 다음 임프레스의 기본 페이지 크기 (11.02 "X 8.27") (픽셀 단위) 완벽하게 피팅 래스터 이미지 크기를 사용하는 경우입니다 :

1058 X 794

또한,이 고수 경우 크기 (아마도 PPT에 저장할 때 아마도 가장 호환 가능한 선택 일 것입니다), 이것이 기본값이라는 사실에 의존하지 마십시오. 문서를 만든 후에는 페이지의 WidthHeight 속성을 설정하여 슬라이드의 크기를 설정할 수 있습니다. 다른 페이지의 크기를 조정 한 후에 다른 모든 페이지가 뒤따를 것으로 보입니다.

API는 100/mm 스케일을 사용합니다. 11.02 iches가 280mm이므로, 너비가 280 * 100 = 28000이고, 높이 11.02 "X 8.27"에 presentaion 크기를 조절하고 (a 바람직하게는 4 : 3)로 삽입 21000.

자바 예는 화상 맞게 전체 페이지 :

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);