모든 PDF 응용 프로그램은 PDF 파일의 너비와 높이를 혼합합니다.

모든 PDF 응용 프로그램은 PDF 파일의 너비와 높이를 혼합합니다.

나는 가지고있다이 PDF 파일스캔하여 생성되었습니다. PDF 뷰어에서 볼 때 페이지의 너비가 높이보다 넓습니다.

하지만 제가 시도한 모든 PDF 응용 프로그램에서는 너비를 높이로, 높이를 이 PDF 파일의 너비로 실수한 것 같습니다(아래 참조).

왜?

PDF 파일이 손상되었나요?

PDF 응용 프로그램이 너비와 높이를 혼합하지 않도록 PDF 파일을 "수정"하는 방법은 무엇입니까?

  1. 다음 명령은 너비가 높이(포인트)보다 작은 것을 보여줍니다.

    $ pdfinfo test.pdf 
    Creator:        Xerox WorkCentre 7830
    Producer:       Xerox WorkCentre 7830
    CreationDate:   Tue Dec 23 00:22:47 2014
    Tagged:         no
    Form:           none
    Pages:          1
    Encrypted:      no
    Page size:      612 x 1008 pts
    Page rot:       90
    File size:      81820 bytes
    Optimized:      no
    PDF version:    1.4
    
  2. 다음 명령은 너비가 높이(픽셀 단위)보다 작은 것을 보여줍니다.

    $ pdfimages -list test.pdf 
    page   num  type   width height color comp bpc  enc interp  object ID
    ---------------------------------------------------------------------
       1     0 image     864  1400  rgb     3   8  jpeg   no         6  0
       1     1 mask     1236   895  -       1   1  jbig2  no         8  0
       1     2 mask      737   891  -       1   1  jbig2  no        10  0
       1     3 mask      247   381  -       1   1  jbig2  no        11  0
       1     4 mask       44   298  -       1   1  jbig2  no        12  0
       1     5 mask      429     9  -       1   1  jbig2  no        13  0
       1     6 mask       22   258  -       1   1  jbig2  no        14  0
       1     7 mask      130   142  -       1   1  jbig2  no        15  0
    
  3. PDF 파일의 왼쪽 및 오른쪽 여백을 잘라내는 스크립트를 사용하려고 합니다.pdfcrop.sh 여기gs이는 및 를 기반으로 하는 것 같습니다 pdftk. 왼쪽과 오른쪽 여백을 각각 116포인트와 20포인트로 측정했습니다.

    스크립트의 사용법은 다음과 같습니다.

      echo " -t \"<left> [<top> [<right> <bottom>]]\""
      echo "    trims outer page edges by the given amounts. Unit is bp. A single number"
      echo "    is used for all trims, two numbers \"<left> <top>\" are applied to the"
      echo "    right and bottom trims alike."
    

    하지만

    pdfcrop.sh -t "116 0 20 0" test.pdf Trim.pdf

    이렇게 하면 위쪽이 116포인트, 아래쪽이 20포인트만큼 잘립니다. 반면 아래의 올바른 접근 방식은 왼쪽을 116포인트, 오른쪽을 20포인트만큼 자르는 것입니다.

    pdfcrop.sh -t "0 116 0 20" test.pdf Trim.pdf

답변1

0.

다음은 한 페이지짜리 예제 PDF 파일을 기반으로 한 PNG입니다.

test.png(test.pdf에서 변환됨)

1.

PDF 뷰어에서 볼 때 페이지의 너비가 높이보다 넓습니다.

이것이 바로 그 방법입니다.

2.

[...] 제가 시도한 모든 PDF 응용프로그램에서는 너비를 높이로, 높이를 이 PDF 파일의 너비로 실수한 것 같습니다.

말씀하신대로 그냥 그렇네요~인 것 같다그렇죠.

삼.

PDF 파일이 손상되었나요?

아니요, 그렇지 않습니다.

4.

pdfinfo첫 번째 명령( )이 제공한 메시지를 무시했습니다 .

Page rot:       90

이는 PDF 파일 내의 PDF 소스 코드가 뷰어에게 이를 알려준다는 의미입니다.“넓이보다 키가 정말 커요”- 페이지를 넘기고 디스플레이를 90도 회전합니다.

그러므로,"모든 PDF 뷰어에서 보면 페이지가 높이보다 넓습니다.". 그래야만합니다. 날 봐번호 1이상. 그리고 내2 번이상.

5.

pdfimages모든 이미지를 추출한 다음 ImageMagick을 사용하여 convertPNM 또는 PBM 형식의 이미지를 JPEG로 변환할 수 있습니다 .

 pdfimages -j test.pdf test-

 for i in *.pbm ; do            \
    convert $i ${i/.pbm/.jpg} ; \
 done

그러면 pdfimages -list질문의 명령에 0~7번 이미지가 포함된 8개의 서로 다른 이미지가 생성됩니다("2.").

여기 이 이미지들이 있습니다. 모두 원래 크기의 25%로 확장되므로 공간이 많이 낭비되지 않습니다. 이들 모두는 에서 추출된 대로 "자연스러운" 방향으로 표시됩니다 pdfimages. 이것은 0목록의 첫 번째 항목이며 번호는 다음과 같습니다.

이미지는 "자연스러운" 방향으로 추출되었습니다. 폭에 비해 확실히 키가 더 큽니다.

다음 이미지 쌍은 25% 크기가 조정되었습니다. 위의 mask출력 목록에 있는 유형의 이미지를 나타냅니다 pdfimages.

   

  

귀하의 스캐너(및 내장 소프트웨어)는 "더 스마트한" 스캐너입니다. 단순히 페이지에서 단일 TIFF를 생성한 다음 PDF 셸에 삽입하는 대신 이미지를 사용하여 다양한 부분을 최적화하려고 합니다.'마스크'(알파 채널 사용 - 내가 만든 JPEG에서는 검은색으로 나타남) 텍스트가 포함된 섹션입니다.

다행히도 스캐너 소프트웨어는 그렇지 않습니다."더"텍스트에 압축을 적용하면 스마트하며 JBIG2 대신 JPEG2000을 사용합니다. 그래서 당신은 악명 높은 위치에 오르지 못했습니다."제록스 스캔 오류".

관련 정보