2016-06-08 7 views
1

나는 MSOfficeDemo/MSWord 클래스를 초보자로 사용하고 있습니다.JNA를 사용하여 MS Word 문서 인쇄

어떻게 Word에서 열려있는 문서를 인쇄 할 수 있습니까? MSWord.java 클래스의 새로운 방법에

나는 시도했다 :

this.invokeNoReply("Print", this.getDocuments()); 
this.invokeNoReply("PrintOut", this.getDocuments()); 
this.invokeNoReply("FilePrint", this.getDocuments()); 

나는 위의 호출 각각에 대한 Unknown Name (HR = -2147352570) 오류가 발생합니다.

저는 일주일 동안 검색 중이며 해결책을 찾지 못했습니다.

답변

0

추측하기보다는 메서드 서명을 설명서에 일치시켜야합니다.

실제로 문서 모음이 아닌 활성 문서 (this.getActiveDocument())를 인쇄해야합니다. 그런 다음 Document methods을 참조하여 사용할 방법 (및 인수)을 확인하십시오.이 경우 PrintOut이 올바른 방법입니다.

당신이 매개 변수에 전달할 무엇을, 당신이 ComLateBindingObject의 다양한 메소드 서명을보고 필요에 가장 잘 맞는 하나를 선택해야합니다 (하나 개 또는 두 개의 인수, 당신은 배열을 필요로보다.

를 전달할 수 있습니다

this.invokeNoReply("PrintOut", getActiveDocument()); 

그 아무튼 경우

이 코드는 올바른 방향으로 가야 위 ... 그것은 (내 Windows VM에 MS 워드가없는) 테스트를하지만, 링크와 결합하지 않은 작동합니다 시도 : 시도 :

this.invokeNoReply("PrintOut", getActiveDocument().getIDispatch()); 

매개 변수를 실제로 전달해야하는 경우 매개 변수를 VARIANT으로 만들고 하나 이상의 매개 변수 (또는 매개 변수 배열)를 채우기 시작합니다.

+0

감사합니다. [Document Methods] (https://msdn.microsoft.com/en-us/library/office/dn320611.aspx) 페이지는 제가 찾고있는 페이지입니다. 더하기'this.invokeNoReply ("PrintOut", getActiveDocument();는 잘 작동합니다. –