2011-12-12 3 views
6

팩스를받을 때 자동 시스템을 통해 들어오는 PDF 문서를 데이터베이스에 유지 관리하는 데 사용할 웹 응용 프로그램을 만들고 있습니다. 사용자는 이러한 문서를 검토 할 수 있어야하며 이러한 문서로 할 수있는 일반적인 일 중 하나는 잘못된 페이지로 팩스를 넣었을 때 개별 페이지를 대칭/회전시키는 것입니다. 이것은 거의 항상 페이지의 180도 회전입니다. 나는이 일을하는 함수를 만들었지 만 작동하는 것처럼 보이지만 호출 된 것은 처음이다. 이후의이 함수 호출은 더 이상 작동하지 않습니다. 이 함수와 관련된 또 다른 이상한 점은 선택한 위치의 문서에 텍스트를 추가하는 다른 메서드가 호출된다는 것입니다. 나는 텍스트와 좌표를 전달하고, 문서의 좌표에 텍스트를 쓰고, 모든 것이 잘됩니다. 이 문제는 이면 문서가 회전 된 것입니다 (한 번만 이됩니다). 사용자가 문서에 텍스트를 추가하려고하면 텍스트를 배치하는 좌표가 반대로 표시되고 텍스트가 거꾸로되어 있습니다.PdfSharp : 문서의 페이지 회전

이 모든 것은 궁극적으로 페이지 회전을 어떻게 든 잘못하고 있음을 나타냅니다. PDF 파일에서 페이지를 회전하는 방법에 대한 좋은 샘플을 찾지 못하는 것 같습니다. 길을 안내합니다. 따라서 어떤 지침은 대단히 도움이되며 대단히 감사하게 될 것입니다. 미리 감사드립니다. 하지만 대신에,

// This is how I'm rotating the page... 
public PdfDocument FlipPage(byte[] documentSource, int pageNumber) 
{ 
    using (var stream = new MemoryStream()) 
    { 
     stream.Write(documentSource, 0, documentSource.Length); 
     var document = PdfReader.Open(stream); 
     var page = document.Pages[pageNumber - 1]; 
     page.Rotate = 180; 

     return document; 
    } 
} 

// This is how I'm adding text to a page... 
public static void AddTextToPage(this PdfDocument document, int pageNumber, Annotation annotation) 
{ 
    var page = document.Pages[pageNumber - 1]; 
    annotation.TargetHeight = page.Height.Value; 
    annotation.TargetWidth = page.Width.Value; 

    var graphics = XGraphics.FromPdfPage(page); 
    var textFormatter = new XTextFormatter(graphics); 
    var font = new XFont("Arial", 10, XFontStyle.Regular); 
    graphics.DrawString(annotation.Text, font, XBrushes.Red, new PointF((float)annotation.TargetX, (float)annotation.TargetY)); 
} 
+0

다음을 확인하십시오 : graphics.RotateTransform (180) –

+0

컴파일하고 성공하지만 페이지에는 아무런 영향을 미치지 않습니다. –

답변

6

제 전문 영역이 아니다 "page.Rotate = 180;": 여기

페이지에 텍스트를 페이지를 회전하고, 추가 내가 현재 사용하고 코드입니다 나는 그런 일을 시도 할 것 :

page.Rotate = (page.Rotate + 180) % 360; 

(코드, 캐스트가 필요할 수 있습니다 테스트하지)

텍스트를 추가 할 때, 당신은 "page.Rotate의 == 180"을 테스트 한 후 다른 코드를 사용할 수 있습니다 (예 : "graphics.RotateTransform (180)").

+0

Aahhh ... 나는 후속 업데이트에서 * 해당 속성을 확인하는 아이디어를 고려하지 않았습니다. 내가 그 사진을주고 어떻게 작동하는지 보도록하겠습니다. 예상대로 작동하면 올바른 것으로 표시합니다. 매우 감사합니다. –

관련 문제