2013-08-20 1 views
1

) 내가 질문과 스레드의 몇 유사한 물건에 대한 부족이 알고고스트 스크립트는 PDF 파일을 결합 및 멀티 스레드/코어

을하지만 아무도 나를 위해 작동하지 않을 것이다. ~ 1000 개의 pdf 파일을 하나로 결합하려고합니다. 몇 가지 도구를 시도했지만 gs (고스트 스크립트) 만 적절한 압축을 수행합니다. 내 문제는 그것이 멀티 스레드가 작동하지 않는다는 것입니다/24cores가 있고 예를 들어 사용하고 싶습니다. 8 작업에 대한,하지만 정상은 여전히 ​​하나만 사용하는 나를 보여줍니다. 내 명령 :

gs -q -dNOPAUSE -dNOPROMPT -q -dBATCH -dNumRenderingThreads=8 -dBandHeight=100 -dBandBufferSpace=500000000 -sBandListStorage=memory -dBufferSpace=1000000000 -sDEVICE=pdfwrite -sOutputFile=combined_gs.pdf sourcefiles/*.pdf 

약 60 초 정도 소요되므로이 속도가 빨라야합니다. 제안 사항이 있으십니까?

답변

8

pdfwrite 장치는 스레딩을 사용하지 않습니다 (그렇게하는 것이 어렵습니다). 그 단서는 'NumRenderingThreads'라는 이름에 있으며, pdfwrite는 이 아니며을 렌더링합니다.

BandHeight를 렌더링하지 않으므로 BandBufferSpace, BandListStorage 및 BufferSpace도 아무 효과가 없습니다. (또한 -q를 두 번 지정했습니다.)

Ghostscript 및 pdfwrite 장치는 PDF 입력을 '조작'하지 않으며 결합하거나 연결하지 않습니다. 이것이하는 일은 모든 입력을 해석하고 그래픽 프리미티브 세트를 작성한 다음이 프리미티브를 새로운 PDF 출력 파일로 다시 어셈블하는 것입니다. 새로운 출력 파일은 어떤 입력과도 공통점이 없으며 시각적 인 외관이 동일해야한다는 것을 목표로합니다. 우리가 입력으로부터 다수의 객체를 처리하는 것은 중요하지만 이것들은 중요합니다.

분명히 알 수 있듯이이 작업은 PDF 파일의 내용을 재 배열 할 수있는 일련의 구성 요소로 처리하는 것보다 훨씬 복잡한 프로세스이므로 더 느립니다. 솔직히 말하면, 1 분 안에 1000 개의 파일을 읽고, 해석하고, 재 작성하는 것은 나에게 꽤 빨리 보인다.

관련 문제