2012-11-21 4 views
0

기존의 PDF 파일에서 텍스트 스타일을 편집하기 위해 설계된 C# 콘솔 응용 프로그램에서 작업 중입니다. 예를 들어 텍스트 스타일을 굵게 또는 기울임 꼴로 변경하거나 글꼴 모음 추가, 텍스트 변경 색상 ... pdf 문서의 텍스트 스타일 편집

나는 iTextSharp 라이브러리를 사용하지만, 다음과 같은 문제가 발생 : PDF 문서의

  1. 얇은 공간이 정돈됩니다.
  2. 기존 문서에서 텍스트를 추출 할 때 텍스트 스타일이 완전히 무시됩니다 (글꼴, 굵게, 기울임 꼴 ...)
  3. PDF 파일에서 내용을 추출 할 때 특수 형식의 수학, 이미지 및 텍스트를 읽을 수 없습니다.

위에 설명한대로 다른 라이브러리 또는 PDF 파일을 편집 할 제안이 있습니까? PDF 문서의

+0

텍스트 형식으로 텍스트를 추출하는 것이 어려울 것입니다. 첫 번째 작업과 세 번째 작업은 Spire.PDF for .NET을 제안 할 수 있습니다. PDF 이미지와 텍스트를 읽을 수 있습니다. Herbrew 오른쪽에서 왼쪽으로 쓴다. 그러나, 내가 알고 있듯이 폰트, 굵게 등으로 텍스트를 추출하는 것을 지원하지 않는다. –

+0

은 nopen 소스 도구가 아니지만 흥미로운 도구처럼 보입니다. 감사합니다. @michelle –

답변

1

이 발생 된 문제들에 대한 어떤 단어 ...

1 얇은 공간은립니다.

일반적으로 얇은 공백은 수평 좌표 이동을 통해 생성됩니다. 불행히도 커닝, 즉 인접한 문자를 더 잘 보이게하기 위해 동일한 기술이 사용됩니다. 페이지를 파싱 할 때 이러한 수평 이동이 발생하면 파서가 경험적으로 결정해야하며 때로는 잘못되었습니다. 이러한 휴리스틱은 문서의 경우 실패한 것 같습니다. 기존 문서에서 텍스트를 추출 할 때

2, 텍스트 스타일은 완전히 무시됩니다 (내가 굵은 글꼴을 의미, italic..etc)

RenderListener 사용의 문제입니다

. iText (Sharp)로 번들링 된 리스너는 현재 텍스트에 중점을 둡니다. 글꼴 정보를 전송하기 위해 쉽게 확장 할 수 있습니다.

PDF는 굵게, 기울임 꼴 등에 대해 알지 못합니다. 양질의 문서의 경우 xxx 및 xxx는 개별 글꼴이며 품질이 낮은 문서의 경우에는 가난한 사람의 분명한 오프셋을 사용하여 글리프를 두 번 인쇄하여 볼드체를 생성하거나 적절한 기울이기 변형 행렬을 사용하여 경 사진 모양을 생성 할 수 있습니다. PDF 파일

의 내용을 추출 할 때

3 수학, 이미지, 특별한 형식의 텍스트는이에 대한 샘플이있는 경우, 여기 또는 itext-questions mailing list에 그들을 제공하시기 바랍니다 읽을 수 없습니다. 확실히 테스트 할 때 이미지 이벤트를 수신하는 RenderListener을 구현 했습니까?

따라서 1은 더 나은 알고리즘이있을 수 있지만 100 % 안전한 방법으로는 해결할 수없는 일반적인 문제입니다. 2는 단지 기존의 텍스트 전용 객체 중 하나를 기반으로 적절한 RenderListener를 구현하기 만하면됩니다. 실제로 iText에 대해 RichTextExtractionStrategy을 만드는 데 대한 이야기가있었습니다. 3을 더 강하게 검열해야한다.

사실 iText (Sharp)는 텍스트 파싱 기능이있는 유일한 PDF 라이브러리가 아니며 각각 고유 한 장점이 있습니다.그러나 가능한 한 문서 텍스트 스타일에서 많은 정보를 검색하는 데 사용할 수있는 프레임 워크를 제공합니다. 텍스트를 스타일을 변경 예를 들어 내가 편집 기존의 PDF 파일의 텍스트 스타일에 대한 설계는 C# 콘솔 응용 프로그램에서 일하고 있어요

는, 텍스트 을 변경, 굵게 또는 기울임 꼴이거나 글꼴 - 가족을 추가 색상 ... 등.

동일한 글꼴 모음에서 다른 글꼴이나 다른 스타일의 너비가 크게 다를 수 있다는 점을 감안할 때 이는 매우 놀라운 일입니다. 이것은 추악한 외모 나 PDF 리플렉션에 대한 텍스트 리플 로우가 필요할 수 있습니다.

+0

정말 도움이되었습니다. @mkl , 당신 덕분에 .. 스타일 문제로 나를 도울 수있는 추출 전략의 구현을 발견했습니다. 나는 당신에게 itextsharp 메일 링리스트로 일하고있는 샘플을 보내 줄 것입니다, 다시 한번 감사드립니다. –