2016-08-16 3 views
0

'.ps'파일을 생성하는 Postscript 프린터를 사용하고 있습니다.이 ps 파일을 내 Linux 컴퓨터에서 'ps2pdf'명령을 사용하여 .pdf로 변환 중입니다. 여기에 생성 된 파일, 그것의 콘텐츠를 선택하고 복사 할 수 없습니다. 또한 같은 PDF 파일에서 아파치 Tika를 사용하여 콘텐츠를 추출하려고하면 (추출 할 수없는 것을 의미) 빈 문자열을 반환합니다. 나는 그것이 문제가 될 수도 있다고 생각 일부 글꼴 때문에 일부 새로운 글꼴도 설치되었지만 여전히 나에게는 적합하지 않았습니다.tika를 사용하여 pdf 파일에서 텍스트 내용을 추출 할 수 없습니다.

문제가 무엇인지 알아낼 수 없습니다. 프린터 드라이버 나 ghostscript ('.ps'를 '.pdf'로 변환하는 데 사용됨)에 문제가 있거나 글꼴이나 다른 것이 문제입니다 -그밖에.

tika를 사용하여 콘텐츠를 검색하는 중 아래와 같은 몇 가지 경고 (오류 아님)가 인쇄됩니다.

WARN No Unicode mapping for CID+1 (1) in font WKQJKU+ArialNarrow-Identity-H 
WARN No Unicode mapping for CID+2 (2) in font WKQJKU+ArialNarrow-Identity-H 
WARN No Unicode mapping for CID+3 (3) in font WKQJKU+ArialNarrow-Identity-H 
WARN No Unicode mapping for CID+4 (4) in font WKQJKU+ArialNarrow-Identity-H 
WARN No Unicode mapping for CID+5 (5) in font WKQJKU+ArialNarrow-Identity-H 

....

어떤 도움을 사전에 .Thanks을 감사합니다.

답변

2

원본 PostScript 파일과 PDF가 보이지 않으면 문제가 무엇인지 알 수 없거나 수정 될 수 있습니다. 파일을 공개적으로 게시해야합니다.

또한 'ps2pdf'명령이 정확히 무엇인지 말하지 않기 때문에 동일한 이름을 사용하는 몇 가지 유틸리티가 있습니다. Ghostscript를 사용하고 있다면 Ghostscript가 실행될 때 그렇게 말할 것입니다. 그렇다면 혼란을 피하기 위해 Ghostscript를 직접 실행하는 것이 좋습니다. 또한 사용중인 Ghostscript의 버전을 인용해야합니다.

이제 PostScript 프로그램은 일반적으로 인쇄를 위해 프린터로 전송됩니다. 이와 같이 문자 인코딩을 나타내는 데 사용되는 문자 코드와 문자 인코딩이 결합되어 출력시 예상되는 문자 모양을 생성하는 경우에는 문제가되지 않습니다. 따라서 종이에 'A'로 인쇄되는 원래 응용 프로그램의 'A'가 실제로는 문자 코드 0x41로 표시된다는 보장이 전혀 없습니다. 응용 프로그램이 실제로 인쇄 된 글리프 만 포함하고 인쇄 할 첫 번째 문자에 코드 1이 지정되고 두 번째 문자에 코드 2가 지정되도록 정렬 된 글꼴은 흔하지 않습니다. 따라서 'Hello '0x01 0x02 0x03 0x03 0x03 0x04 0x304

Windows PostScript 프린터 드라이버는 글리프 이름을 유니 코드 코드 포인트에 매핑하는 비표준 G2U 테이블을 추가합니다.이 기능을 사용하면 ToUnicode CMap을 구성하고이를 PDF 파일. 이를 통해 복잡한 인코딩을 유니 코드 값으로 변환 할 수 있습니다. 즉, 검색 및 복사/붙여 넣기가 작동합니다.

그러나 PostScript 프로그램을 만드는 데 사용하는 시스템에 대해 언급하지 않았으며 예제를 제공하지 않았기 때문에 PostScript가 어떻게 생성되는지 간단히 알 수 없습니다.

PDF 파일에 CIDFont가 사용되고 ToUnicode CMap이 포함되어 있지 않은 것으로 보입니다. 이것은 복사/붙여 넣기가 가능한 PDF 파일을 생성 할 가능성은 거의 없습니다. 물론 이것이 PDF의 원래 목표가 아니었기 때문에 가능하지 않을 수 있습니다.

포스트 스크립트 파일을 편집 가능한 PDF 파일로 변환 할 수있는 방법이 없지만 알려주는 정보가 충분하지 않은 것 같습니다.

가 [이후]

포스트 스크립트는 PDF 파일에서 가능, 카이로에 의해 생산,하지만 완전히 명확하지 않다, 그것은 단순히 카이로 작동하는 방식 일 수도있다. 어떤 사건이든 ....포스트 스크립트에는 CIDFontType 2 (트루 타입 외곽선)가 포함 된 내장 하위 세트 CIDFont가 있습니다. PostScript에는 유니 코드 정보를 제공하는 메커니즘이 정의되어 있지 않으므로 제공되지 않습니다. 위에서 설명한 것처럼 '인코딩'은 문자가 발생할 때 만들어 지므로 첫 번째 글리프는 0x01 등으로 인코딩됩니다.

이 결과는이 PostScript 파일에서 의미있는 텍스트를 추출하는 간단한 방법이 없기 때문에, 물론 그것을 인쇄하고 OCR을 사용하는 것 이외에.

CIDFont의 sfnts에는 글리프 ID를 유니 코드 값에 매핑하는 3,0 CMAP 하위 테이블이 포함되어 있다고 생각할 수도 있지만 확인하는 데는 시간이 걸립니다.

그러나이 경우에도 Ghostscript의 pdfwrite 코드는 현재 해당 재주를 시도하지 않으며 Acrobat Distiller 나 다른 PostScript에서 PDF 작성자까지도 인식하지 못합니다.

근본적으로, 당신은하려는 일을 할 수 없습니다. 왜 카이로는 포스트 스크립트 파일 대신 PDF 파일을 생산합니까? 그 방법으로 일할 확률이 더 높아졌습니다. 물론 이것은 가상 프린터의 작동 방식을 살펴 봐야한다는 것을 의미 할 것입니다. CUPS를 사용하고 있다면 가능할 것입니다. PDF는 최신 버전의 CUPS에서 사용되는 중간 형식이므로 생각했을 것입니다.

+0

안녕하세요. 빠른 답변을 주셔서 감사합니다. 'ps2pdf'는 ghostscript 유틸리티이며 프린터는 Linux 컴퓨터에 있습니다. 참조 용으로 파일을 업로드하는 방법을 모르겠습니다. mail id 나는 또한 당신에게 파일을 보낼 수있다. – prasad

+0

여기에 파일을 게시 할 수 없으며 DropBox 또는 기타 항목에 넣고 URL을 게시하면 나 이외의 사람들이 볼 수 있습니다. 어떤 버전의 Ghostscript를 사용하고 있습니까? (패키지, 소스에서 직접 작성한 것 등) 무엇을 얻었습니까? 만약 당신이 절대적으로 이메일을 사용해야한다면 당신은 spamcop dot net에서 켄에게 보낼 수 있습니다. 여기에 명백한 이메일 주소를 넣고 싶지는 않습니다. – KenS

+0

안녕하세요 @KenS, 내 고스트 스크립트 버전은 9.16입니다. 여기 postscript 및 pdf에 드롭 박스 링크를 공유하고 있습니다. 파일. https://www.dropbox.com/s/jq5m4dkz175o0nk/VirtualPrinter_16_08_2016_16_09_20_865.ps?dl=0, https://www.dropbox.com/s/y8jo3whu2kw12sr/VirtualPrinter_16_08_2016_16_09_24_896.pdf?dl=0 – prasad

관련 문제