2017-12-26 6 views
-1

나는 pdf 파일로 입력을 허용하는 제품을 작업 중입니다. 우리는 타사 API를 통해 pdf의 내용을 읽었습니다. pdf가 스캔 된 파일이거나 복사 제한이있는 경우 이러한 API가 실패합니다. 출력에서 이러한 세부 정보를 제공하지 않는 APIpdf가 도구를 통해 스캔되거나 생성되는 경우 검색하는 방법

C#에서 PDF가 정상적으로 스캔 된 파일인지 검색 할 수 있습니까? 따라서 사용자에게 적절한 메시지를 보여줄 수 있습니다.

저는 C#을 사용하고 있으며 ABCPDF도 사용하고 있습니다.

+0

PDF 업로드 시간에 해당 타사 API를 사용하는 방법은 어떻습니까? 실패 할 경우 업 로더에게 자신의 PDF가 적합하지 않음을보고하십시오. – mkl

+1

Texhnically 스캔 한 PDF와 "정상적인"PDF 문서에는 아무런 차이점이 없습니다. 안에 텍스트가 있는지 그냥 확인해 보셨습니까? – usr2564301

답변

1

내가 과거에 사용한 한 가지 방법은 다음과 같습니다. 일부 PDF ocr api와 create a searchable PDF을 사용할 수 있습니다. 그런 다음 OCR 출력을 텍스트 내용과 비교하십시오. PDF가 텍스트 기반 인 경우 OCR 결과와 원본 텍스트는 거의 동일합니다. 그렇지 않으면 커다란 차이가있을 것입니다.

0

문서의 각 페이지 내용을 확인할 수 있습니다. 스캔 한 문서에는 이미지 유형의 개체 만 포함되어있는 반면 "정상적인"PDF에는 텍스트 개체 및 기타 개체가 포함되어 있습니다. 다음은 Patagames PDF SDK의 샘플 코드입니다. 하지만 귀하의 API는 아마 아날로그가 있습니다

 PdfCommon.Initialize(); 

     using (var doc = PdfDocument.Load(@"d:\1\Europa Service Karte.pdf")) 
     { 
      foreach(var page in doc.Pages) 
      { 
       foreach(var obj in page.PageObjects) 
       { 
        if(!(obj is PdfImageObject)) 
        { 
         return; //this is a "normal" pdf; 
        } 
       } 
      } 
      //there is no any page with non image objects 
      //so it is a scanned PDF 
     } 
관련 문제