2009-09-03 3 views
0

VB6 응용 프로그램에서 사용자의 기본 프린터가 으로 설정된 경우 Microsoft Office Document Image Writer 다음 코드 줄을 사용하면 응용 프로그램에서 오류 번호 380 (잘못된 속성 값)을 throw합니다.Microsoft Office Document Image Writer를 프로그래밍 방식으로 VB6에서 가로로 설정할 수 없습니까?

Printer.Orientation = vbPRORLandscape 

이 선이 무엇을하고 있는지에 익숙하지 않은 경우, 사용자의 기본 프린터가 가로 모드에서 제공되는 어떤 인쇄 설정하도록 할 책임이 있으며 가로 방향의 치수를 (높이 제공/width) (Printer 객체에 대해) 다음 코드는 페이지의 항목 배치 좌표를 올바르게 나타낼 수 있습니다.

나는 고글을 돌았고 MODIW 드라이버에서 일반적으로 받아 들여지는 ("complain about feature") 것으로 보입니다 (예 : this thread 참조). Windows 프린터 설정 창 (옵션에서 가로 방향을 선택하도록 지시 한 후) 또는 프린터가 MODIW인지 확인한 후 사용자가 가로 방향에 있어야하는 문서를 생성하지 못하도록하는 것과 같은 몇 가지 해결 방법이있었습니다 방법. DEVMODE라는 또 다른 제안이 있었지만이 제안을 이해하지 못했고 예의 범절을 찾지도 못했고 제대로 작동하는지 확인한 사람도 없었습니다.

나는 지혜로운 사람이다. 물리적 인 프린터는이 줄에 아무런 문제가 없습니다. 심지어 Microsoft XPS Document Writer 및 필자가 시도한 다양한 PDF 프린터에도이 줄에는 아무런 문제가 없습니다. VB6 개발자가 Microsoft Office Document Image Writer 드라이버를 사용하여 오리엔테이션을 변경하는 데 이전에 문서화되지 않은 방법을 찾았 으면합니다. 이 문제는 논의 (당신이 '풍경'의 페이지에서 검색을 수행, 아직 더 아래로 스크롤해야합니다)이 링크 CLICK ME 한 번 봐 PrintSchema.OrientationValue.Landscape

:

답변

1

이상한 버그를 해결할 수있는 이상한 해결 방법이 있습니다. Microsoft offer 프린터 개체를 사용하여 현재 문서의 가로로 일시적으로 설정하는 대신 기본값 인을 변경할 수있는 무료 DLL입니다.

이렇게 (예 : KnowledgeBase article의 샘플 양식 코드) 시도해 볼 수 있습니다. 인쇄를하기 전에 기본 방향을 가로로 변경합니다. 그런 다음 폼을 언로드 할 때 원래 기본 방향으로 복원합니다. 나는 이것을 시도하지 않았다, 그것이 효과가 있을지 모른다.

Dim obj As PageSet.PrinterControl 

Private Sub Command1_Click() 
    On Error GoTo errorhandler: 
    Set obj = New PrinterControl 
    obj.ChngOrientationLandscape 
    <Now do the printing> 

    Exit Sub 

errorhandler: 
    MsgBox Err.Description 
    obj.ReSetOrientation 

End Sub 


Private Sub Form_Unload(Cancel As Integer) 

    obj.ReSetOrientation 'This resets the printer to portrait.' 

End Sub 
-1

이 시도 당신이 묘사하는 것과 같지는 않지만 당신을 정확하게 이해한다면 그것이 당신에게 당신이 찾고있는 답을 줄 것이라고 생각합니다.

+0

감사합니다.하지만이 제안에 대해 자세히 설명해 주시겠습니까? 나는 VB6에서 사용할 PrintSchema 객체를 찾지 못했고 Google은이 제안에도 도움이되지 않았다. – ckittel

+0

제공된 링크에는 몇 가지 제안 사항이 있습니다. .NET을 사용하고 OP가 아닌 경우. – Corin

+0

PrintSchema는 WPF이므로 확실히 VB6이 아닙니다. 그 페이지는 ckittel의 문제에 대해서도 다루지 않습니다. – MarkJ

1

문서 이미지 작성자와 함께 작업 한 적이 없지만이 thread은 방향이 레지스트리 값에 의해 실제로 제어된다는 것을 나타냅니다. 드라이버가 레지스트리 값에 지정된 모드로만 작동하고 레지스트리 값과 일치하지 않는 Print.Orientation 속성의 값을 모두 무효로 처리한다는 느낌이 들게됩니다.

관련 문제