我们有一个程序首先扫描然后将文件路径存储在数据库中。 扫描时,首先程序扫描为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首选项,但没有任何结果。
我还检查了扫描仪原始程序,以设置有关此事的任何功能,但我找不到任何有用的东西......
任何线索???