2010-12-07 3 views

답변

4

동일한 경우 이진 비교를 수행 할 수 있습니다. 문맥 비교를 위해 PDF 라이브러리가 필요할 것입니다. Here은 일부 라이브러리입니다.

0

쉬운 일은 아니지만 첫 번째 단계는 PDF에서 텍스트를 추출 할 수있는 적절한 PDF 라이브러리를 얻는 것입니다. 하나는 내가 사용한 ITextSharp http://itextpdf.com/ (오픈 소스)에서 사용할 수 있습니다. 그런 다음 DIffer: a reusable C# diffing utility and class library과 같은 diff 라이브러리를 사용해보십시오. 행운을 빕니다!

0

면책 조항 : Atalasoft에서 일합니다.

Atalasoft의 DotImage SDK은 C#의 PDF에서 텍스트를 추출하는 데 사용할 수 있습니다. PDF 파일이 이미 검색 할 경우 쉽게 텍스트를 얻을 수 있습니다 :

public String GetText(Stream s, int pageNum, int charIndex, int count) 
{ 
    using (PdfTextDocument doc = new PdfTextDocument(s)) 
    { 
     PdfTextPage textPage = doc.GetPage(pageNum);      
     return textPage.GetText(charIndex, count); 
    } 
} 

그렇지 않으면, 당신은 이미지의 텍스트를 검출하기 위해 OCR 도구를 사용할 수 있습니다.

0

잠시만이지만이 기능은 저에게 효과적이었습니다 (그러나 보장은 없습니다 ... 이미지 나 다른 PDF가 포함 된 PDF에서이 기능을 사용했는지 기억이 안납니다). 파일에 GUID 또는 일종의 ID가 포함되어 있으므로이를 제거하고 다른 모든 것을 비교하면됩니다. 코드는 다음과 같습니다.

static bool ComparePDFs(string file1, string file2) 
    { 
     if (!File.Exists(file2)) 
      return false; 

     int i; 
     string f1 = File.ReadAllText(file1); 
     string f2 = File.ReadAllText(file2); 

     if (f1.Length != f2.Length) 
      return false; 

     // Remove PDF ID from file1 
     i = f1.LastIndexOf("/ID [<"); 
     if (i < 0) 
      Console.WriteLine("Error: File is not a valid PDF file: " + file1); 
     else 
      f1 = f1.Substring(0, i) + f1.Substring(i + 75); 

     // Remove PDF ID from file2 
     i = f2.LastIndexOf("/ID [<"); 
     if (i < 0) 
      Console.WriteLine("Error: File is not a valid PDF file: " + file2); 
     else 
      f2 = f2.Substring(0, i) + f2.Substring(i + 75); 

     return f1 == f2; 
    } 
관련 문제