2009-09-18 3 views
1

TWAIN 스캐너 & gdiplus.dll을 사용하여 메신저하십시오. 스캔하여 PDF로 저장 #

내가 파일을 스캔하고,

을 .bmp로 * .JPG * 같은 이미지 형식으로 저장할 수 있지만 PDF 형식으로 저장할 수 없습니다. 알 수없는 형식의 사진 오류를 표시합니다. 이 코드입니다

,


공공 정적 부울 SaveDIBAs (문자열 picname, IntPtr입니다 bminfo, IntPtr입니다의 pixdat) {

 SaveFileDialog sd = new SaveFileDialog(); 
     sd.FileName = picname; 
     sd.Title = "Save bitmap as..."; 
     sd.Filter = "PDF (*.pdf)|*.pdf"; 
     sd.Filter = "Bitmap file (*.bmp)|*.bmp|TIFF file (*.tif)|*.tif|JPEG file (*.jpg)|*.jpg|PNG file (*.png)|*.png|PDF file (*.pdf)|*.pdf|All files (*.*)|*.*"; 

     sd.FilterIndex = 1; 
     if (sd.ShowDialog() == DialogResult.OK) 

      return false; 


     Guid clsid; 
     if (!GetCodecClsid(sd.FileName, out clsid)) 
     { 
      //MessageBox.Show("Unknown picture format for extension " + Path.GetExtension(sd.FileName), 
          "Image Codec", MessageBoxButtons.OK, MessageBoxIcon.Information); 
      return false; 
     } 

     IntPtr img = IntPtr.Zero; 
     int st = GdipCreateBitmapFromGdiDib(bminfo, pixdat, ref img); 
     if((st != 0) || (img == IntPtr.Zero)) 
      return false; 

     st = GdipSaveImageToFile(img, sd.FileName, ref clsid, IntPtr.Zero); 
     GdipDisposeImage(img); 
     return st == 0; 
     } 
      [DllImport("gdiplus.dll", ExactSpelling=true)] 
     internal static extern int GdipCreateBitmapFromGdiDib(IntPtr bminfo, IntPtr pixdat, ref IntPtr image); 

      [DllImport("gdiplus.dll", ExactSpelling=true, CharSet=CharSet.Unicode)] 
     internal static extern int GdipSaveImageToFile(IntPtr image, string filename, [In] ref Guid clsid, IntPtr encparams); 

      [DllImport("gdiplus.dll", ExactSpelling=true)] 
     internal static extern int GdipDisposeImage(IntPtr image); 
    } 

   ****The above code doesnt allow to save as in PDF format.**** 
+0

어떤 파일을 검색합니까? – ceejayoz

+0

'GdipSaveImageToFile' 함수는 PDF 형식을 지원하지 않습니다. –

답변

3

먼저이 필요할 것 TWAIN 또는 WIA을 사용하여 이미지를 수집 한 다음 캡처 한 그 이미지는 당신이 abcPDF

1

같은 것을 사용하여 PDF로 변환 할 필요가 없습니다 전적으로 당신이 무엇에 관해 얘기하는지 모르겠지만,이 라이브러리 : http://sourceforge.net/projects/pdflibrary/는 PDF 저장을위한 우수합니다. 스캔

(A TWAIN 스캐너에서?) 체크 아웃 http://www.codeproject.com/KB/dotnet/twaindotnet.aspx 필자는 그 전에 수행하고 꽤 잘 작동하는 것 같다.

+0

이미지 파일을 PDF로 스캔 할 수 없습니다 ... Plz help me. – nithi

+0

먼저 TWAIN/WIA 장치를 통해 스캔해야합니다. 이 시점에서 대부분의 이미지는 일종의 이미지로 출력되며 pdflibrary를 사용하여 이미지를 저장할 수 있습니다. Scan-> PDF에 대한 C# 라이브러리가 없으므로 다른 두 가지를 결합해야합니다. – Erich

0

GDI를 사용하는 경우 PDF 프린터로 직접 인쇄하십시오. (무료이기 때문에 자동 인쇄 기능이 있습니다.)

1

Microsoft의 GDI 라이브러리에는 PDF 기능이 없으므로 PDF로 저장되지 않습니다. 가장 좋은 방법은 다음과 같습니다. 파일을 임시 파일에 JPEG로 저장하십시오. 그리고 iTextSharp 라이브러리 또는 PDFSharp 라이브러리를 사용하여 JPEG에서 PDF를 만들면,이 두 라이브러리를 사용하여 JPG/Bitmap 파일을 PDF 안에 임베드 할 수 있습니다.

관련 문제