PDF 문서가 있으면 문서를 스캔한 것이고, 스캔한 문서의 사진만 저장하기 때문에 용량이 아주 큰 파일인거 아시죠?
텍스트만 저장하는 올바른 문서를 만드는 데 도움이 되는 OCR 도구가 있습니까?
글쎄, 나는 그 반대가 필요합니다! 완벽한 PDF 문서가 있고 pdflatex
이를 종이에 인쇄했을 때(특정 dpi 값으로) 정확히 동일해 보이지만 원본 이미지인 "거대한" PDF로 변환해야 한다고 가정해 보겠습니다 .
내 초기 아이디어는 PDF를 일련의 JPG로 변환한 다음 다시 PDF로 변환하는 것이었지만 표준적인 방법이 있을까요?
내가 왜 이런 일을 하고 싶은지 궁금하시다면, 현재 제가 관리하지 않는 네트워크 프린터에 갇혀서 인쇄된 파일에서 무작위로 문자를 삭제하고 있습니다! 따라서 누군가 거기에 무엇이 잘못되었는지 알아낼 때까지는 이를 해결 방법으로 남겨두고 싶습니다.
답변1
이미지 기반 PDF도 오염되었는지 테스트할 수 있습니다. 먼저 PDF를 (여러 페이지) TIFF로 변환합니다.고스트 스크립트:
gs -sDEVICE=tiffg4 -o sample.tif sample.pdf
그런 다음 TIFF를 PDF로 변환합니다. 예:
tiff2pdf -z -f -F -pA4 -o sample-img.pdf sample.tif
그러면 페이지가 텍스트가 아닌 이미지인 PDF 파일이 생성됩니다.
또는 시스템이 TIFF 파일 인쇄를 지원하는 경우 직접 인쇄해 보십시오.
PDF를 PS로 변환하는 옵션 도 있는데 pdf2ps
, 가능하다면 더 좋을 것 같습니다.
답변2
답변3
해결책
다음 코드는 1200 DPI로 래스터화 a.pdf
하고 c.pdf
먼저 2400 DPI로 래스터화한 다음 출력하기 전에 2만큼 축소합니다.문서.
gs -dNOPAUSE -dBATCH -sDEVICE=pdfimage24 -r2400 -dDownScaleFactor=2 -o c.pdf a.pdf
흑백으로만 인쇄해야 하는 경우 이를 교체하여 작업 속도를 높일 수 pdfimage24
있습니다 pdfimage8
.
기준
pdf2ps
위의 솔루션이 가장 빠르며 + 에게만 지는 것을 볼 수 있습니다 ps2pdf
(그러나 pdf2ps
+ ps2pdf
는보장하지 않는다파일을 래스터화) 및 pdf2ppm
(단, .jpg
파일을 확대하려면 변환)
해결책 | 소요 시간(초) | 점유된 메모리(KiB) | 출력 파일 크기(KiB) | 인쇄 시간(초) |
---|---|---|---|---|
pdftoppm (1200) ( .jpg ) + img2pdf (†) |
2.710 | 603092 | 10341.3 | |
pdf2ps + ps2pdf 임시 파일 포함(원천) (*) |
4.110 | 37596 | 1706.4 | |
pdfimage8 (1200) |
4.180 | 35668 | 2348.6 | 9.5 |
pdfimage24 (1200/2) |
5.020 | 36088 | 1971.9 | 9.7 |
pdfimage24 (1200) |
6.520 | 36212 | 3316.1 | |
pdf2ps + ps2pdf 파이프 포함(*) |
7.230 | 37668 | 1706.4 | |
convert (600) |
9.560 | 964532 | 5953.6 | |
pdftoppm (1200) ( .tiff ) + img2pdf (†) |
10.850 | 1539512 | 14483.3 | |
convert (600) + gs 최적화(원천) |
12.010 | 964532 | 1989.4 | 9.9 |
pdfimage8 (2400/2) |
20.350 | 43872 | 3481.9 | |
pdfimage24 (2400/2) |
23.510 | 46484 | 4833.2 | 15.8 |
pdftoppm (1200) ( .png ) + img2pdf (원천) (†) |
33.000 | 626896 | 14127.2 |
(*): 실제로 항상 PDF를 래스터화하는 것이 해결책은 아니지만 gs
경우에 따라 이를 수행하기로 결정할 수도 있습니다(어떤 경우 래스터화되는지 알 수 없으며 PDF가 너무 복잡한 경우일 수 있음).
(†): 코드는 1페이지 PDF 파일에만 맞도록 작성되었지만 조정할 수 있습니다.
벤치마크 솔루션 세부정보
pdftoppm
(1200) ( .jpg
) + img2pdf
(†)
pdftoppm -progress -r 1200 -jpeg a.pdf a
img2pdf a-1.jpg -o c.pdf
pdf2ps
+ ps2pdf
임시 파일 포함(원천) (*)
gs -sDEVICE=ps2write -dNOCACHE -sOutputFile=c.ps -q -dBATCH -dNOPAUSE a.pdf
ps2pdf c.ps c.pdf
pdfimage8
(1200)
gs -dNOPAUSE -dBATCH -sDEVICE=pdfimage8 -r1200 -o c.pdf a.pdf
pdfimage24
(1200/2)
gs -dNOPAUSE -dBATCH -sDEVICE=pdfimage24 -r1200 -dDownScaleFactor=2 -o c.pdf a.pdf
pdfimage24
(1200)
gs -dNOPAUSE -dBATCH -sDEVICE=pdfimage24 -r1200 -o c.pdf a.pdf
pdf2ps
+ ps2pdf
파이프 포함(*)
gs -sDEVICE=ps2write -dNOCACHE -sOutputFile=- -q -dBATCH -dNOPAUSE a.pdf -c quit | ps2pdf - c.pdf
convert
(600)
convert -density 600 a.pdf c.pdf
pdftoppm
(1200) ( .tiff
) + img2pdf
(†)
pdftoppm -progress -r 1200 -tiff a.pdf a
img2pdf a-1.tif -o c.pdf
convert
(600) + gs
최적화(원천)
convert -density 600 a.pdf b.pdf
gs -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=c.pdf b.pdf -q
pdfimage8
(2400/2)
gs -dNOPAUSE -dBATCH -sDEVICE=pdfimage8 -r2400 -dDownScaleFactor=2 -o c.pdf a.pdf
pdfimage24
(2400/2)
gs -dNOPAUSE -dBATCH -sDEVICE=pdfimage24 -r2400 -dDownScaleFactor=2 -o c.pdf a.pdf
pdftoppm
(1200) ( .png
) + img2pdf
(원천) (†)
pdftoppm -progress -r 1200 -png a.pdf a
img2pdf a-1.png -o c.pdf
벤치마크의 소스 코드를 찾을 수 있습니다.여기.