2009-09-18 8 views
1

IM utilisant le scanner TWAIN & gdiplus.dll.numériser et enregistrer au format PDF dans C#

i scannée le fichier, et peut enregistrer en tant que format d'image comme * .jpg, * .bmp

mais il est permet pas d'enregistrer comme au format PDF. Affichage d'une image de format inconnu.

c'est le code,


bool public static SaveDIBAs (chaîne nomImage, 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

Scanner quel fichier? – ceejayoz

+0

La fonction 'GdipSaveImageToFile' ne prend pas en charge le format PDF. –

Répondre

3

D'abord, vous aurez besoin pour acquérir l'image en utilisant soit TWAIN ou WIA et puis une fois que vous avez capturé cette image dont vous avez besoin de convertir en PDF en utilisant quelque chose comme abcPDF

1

Vous ne savez pas exactement de quoi vous parlez, mais cette bibliothèque: http://sourceforge.net/projects/pdflibrary/ est excellente pour enregistrer un PDF.

Pour la numérisation (à partir d'un scanner TWAIN?) Consultez http://www.codeproject.com/KB/dotnet/twaindotnet.aspx Ive fait cela avant, et il semble fonctionner plutôt bien.

+0

je ne pouvais pas numériser les fichiers image en format PDF ... Plz aidez-moi. – nithi

+0

Vous devez d'abord les scanner via un périphérique TWAIN/WIA. À ce stade, la plupart des sorties vers une image quelconque, que vous pouvez ensuite utiliser pdflibrary pour l'enregistrer. Il n'y a pas de bibliothèque C# pour Scan-> PDF directement, vous devrez combiner deux autres choses. – Erich

0

si vous utilisez GDI. Imprimer directement sur une imprimante PDF (j'utilise bullzip pdf moi-même parce qu'il est gratuit et dispose d'une fonction d'impression silencieuse)

1

Il ne sera pas enregistrer en format PDF du tout, car la bibliothèque GDI de Microsoft n'a pas de fonction PDF, la meilleure façon de faire est Enregistrez votre fichier au format JPEG en premier dans un fichier temporaire. Et puis utilisez la bibliothèque iTextSharp ou la bibliothèque PDFSharp pour créer des PDF en JPEG, vous pouvez intégrer votre JPG/Bitmap n'importe quel type de fichier dans PDF en utilisant ces deux bibliothèques.

Questions connexes