Tôi đang cố gắng, không thành công, để sử dụng Ghostscript để rasterize tệp PDF với nền trong suốt vào tệp PNG có nền trong suốt. Tôi đã tìm kiếm cao và thấp cho các câu hỏi từ những người khác đang cố gắng thực hiện cùng một điều và không có giải pháp nào được đăng, theo như tôi có thể nói xuống đến chỉ định -sDEVICE = pngalpha, đã làm việc với các tệp thử nghiệm của tôi. Tại thời điểm này Tôi thực sự sẽ đánh giá cao bất kỳ lời khuyên hoặc lời khuyên nào một bàn tay có kinh nghiệm hơn có thể cung cấp .Chuyển đổi PDF thành PNG trong suốt với GhostScript
kiểm tra PDF của tôi nằm ở đây: http://www.kolossus.com/files/test.pdf
Có thể là vấn đề là với tập tin này, nhưng tôi nghi ngờ nó. Theo như tôi có thể nói, nó không có nền được chỉ định và khi tôi mở tệp bằng ứng dụng minh bạch như Photoshop hoặc Illustrator, chắc chắn đủ hiển thị với nền trong suốt. Tuy nhiên, khi mở bằng ứng dụng như Adobe Reader, tệp được hiển thị với nền trắng. Tôi tin rằng điều này có liên quan nhiều hơn với ứng dụng hiển thị PDF so với bản PDF - các ứng dụng như Adobe Reader giả sử bạn muốn xem tài liệu được in trông như thế nào và luôn hiển thị canvas trắng phía sau tác phẩm nghệ thuật - nhưng tôi không thể chắc chắn.
Các gs lệnh Tôi đang sử dụng là:
gs -dNOPAUSE -dBATCH -sDEVICE=pngalpha -r72 -sOutputFile=test.png test.pdf
này tạo ra một PNG mà có điểm ảnh trong suốt bên ngoài của bounding hộp của tác phẩm nghệ thuật trong tập tin, nhưng tất cả các pixel mà bên trong tác phẩm nghệ thuật của hộp giới hạn được rasterized trên nền trắng. Đây là vấn đề đối với tôi, vì tác phẩm nghệ thuật của tôi đã thả bóng và các cạnh chống răng cưa cần được giữ nguyên ở đầu ra cuối cùng và không thể được xử lý sau bằng ImageMagick. Một mẫu đầu ra PNG của tôi ở cùng vị trí với pdf ở trên, với .png ở cuối (stackoverflow sẽ không cho phép tôi bao gồm nhiều url trong bài đăng của tôi).
Điều thú vị là tôi không thấy ảnh hưởng gì khi sử dụng cờ -dBackgroundColor, thậm chí nếu tôi đặt nó thành thứ gì đó không phải màu trắng như -dBackgroundColor = 16 # ff0000. Có lẽ sự hiểu biết của tôi về cú pháp của lá cờ này là sai.
Cũng thú vị, tôi thấy không có tác dụng khi sử dụng -dTextAlphaBits = 4 -digitalAlphaBits = 4 cờ để cố gắng bật tính năng khử răng cưa con pixel. Tôi sẽ cũng đánh giá cao bất kỳ lời khuyên nào về cách bật tính năng chống răng cưa con pixel, đặc biệt là trên văn bản.
Cuối cùng, tôi đang sử dụng GPL Ghostscript 8.64 trên Mac OS 10.5.7 và kết xuất công việc Tôi đang cố thiết lập để tạo hình ảnh PNG trong suốt từ tệp PDF do PrinceXML tạo. Tôi đang gọi Ghostscript trực tiếp cho việc rasterization thay vì sử dụng ImageMagick vì ImageMagick ủy nhiệm cho Ghostscript cho PDF rasterization và tôi sẽ có thể kiểm soát rasterization tốt hơn bằng cách gọi GS trực tiếp.
Cảm ơn sự giúp đỡ của bạn.
-Jon Wolfe
Chỉ muốn cảm ơn câu trả lời này. Tôi đang cố gắng để rasterize một PDF với 'gs 9.02', đó là một lớp phủ của hai PDF với đầy trong suốt (thực hiện với' pdftk'); khi tôi rasterized với '-r 150', tôi chỉ nhận được lớp trên cùng có thể nhìn thấy, trong khi phía dưới là gần như vô hình. Sau khi đọc điều này, tôi đã thử '-dMaxBitmap = 2147483647', tiếc là nó không hoạt động cho tôi - nhưng sau đó tôi bắt đầu giảm độ phân giải, cho đến khi tôi thấy rằng tại' -r80' (đối với trường hợp của tôi), cuối cùng màu sắc được hiển thị đúng - điều đó có thể có nghĩa là nó là cùng một lỗi bộ nhớ. May mắn thay, 'gimp' đã làm việc cho tôi. Chúc mừng! – sdaau
Chỉ muốn nói rằng PNG trong suốt hoạt động tốt cho tôi. Tôi đang sử dụng GhostScript 9.19 trên Windows và 9.06 trên Linux. Tôi đang sử dụng các tùy chọn này: '-q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap = 500000000 -dAlignToPixels = 0 -dGridFitTT = 2 -sDEVICE = pngalpha -dTextAlphaBits = 4 -dGraphicsAlphaBits = 4 -r150'. Tôi không biết liệu có ai trong số họ có tạo ra sự khác biệt nào không, nó chỉ làm việc cho tôi, nên tôi không chơi đùa với nó. – TheStoryCoder