2010-04-17 37 views
9

Tôi đã sử dụng Ghostscript để chuyển đổi lô con số duy nhất của tôi rendered in PDF sang PNG:Tuân MediaBox/CropBox trong PDF khi sử dụng Ghostscript để vẽ lại một PDF sang PNG

gswin32c -sDEVICE=png16m -r300x300 -sOutputFile=junk.png^
     -dBATCH -dNOPAUSE Figure_001-a.pdf 

này hoạt động theo nghĩa Tôi nhận được một PNG ra và nó chứa cốt truyện.

Nhưng nó cũng chứa một lượng lớn không gian màu trắng (ví dụ: hình ảnh nguồn ví dụ: http://cdsweb.cern.ch/record/1258681/files/Figure_001-a.pdf).

Nếu bạn xem trong Acrobat, bạn sẽ thấy không có khoảng trắng xung quanh ô. Nếu bạn sử dụng dòng lệnh trên, bạn sẽ thấy cốt truyện chỉ bằng 1/3 diện tích.

Khi làm điều tương tự với tệp EPS, tôi chạy vào cùng một vấn đề. Tuy nhiên, có tham số dòng lệnh -dEPSCrop mà người ta có thể vượt qua để có được công cụ dựng hình PS chú ý đến BoundingBox.

Tôi cần đối số tương tự để hiển thị tệp PDF. Tôi đã không thể tìm thấy nó trong tài liệu (thậm chí không thực sự là -dEPSCrop).

+0

Cảm ơn! Theo như tôi có thể nói, điều này sử dụng một phương pháp tròn về viết ra một jpeg hoặc tương tự, quét cho các lề, và sau đó chạy lại với các lề được thiết lập. Thông tin cắt xén tôi muốn sử dụng ot đã có trong bản thân PDF (heck, Acrobat tự động phát hiện nó).Tôi không thể không tự hỏi nếu tôi có thể làm gì đó điên cuồng như chuyển đổi PDF sang PS, và sau đó giải nén hộp giới hạn từ đó. :-) – user319080

Trả lời

0

Bạn đã thử sử dụng pdfcrop bằng pdftex (đi kèm với texlive chẳng hạn) hoặc (chưa thử) tập lệnh python pdfcrop?

Tôi có quy trình làm việc tương tự bằng công cụ đầu tiên được đề cập.

4

Có những lựa chọn khác nhau để kiểm soát "kích thước phương tiện truyền thông" Ghostscript ám một đầu vào cho trước:

-dPDFFitPage
-dUseTrimBox
-dUseCropBox

Với PDFFitPage Ghostscript sẽ làm cho trang hiện kích thước thiết bị (thường là kích thước trang mặc định). Với UseTrimBox, nó sẽ sử dụng TrimBox (và nó sẽ đồng thời đặt PageSize thành giá trị đó). Với UseCropBox, nó sẽ sử dụng CropBox (và nó sẽ đồng thời đặt PageSize thành giá trị đó). Theo mặc định (không đưa ra tham số), Ghostscript sẽ hiển thị bằng cách sử dụng MediaBox.

Ví dụ của bạn, có vẻ như thêm "-dUseCropBox" sẽ thực hiện công việc bạn đang mong đợi. Lưu ý, bạn cũng có thể kiểm soát kích thước tổng thể của đầu ra bằng cách sử dụng "-sPAPERSIZE" (chọn trong số tất cả các giá trị được xác định trước Ghostscript biết) hoặc (để linh hoạt hơn) sử dụng "-dDEVICEWIDTHPOINTS=NNN -dDEVICEHEIGHTPOINTS=NNN".

8

Tôi đã gặp sự cố tương tự. Tôi đã sửa nó bằng cách thêm công tắc -dUseArtBox.

Ví dụ:

/usr/bin/gs -dUseArtBox -dNOPAUSE -sDEVICE=pngalpha -sOutputFile=output.png input.pdf 

Lưu ý: -dUseArtBox chuyển đổi được hỗ trợ since ghostscript version 9.07

-dUseArtBox Sets the page size to the ArtBox rather than the MediaBox. The art box defines the extent of the page's meaningful content (including potential white space) as intended by the page's creator. The art box is likely to be the smallest box. It can be useful when one wants to crop the page as much as possible without losing the content.

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