2010-12-07 5 views

答えて

4

これらが同じ場合は、バイナリ比較ができます。文脈を比較するには、おそらくPDFライブラリが必要です。 Hereはいくつかのライブラリです。

0

簡単にはできませんが、最初のステップは、PDFからテキストを抽出できる適切なPDFライブラリを入手することです。私が使ったのは、http://itextpdf.com/(オープンソース)から入手できるITextSharpです。次に、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の上でそれをしようとした場合、私は覚えていない...しかし、無保証)私のために働きました。ファイルには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; 
    } 
関連する問題