2009-04-23 3 views
1

OpenOffice.org 문서를 인쇄 할 때 생성 될 페이지 수를 계산하고 싶습니다. 다음 코드를 사용하여 ODT 파일에 대해 이미 수행 할 수 있습니다.어떻게 할 수 있습니까? OpenOffice.org 스프레드 시트의 페이지를 프로그래밍 방식으로 얻을 수 있습니까?

public short getPageCount() { 
     XModel model = (XModel) UnoRuntime.queryInterface(XModel.class, 
         getDocument()); 

     XTextViewCursorSupplier supplier = (XTextViewCursorSupplier) UnoRuntime 
         .queryInterface(XTextViewCursorSupplier.class, model 
             .getCurrentController()); 

     XTextViewCursor viewCursor = supplier.getViewCursor(); 

     XPageCursor pageCursor = (XPageCursor) UnoRuntime.queryInterface(
         XPageCursor.class, viewCursor); 

     pageCursor.jumpToLastPage(); 

     return pageCursor.getPage(); 
} 

public Object getDocument() { 
     XComponentContext context = Bootstrap.bootstrap(); 

     XMultiComponentFactory factory = context.getServiceManager(); 

     Object desktop = factory.createInstanceWithContext(
         "com.sun.star.frame.Desktop", context); 

     XComponentLoader loader = (XComponentLoader) UnoRuntime.queryInterface(
         XComponentLoader.class, desktop); 

     XComponent component = loader.loadComponentFromURL("file:///path/to/file.odt", 
         "_blank", 0, new PropertyValue[0]); 

     return UnoRuntime.queryInterface(XTextDocument.class, 
         component); 
} 

ODS 파일과 비슷한 작업을 수행 할 수 있는지 알고 싶습니다. 어쩌면 아니오. 시트에 페이지 나누기가 있습니까? SpreadsheetViewSettings 클래스에는 ShowPageBreaks 속성이 있지만 PageBreakCount 또는 getPageBreaks()은 없습니다. : P

답변

0
// get the sheet document using UnoRuntime 
XSpreadsheetDocument sheetDoc = ...; 
// get an object containing all sheets 
XSpreadsheets sheets = sheetDoc.getSheets(); 
// get the sheets names 
String[] sheetnames = sheets.getElementNames(); 

거기에 당신이 계산하거나 반복 할 수있는 것이 있습니다.

편집 :
시트 자체에는 인쇄 페이지 개념이 없을 것입니다.
그래서 XPrintPreview와 같은 것을 사용해야 할 것 같지만 거기에서 페이지를 결정하는 방법을 모르거나 Printing Spreadsheet Documents을보고 PrintAreas 및 일부 수학을 사용해보십시오.

+0

미안하지만, 나는 단지 내가 원하지 않는다는 것을 분명히하지 않았다는 것을 깨달았다. 스프레드 시트를 인쇄하면 생성 될 페이지 수를 나타냅니다. 아니요. 시트 수는 항상 아니오와 동일하지 않을 수 있습니다. 인쇄 된 페이지 수. –

관련 문제