2011-09-22 2 views
3

Windows XP에서 원래 Ghostscript 프린터로 생성 된 PostScript 코드의 다음 내용이 있습니다.PostScript에서 텍스트를 교환하는 방법

/Euro /Times-BoldItalic /Times-BoldItalic-Copy BuildNewFont 
} if 
F /F1 0 /256 T /Times-BoldItalic mF 
/F1S52 F1 [82.664 0 0 -82.664 0 0 ] mFS 
F1S52 Ji 
581 547 M (This is just a little test content)[55 42 42 23 46 37 42 37 28 21 51 42 21 51 46 42 32 66 42 21 60 42 55 21 21 21 55 37 32 46 55 42 
23 0]xS 
; 

난 그냥 텍스트를 편집 할하지만 괄호 사이에있는 텍스트를 변경하려고하면 새 텍스트가 길거나 짧은 경우 텍스트는 상관없이 왜곡됩니다.

나는 위의 코드가 무엇을하는지 이해하려고 노력했지만, 그에 대한 적절한 문서를 찾지 못했습니다.

코드 '581'로 시작하는 줄과 레이아웃을 손상시키지 않고 텍스트를 편집하는 방법을 이해하는 데 도움이 될 수 있습니까?

미리 감사드립니다.

PS : 나는 편집을위한 타사 도구, 그런 PDF 편집 도구 또는 뭔가를 찾고 있지 않다 자동 때문에 일부 단락을 교환하고 파이썬 스크립트이 필요) 라인으로 시작하는

답변

2

' 581 '은 분명히 581 547 지점으로 이동 한 다음 어떤 식 으로든 xS에서 사용되는 문자열과 배열을 푸시합니다. 나는 xS이 그 배열을 사용하는 show의 확장 버전이라고 생각하지만, 어떻게해야할지 모르겠다. xS의 정의를 찾으려면 PS 파일의 시작 부분을 살펴 봐야합니다. 또한 mFS은 행렬을 얻으므로 변형 된 것처럼 보입니다.

어쨌든 PS 파일에 조판 텍스트가있는 경우 조판 설정을 위반하지 않고 그 안에있는 텍스트를 변경할 수는 없습니다.

+0

@ 해당 힌트를 주셔서 감사합니다.마지막 질문 : 포스트 스크립트에 콜론과 세미콜론의 의미가 무엇인지 말해 주시겠습니까? 나는 어떤 언급에서도 그들을 찾지 못했다. 미리 감사드립니다! – muffel

+1

콜론과 세미콜론은 사전 설정된 의미가 있다고 생각하지 않지만 명명 된 프로 시저와 마찬가지로 아무 것도 정의하도록 정의 할 수 있습니다. 정의를 찾으려면 PS 파일의 시작 부분을보십시오. – lhf

+0

@muffel, [here] (http://www.megaskills.org/media/docs/source/EducationalAccountability.prn)에서 재생할 파일을 찾았습니다. 'xs'는 단지'xshow'이며, 배열을 사용하여 문자를 대체합니다. 따라서 텍스트 길이를 변경할 때 혼란 스러울 수 있습니다. 콜론은'gsave'를 의미하고 세미콜론은'grestore'를 의미합니다. 정의는'%% BeginResource : file Pscript_Win_Basic' 근처에 있습니다. – lhf

1

나는 @lhf에 동의합니다. 포스트 스크립트 수준의 "업스트림"편집 작업을해야합니다. 원본 응용 프로그램이 무엇이든 스크립팅을 적용해야합니다. 응용 프로그램에 네이티브 스크립팅이 없으면 WinBatch와 같은 인터페이스로 계속 인터페이스 할 수 있습니다. 필자는 WinBatch를 사용하여 매크로 마법사가 telnet3270 클라이언트에 키 입력을 제공하도록했습니다 : 대화식 시스템을 통해 "배치"작업을 가능하게합니다. 유닉스의 경우 기대가있다.

2

xS은 거의 확실하게 xshow이며 문자열과 배열을 가져 와서 해당 텍스트를 캐닝합니다. 간단한 show을 사용하여 텍스트를 바꿀 수 있습니다.

(This is just a little test content)[...]xS 

가 그와 함께 대체 : 당신이 볼 경우

(This is my replacement content) show 

파일의 프리앰블 show에 대한 몇 가지 속기 이름을하지만 당신은 그것을 사용할 필요가 없습니다. 그 텍스트는 여전히 적합하지 않을 수 있습니다. 그러나 형식의 항목이나 똑같이 격리 된 항목 (제목, 각주 등)을 변경하는 중이라면 아마 괜찮을 것입니다.

환상적 이길 원하면 PostScript가 본격적인 프로그래밍 언어라는 사실을 활용할 수 있습니다. 이전 문자열의 너비를 결정하는 함수를 작성할 수 있습니다 (이 경우 xshow의 경우 배열의 마지막 요소에서 오른쪽 가장자리에 문자열의 마지막 문자 stringwidth을 더함)를 찾고 새 문자열의 길이를 계산합니다 stringwidth)을 입력 한 다음 ashow을 사용하여 문자열을 제 위치에 넣으십시오.

관련 문제