Để tạo kịch bản, tôi cần lấy kích thước trang của tệp PDF (tính bằng mm).
pdfinfo
chỉ in nó trong 'pts', vd:
Page size: 624 x 312 pts
Tôi nên sử dụng cái gì?
Hoặc đơn vị nào là 'pts' - trong trường hợp tôi muốn chuyển đổi chúng ...
Để tạo kịch bản, tôi cần lấy kích thước trang của tệp PDF (tính bằng mm).
pdfinfo
chỉ in nó trong 'pts', vd:
Page size: 624 x 312 pts
Tôi nên sử dụng cái gì?
Hoặc đơn vị nào là 'pts' - trong trường hợp tôi muốn chuyển đổi chúng ...
Câu trả lời:
Đơn vị 'pts' được sử dụng bằng cách pdfinfo
biểu thị một điểm PostScript. Điểm PostScript được xác định theo inch và độ phân giải 72 chấm trên mỗi inch:
Vào cuối những năm 1980 đến những năm 1990, các điểm truyền thống đã được thay thế bởi điểm xuất bản máy tính để bàn (còn gọi là điểm PostScript), được định nghĩa là 72 điểm đến inch ( 1 điểm = 1/72 inch = 25.4/72 mm = 0,352 7 mm [≙ 0,3528 mm ]).
Hướng dẫn để gv
chứa danh sách các định dạng giấy phổ biến được chỉ định trong các điểm PostScript.
pdfinfo
đôi khi cho tôi định dạng giấy (như Page size: 595.28 x 841.89 pts (A4)
) - Tôi tự hỏi liệu nó có làm điều đó cho một danh sách kích thước trang mà nó biết không?
Không phải là cách dễ nhất, nhưng được đưa ra imagemagick
và units
bạn cũng có thể sử dụng
$ identify -verbose some.pdf | grep "Print size"
Print size: 8.26389x11.6944
để tìm kích thước trang tính bằng inch (điều này có thể mang lại một số kết quả nếu PDF sử dụng các kích thước khác nhau) và sau đó chuyển đổi các số như thế này:
$ units -t '8.26389 inch' 'mm'
209.90281
Có nghĩa là 8,26 inch là 209,9 mm (Tôi đã sử dụng PDF PDF cho việc này).
identify
PDF trên OS XI không nhận được bất kỳ đầu ra nào.
identify
yêu cầu ImageMagick
Đã đi qua cùng một vấn đề và đi đến giải pháp sau đây. Tôi không nhận được tài liệu về cách các tệp pdf được tạo. Tôi chỉ so sánh hai tệp pdf trống với các kích cỡ trang khác nhau.
Dường như pdf có tất cả các loại thuộc tính được nhúng giữa "<<" và ">>". Tôi thấy rằng thông tin kích thước trang có trong văn bản thuần túy và có thể được tìm thấy với một tìm kiếm regex đơn giản.
Điều này có thể đúng hoặc không đúng với tất cả các pdf nhưng nó hoạt động trên tất cả những gì tôi có thể tìm thấy từ các nguồn khác nhau.
Phần có liên quan có thể trông giống như bất kỳ phần nào trong số này cho trang A4 cỡ:
/MediaBox [0 0 595 842]
/MediaBox[0 0 595 842]
/MediaBox[ 0 0 595.32 841.92]
Nó có nghĩa là [0 0 chiều cao chiều rộng] vì vậy đây là giải pháp siêu khập khiễng của tôi để giải nén điều này:
cat test.pdf | egrep -ao "/MediaBox ?\[ ?[0-9]+ [0-9]+ [0-9]+(\.[0-9]+)? [0-9]+(\.[0-9]+)?\]" | head -1
Chỉ cần thay đổi test.pdf thành tập tin của bạn.
Tôi đã sử dụng câu trả lời maxchlepzigs để tính mm trực tiếp:
$ pdfinfo test.pdf | grep "Page size" | grep -Eo '[-+]?[0-9]*\.?[0-9]+' | awk -v x=0.3528 '{print $1*x}'
điều này cũng hoạt động với câu trả lời của Alex Knaufs nhưng việc xác định mất nhiều thời gian hơn pdfinfo và yêu cầu hình ảnh, mặc dù vậy, bạn có thể sử dụng điều này cho nhiều tệp (tức là bằng cách cd'ing vào một thư mục và sử dụng *.pdf
):
$ identify -verbose some.pdf | grep "Print size" | grep -Eo '[-+]?[0-9]*\.?[0-9]+' | awk -v x=25.4 '{print $1*x}'
Lệnh thứ hai grep
nhận được hai giá trị điểm / inch. Tôi khá chắc chắn rằng bạn có thể bỏ qua regex grep và làm điều đó trực tiếp với awk nhưng tôi không thể tìm ra nó.