Làm phẳng PDF trong suốt


11

Tôi có một bản PDF, được làm bằng Inkscape, sử dụng màu trong suốt. Hình ảnh này sẽ được sử dụng trong tài liệu LaTeX.

Mặc dù duy trì độ trong suốt là tốt cho chỉnh sửa, nó có thể là một vấn đề cho việc in ấn. In ấn thường liên quan đến chuyển đổi PDF sang PS. Vì Postcript không hỗ trợ tính minh bạch, nên điều này đòi hỏi một trong hai

  • vỗ, tức là tạo ra một đồ họa vector hoạt động mà không minh bạch

hoặc là

  • rastering, tức là hiển thị hình ảnh bitmap.

Khi một tài liệu PDF có chứa hình như vậy được in (hoặc được chuyển đổi thành PS) bằng Evince (hoặc Cairo hoặc Ghostscript), toàn bộ trang sẽ được hiển thị dưới dạng bitmap, hiển thị phông chữ xấu (khác với các trang khác). (Adobe Acrobat xử lý tốt các tệp PDF như vậy.)

Thật không may, chuyển đổi các số liệu PDF thành EPS (trước khi bao gồm chúng với LaTeX) không giúp được gì nhiều, bởi vì cả pdftops và pdf2ps (một lần nữa, Cairo hoặc Ghostscript) rasterize hình ảnh, tức là hiển thị một bitmap (được lưu dưới dạng EPS). (Điều này tốt hơn một chút, vì nó không ảnh hưởng đến toàn bộ trang, nhưng tôi vẫn thích đồ họa vector hơn.)

Làm cách nào tôi có thể làm phẳng tính minh bạch với Inkscape hoặc phần mềm khác trên Linux?


2
Câu hỏi thú vị. Sẽ rất phức tạp để làm phẳng svg vì mọi giao điểm có thể có của hình dạng sẽ cần để tạo ra một hình dạng mờ mới với điền vào hỗn hợp.
artfulrobot

@artfulrobot Chính xác. Đồ họa vector kết quả nói chung có thể trở nên khá phức tạp. Tuy nhiên, đối với một số đồ họa nghệ thuật dòng vector điển hình, kết quả vẫn sẽ hoạt động tốt trên máy in Postcript hiện đại.
Jan

Phương pháp tốt nhất mà tôi đã tìm thấy là một hướng dẫn tẻ nhạt, liên quan đến việc vẽ lại sau bước ban đầu: sử dụng inkscape để chuyển đổi pdf của bạn thành một svg, mở svg trong trình soạn thảo văn bản tốt. Thay thế tất cả các lần xuất hiện của 'opacity: [0] [0-9 \.]' Bằng 'opacity: 1' (phiên bản regex) hoặc tìm 'opacity: 0.' và thay thế thủ công bằng opacity 1 (phiên bản tẻ nhạt). Mở svg trong inkscape và làm cho nó trông đẹp hơn (phần cứng), hơn là quay lại pdf và vào eps.
Chris H

Câu trả lời:


6

Một cách xung quanh việc rasterization xấu là chuyển đổi thủ công tài liệu PDF của bạn thành postcript bởi vì khi bạn gọi CUPS thông qua evince hoặc bất cứ gui nào, nó sẽ được chuyển đổi bằng mọi cách.

Bạn có thể thử pdftops -r 1200 document.pdftăng độ phân giải từ mức mặc định thấp là 300, sau đó in phần mô tả kết quả. Tuy nhiên, với các máy in đang hoạt động, điều này không mang lại sự cải thiện đáng kể. Văn bản thông thường trên các trang có và không có hình ảnh trong suốt trông vẫn khác - mờ so với rõ ràng.

Vì vậy, tôi đã kết thúc việc sử dụng Acrobat Professional (trên máy tính windows) để làm phẳng các hình ảnh trong suốt được sử dụng trong tài liệu latex của tôi, cho kết quả tối ưu. Kiểm tra xem đó Transparency Flattener Preset[High Resolution]trong thiết lập in nâng cao. Đồng nghiệp của tôi đã đề cập rằng một người có lẽ có thể FTP một tệp pdf trực tiếp đến một máy in mạng laserjet hiện đại, bỏ qua việc chuyển đổi mô tả. Tôi đã không thử điều này.

Sẽ là tuyệt vời khi có giải pháp chỉ dành cho linux cho vấn đề này.


1

Tôi đã có cùng một vấn đề và đây là giải pháp của tôi (để tham khảo trong tương lai):

Tôi đã thử rất nhiều thứ, và cho đến nay, giải pháp hoạt động tốt nhất mà tôi tìm thấy trên internet là hiển thị PDF hoàn toàn như một hình ảnh pdf2psps2pdf13, nhưng kết quả không thỏa đáng với tôi, vì tất cả các hình dạng vector đều bị mất. Tôi muốn chỉ hiển thị các phần quan trọng, nhưng giữ lại đồ họa vector.

Điều đã làm cho tôi mẹo là cô lập tất cả các phần quan trọng trong inkscape và đặt chúng trên một lớp riêng biệt (trong hình ảnh của tôi đây là tất cả các bóng). Tôi chỉ hiển thị lớp này (và lớp nền) và xuất nó sang PNG, hiển thị hiệu quả tất cả các hiệu ứng trong suốt, nhưng chỉ có chúng. Tôi đã nhập lại và sử dụng nó trong một lớp mới. Sau khi lật tất cả các mức độ hiển thị của lớp (lớp trong suốt: tắt, tất cả các lớp khác: bật), tệp PDF đã xuất hoạt động hoàn hảo với LaTeX và có thể in được mà không hiển thị toàn bộ trang dưới dạng hình ảnh.

TL; DR:

  1. Cô lập tất cả các độ trong suốt có vấn đề thành một lớp (mặt nạ trong suốt, bóng, v.v.)
  2. Chỉ hiển thị lớp có vấn đề & nền
  3. Xuất sang PNG
  4. Nhập PNG vừa tạo và sử dụng làm nền
  5. Làm cho tất cả các lớp hiển thị ngoại trừ lớp có vấn đề
  6. Xuất ra PDF
  7. Nụ cười :)

0

Một cách là tạo một hộp màu trắng trong Inkscape có cùng kích thước với trang của bạn và gửi nó đến lớp dưới cùng. Điều này sẽ xuất hình ảnh của bạn với một nền trắng thay vì trong suốt.


1
Vấn đề không phải là một nền trong suốt và thêm một nền trắng không giải quyết được nó. Câu hỏi hình ảnh sử dụng hình dạng bán trong suốt ontop của hình dạng khác (mờ). SVG và PDF hỗ trợ điều này, nhưng PS thì không.
Jan

0

Tôi đã mở tệp pdf bằng Ubuntu / Gimp và in một trang mỗi lần kiểm tra bản xem trước in.


-1
pdftops -origpagesizes input.pdf output.ps

sau đó

ps2pdf -r600x600 output.ps input-new.pdf
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.