PDF에서 텍스트를 복사하여 붙여 넣으면 원본과 다르게 표시됩니다.
예를 들면 다음과 같습니다.
원본에는 “안녕 내 이름은 빅터이고 나는 23 살이다”.
텍스트를 복사하여 붙여 넣을 때 “안녕하세요. 저는 23입니다.”
이 문제를 어떻게 해결할 수 있습니까? 텍스트를 붙여 넣을 때 Adobe Reader XI와 일반 메모장 또는 Microsoft Word를 사용하고 있습니다. 이것은 첫 번째 단계이기 때문에 C #으로 앱을 구현하려고하는데 많은 pdf 문서에서 모든 텍스트를 추출해야합니다 .Itextsharp Library로 정보를 추출 할 때마다 모든 것이 엉망입니다.
감사합니다!
답변
C #에서 추출 프로세스에 일종의 논리를 적용해야합니다.
PDF 문서는 다른 소프트웨어에서 사용하거나 다른 형식으로 입력하기 위해 텍스트를 저장하는 유용한 방법이 아닙니다. 의도적으로 PDF는 인쇄 된 페이지를 나타내며 다음과 같은 지침 세트로 구성됩니다 Text of font A, size B at co-ordinate X,Y
. 예를 들어 문서를 그룹화 된 단락 또는 줄로 형식화하는 Microsoft Word 또는 HTML과 같은 방법을 사용하지 않습니다.
PDF 소프트웨어에서 복사하여 붙여 넣을 때 효과적으로 이러한 지침을 단락 구조에 대한 우리의 아이디어를 모방 한 것으로 해석하고 예상 한 방식으로 선택하여 시도합니다. 그러나 지금까지 본 것처럼 이것이 항상 완벽하지는 않으며 쉽게 잘못 될 수 있습니다.
귀하의 질문에 대한 대답은이 문제 가 귀하의 예와 관련하여 큰 문제 가 아니라 달성하려는 목적으로 PDF 형식을 사용하는 데 문제가 있다는 것입니다. 텍스트 구문 분석을 위해 설계된 것은 아니지만 확실히 수행 할 수는 있지만 iTextSharp는 확실히 그것을 달성하기위한 도구를 가지고 있지만 그렇게하려면 행 단위로 ‘시뮬레이션’해야 할 수도 있습니다.
물론 완벽하게 생성 된 것으로 보이며 PDF에서 복사 및 붙여 넣기에 문제가없는 PDF를 찾을 수 있습니다. 그러나 이것은 예측 가능한 전략을 사용하여 PDF를 작성 하는 소프트웨어 와 이를 수행하는 완벽한 방법이 아니라 예측 가능한 전략을 사용하여 PDF를 읽는 소프트웨어의 경우입니다.