2012-10-01 18 views
19

Tôi đã quét một số tài liệu ở 600 dpi, ~ 9,36x12,67 inch và được chuẩn bị theo định dạng PostScript (PS).Cách đặt cỡ trang tùy chỉnh bằng Ghostscript

Bây giờ khi tôi cố gắng chuyển đổi PS sang PDF với Ghostscript (GS), tôi nhận được đầu ra cắt bớt, vì tôi giả định kích thước trang mặc định của GS được đặt thành A4. Tôi đã tìm thấy các mẫu có sẵn cho GS tại đây: http://www.ghostscript.com/doc/9.06/Use.htm#Known_paper_sizes nhưng không có mẫu nào khớp với kích thước tệp PS của tôi, vì vậy:

Tôi có thể chỉ dẫn GS xuất kích thước tùy chỉnh không?

-sPAPERSIZE hướng dẫn dường như chỉ chấp nhận tên mẫu được xác định trước, như trong tài liệu được liên kết.

Trả lời

25

Bạn có thể thiết lập kích thước trang sử dụng với -gNNNNxMMMM nơi NNMN là chiều rộng trong pixel ở 720 dpi (720 pixel == 1 inch), và MMMM là chiều cao bằng pixel tại 720 dpi.

Hoặc bạn có thể đặt kích thước tùy chỉnh trong PostScript điểm (72 điểm == 1 inch) với -dDEVICEWIDTHPOINTS=w -dDEVICEHEIGHTPOINTS=h.

Nếu tôi không sai, 9,36 inch ≈ = 674 điểm12.67 inch ≈ = 912 điểm.

Bạn cũng sẽ phải áp dụng -dPDFFitPage để vừa với đầu vào của bạn trên trang.

Vì vậy, bạn có thể sử dụng một trong hai

gs       \ 
    -o output.pdf   \ 
    -sDEVICE=pdfwrite  \ 
    -dDEVICEWIDTHPOINTS=674 \ 
    -dDEVICEHEIGHTPOINTS=912 \ 
    -dPDFFitPage    \ 
    input.ps 

hoặc

gs     \ 
    -o output.pdf  \ 
    -sDEVICE=pdfwrite \ 
    -r600    \ 
    -g8112x7596  \ 
    -dPDFFitPage  \ 
    input.ps 
+0

Tôi nghĩ bạn muốn sử dụng '-r720' cho 720 dpi. Cảm ơn câu trả lời của bạn anyway – Dorian

+0

Tôi có một ứng dụng đang sử dụng Ghostscriptsharp (triển khai C#). Nó chỉ là một .dll và không có tất cả các tùy chọn dòng lệnh (mà tôi có thể tìm thấy) cho các kích thước trang tùy chỉnh. Bất kỳ ý tưởng về cách thực hiện điều này trong wrapper này? – Valien

+0

rasterizer.CustomSwitches.Add ("- dMySwitch"); – wbt11a

3

gì làm việc cho tôi:

gs -sDEVICE=pdfwrite -r720 -g4308x6066 -dPDFFitPage -o out.pdf in.pdf

Các 4308x6066 là số điểm ảnh, các -r720 là số lượng pixel trên mỗi inch.

Vì vậy, ở đây chúng tôi có 720dpi, vì vậy ví dụ cho 5 inch, điều này sẽ là 3600 pixel.

0

Tôi đang sử dụng GhostPDL 9.10. Mặc dù kích thước giấy của tôi là 8,5x13 được liệt kê tại http://ghostscript.com/doc/7.07/Use.htm#Known_paper_sizes là "flsa" công tắc "-sPAPERSIZE = flsa" không có hiệu lực, kích cỡ giấy vẫn là Letter. Các đơn vị chính xác cho công tắc -g5100x7800 khớp với -r600 của tôi (không 720); -g công trình.

1

Tôi thấy rằng gs đã cắt đầu ra của mình mặc dù tôi đã buộc trang này có kích thước chuẩn lớn nhất, A0.

Lý do hóa ra là tài liệu PostScript được gửi đến gs bởi groff/grops chứa thông số %%DocumentMedia đã ghi đè lựa chọn của Ghostscript.

Giải pháp là cung cấp cho groff cờ dòng lệnh -p-P48i,48i. -p yêu cầu groff chuyển phần còn lại của tùy chọn sang grops. -P48i,48i to grops đặt khổ giấy thành 48 inch x 48 inch.

Các vấn đề liên quan