안녕하세요? 
Vista Beta2 에서 잘 동작하던 코드가 RC1 에서 동작하지 않네요? 
어떤 이유인지 모르겠습니다. 
정성태님이 알려주신 소스를 다소 수정하여서 사용하고 있는데, 
해당 소스의 내용은, 
XPS Document를 읽어와서 Bitmap 이미지로 변환하는 소스입니다. 
알려주신 소스는 하기 URL 의 게시판에 있구요, 
게시판에 쓰여진 소스를 아래에 한번 더 붙여넣기 하였습니다. 
https://www.sysnet.pe.kr/Default.aspx?mode=2&sub=0&pageno=0&detail=1&wid=229 
동작되지 않는 부분은 
DocumentPage aPage = fixedDocumentSeq.DocumentPaginator.GetPage( i ); 
부분으로, 
XPS Document 의 각 페이지를 가져와서 DocumentPage Type 에 할당해 준 다음, 
Bitmap 이미지로 생성해 주어야 하는데... 
fixedDocumentSeq.DocumentPaginator.GetPage(Zero Based 페이지 번호); 
부분에서 동작하지 않고 죽어 버립니다. 
혹시 원인을 알고 계신지 여쭙겠습니다. 감사합니다. 
=====<알려주신 소스 원본>======================================================= 
using System.IO;
using System.Windows.Documents;
using System.Windows.Xps.Packaging;
using System.Windows.Media.Imaging;
using System.Windows.Xps.Serialization;
namespace WindowsApplication1
{
    public class XpsBitmapHelper
    {
        static public void SaveXpsPageToBitmap(string xpsFileName, int[] pages)
        {
            XpsDocument xpsDoc = new XpsDocument(xpsFileName, System.IO.FileAccess.Read);
            FixedDocumentSequence fixedDocumentSeq = xpsDoc.GetFixedDocumentSequence();
            for ( int i = 0; i < fixedDocumentSeq.DocumentPaginator.PageCount; i ++ )
            {
                DocumentPage aPage = fixedDocumentSeq.DocumentPaginator.GetPage( i );
                BitmapImage bitmap = new BitmapImage();
                RenderTargetBitmap renderTarget =
                    new RenderTargetBitmap((int)aPage.Size.Width,
                                            (int)aPage.Size.Height,
                                            96, // WPF (Avalon) units are 96dpi based
                                            96,
                                            System.Windows.Media.PixelFormats.Default);
                renderTarget.Render(aPage.Visual);
                BitmapEncoder encoder = new BmpBitmapEncoder();  // Choose type here ie: JpegBitmapEncoder, etc
                encoder.Frames.Add(BitmapFrame.Create(renderTarget));
                FileStream pageOutStream = new FileStream(xpsDoc + ".Page" + i.ToString() + ".bmp", FileMode.Create, FileAccess.Write);
                encoder.Save(pageOutStream);
                pageOutStream.Close();
            }
        }
    }
}
        
        
                    
                    
                    
                    
                    
    
                    
                    
                    
                    
                    
                
                    [최초 등록일: ]
                    [최종 수정일: 9/20/2006]