문제

WPF XPS 뷰어를 사용하여 XPS를 인쇄 할 때 기본 레이아웃 방향을 설정하는 방법이 있습니까?

내 고정 된 문서 XPS에는 페이지 방향이 가로 설정되어 있으며 페이지 미디어 크기는 높이가 길고 시청자의 풍경으로 올바르게 표시되는 너비가 더 길다. 인쇄 버튼을 누르면 인쇄 대화 상자 환경 설정이 초상화에 기본값을 받고 인쇄물이 인쇄된다는 것입니다.

XPS 뷰어가 인쇄되도록 설계된 XPS를 인쇄한다면 사용자 기본 인쇄 설정을 변경할 필요가 없습니다.

도움이 되었습니까?

해결책

인쇄물 필드를 채우십시오.

  PrintDialog pd = new PrintDialog();
  PrintTicket pt = new PrintTicket();
  pt.PageOrientation = PageOrientation.Landscape;
  pd.PrintTicket = pd.PrintQueue.MergeAndValidatePrintTicket(pd.PrintQueue.DefaultPrintTicket, pt).ValidatedPrintTicket;
  if (pd.ShowDialog() == true)
  {
    ...
  }

다른 팁

고정 문서를 만들 때이를 수행하는 올바른 방법은 치수가 넓은 것보다 높은 경우 페이지 내용에서 RenderTransform = rotatetransform (90)을 설정하는 것입니다. 예시:

var visualContent = new Image
            {
                Source = image,
                Stretch = Stretch.Uniform
            };
visualContent.RenderTransformOrigin = new Point(0.5, 0.5);    
visualContent.RenderTransform = new RotateTransform(90);
FixedPage fixedPage = new FixedPage();
fixedPage.Children.Add(visualContent);
var pageContent = new PageContent
{
    Child = fixedPage
};

그러나 기존 XPS 문서에 도움이되는지 확실하지 않습니다.

이것은 실제로 MXDW의 문제가 아니라 운전자가 Windows에서 작동하는 방식을 가진 문제입니다. 사용자 선택은 특정 세션에 대해 저장됩니다. 즉, 첫 번째 프린트 사이에 인쇄 할 때 FIRS 프린트 설정을 재사용하고 응용 프로그램을 종료 할 수 있습니다. 대부분의 프린터는이 정보를 어딘가에 저장하고 사용자가 세션에서 재사용 할 수있는 방법이 없으면 이런 식으로 행동합니다.

따라서 GPD 파일을 해킹하려고 시도했습니다 (프린터의 인쇄 정보가 일반적으로 저장된 경우). 방향에는 초상화와 landscape_cc270의 두 가지 가능한 값이 있습니다. 기본값은 초상화로 설정됩니다. 아래를 참조하십시오 :

*%*********************************************************************************************************************************************************************************, *****************************% 오리엔테이션*% *************** *************************************************************** **************특징 : 오리엔테이션 {*rcnameid : = Orientation_Display*DefaultOption : Portrait

*Option: PORTRAIT
{
    *rcNameID: =PORTRAIT_DISPLAY
}

*Option: LANDSCAPE_CC270
{
    *rcNameID: =LANDSCAPE_DISPLAY
}

}

이제 기본값을 Landscape_CC270으로 바꾸면 인쇄 환경 설정이 중지됩니다 (및 인쇄가 실패합니다). 실제로, 다른 값을 지정하면 기본값을 초상화로 유지하는 것으로 보입니다. 분명히 MS는 우리 가이 드라이버를 해킹하지 못하게하기 위해 일종의 수표를하고 있습니다. MS는 누군가가 설정을 조작하기를 원하지 않는 것 같습니다.

그러나 GPD 값을 조금 더 유혹하고 좋아하는 것이 나타나는지 확인할 수 있습니다. 조금 더 해킹 할 것입니다.

경고 : 당신이 무엇을하고 있는지 모르는 경우 GPD 파일을 조작해서는 안됩니다. 여전히 계속하고 싶다면 백업을 만드십시오!

힌트 : 그들은 저장됩니다 %WINDOWS%system32\spool\drivers\w32x86\3 폴더.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top