使用iTextSharp dll将C#转换为jpeg为pdf会产生黑色背景色

时间:2015-06-17 14:38:14

标签: c# pdf-generation itextsharp

我们有一个程序首先扫描然后将文件路径存储在数据库中。 扫描时,首先程序扫描为jpg格式,然后转换为该文件为pdf文件。一切都好。它已成功完成。

只有问题是,对于一些爱普生,惠普,三星扫描仪,在扫描并转换为pdf后,文件正在转换为黑色背景颜色和相反的字符的白色前景。

到目前为止,只有佳能扫描仪按预期工作。

我一直在使用以下代码转换过程:

 public void JPGtoPDF(string jpgpath)
    {
        iTextSharp.text.Document doc = new iTextSharp.text.Document(iTextSharp.text.PageSize.LETTER, 10, 10, 42, 35);
        try
        {
            //Create Document class object and set its size to letter and give space left, right, Top, Bottom Margin  
            scannedFile = pdfFilePath + "ScannedFile" + Utils.ServerSistemTarihi().ToString().Replace(".", "").Replace(":", "").Replace(" ", "").Replace("/", "") + ".pdf";

            PdfWriter wri = PdfWriter.GetInstance(doc, new FileStream(scannedFile, FileMode.OpenOrCreate));
            doc.Open();//Open Document to write   
            Paragraph paragraph = new Paragraph("");
            // Now image in the pdf file 

            DirectoryInfo dn = new DirectoryInfo(@"C:\Windows\Temp\");
            FileInfo[] fn = dn.GetFiles();
            for (int i = 0; i < fn.Length; i++)
            {
                if (fn[i].Extension.ToLower() == ".jpg")
                {
                    string imageFilePath = fn[i].FullName;
                    byte[] b = File.ReadAllBytes(imageFilePath);
                    iTextSharp.text.Image jpg = iTextSharp.text.Image.GetInstance(b);
                    //Resize image depend upon your need  
                    jpg.ScaleToFit(580f, 560f);
                    //Give space before image  
                    jpg.SpacingBefore = 30f;
                    //Give some space after the image  
                    jpg.SpacingAfter = 1f;
                    jpg.Alignment = Element.ALIGN_CENTER;
                    doc.Add(paragraph); // add paragraph to the document  
                    doc.Add(jpg); //add an image to the created pdf document
                }
            }
        }
        catch (DocumentException docEx)
        {
            //handle pdf document exception if any  
        }
        catch (IOException ioEx)
        {
            // handle IO exception  
        }
        catch (Exception ex)
        {
            // ahndle other exception if occurs  
        }

那么我需要做些什么来克服这个问题,并根据扫描仪品牌阻止扫描文件?

我检查了adobe reader首选项,但没有任何结果。

我还检查了扫描仪原始程序,以设置有关此事的任何功能,但我找不到任何有用的东西......

任何线索???

created JPEG Sample

0 个答案:

没有答案