2010-12-07 92 views

回答

4

如果它們相同,則可以進行二進制比較。如果爲了上下文比較你可能需要一個PDF庫。 Here是一些圖書館。

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; 
    } 
相關問題