Вирівнювання прозорості PDF


11

У мене є PDF, виготовлений із Inkscape, в якому використовуються прозорі кольори. Це зображення використовуватиметься в документі LaTeX.

Хоча збереження прозорості приємно для редагування, це може бути проблемою для друку. Друк зазвичай включає перетворення PDF в PS. Оскільки Postscript не підтримує прозорість, цього потрібно також

  • плоскостопість, тобто створення векторної графіки, яка працює без прозорості

або

  • растрування, тобто надання растрового зображення.

Коли документ PDF, що містить таку фігуру, друкується (або перетворюється в PS) за допомогою Evince (або Каїр або Ghostscript), вся сторінка виводиться у вигляді растрової карти, а шрифти стають некрасивими (відмінні від інших сторінок). (Adobe Acrobat добре обробляє такі PDF-файли.)

На жаль, перетворення фігур PDF у EPS (перед тим, як включити їх у LaTeX) не дуже допомагає, оскільки і pdftops, і pdf2ps (знову ж таки, Каїр або Ghostscript) раструюють зображення, тобто надають растрові карти (зберігаються як EPS). (Це трохи краще, оскільки це не впливає на всю сторінку, але я все-таки віддаю перевагу векторній графіці.)

Як я можу вирівняти прозорість за допомогою Inkscape чи іншого програмного забезпечення в Linux?


2
Цікаве запитання. Було б дуже складно сплюстити svg, оскільки при кожному можливому перетині фігур потрібно було б створити нову непрозору форму з композиційною заливкою.
artfulrobot

@artfulrobot Рівно. Отримана векторна графіка в цілому може стати досить складною. Однак для низки типово векторних ліній графічних зображень результат все-таки повинен добре працювати на сучасному принтері Postscript.
січня

Найкращий метод, який я знайшов, - це виснажливий посібник, який включає перемальовування після початкового кроку: використовуйте Inkscape для перетворення вашого PDF у SVG, відкрийте svg у гарному текстовому редакторі. Замініть всі випадки "непрозорості: [0] [0-9 \.]" На "непрозорість: 1" (версія регулярного вираження) або знайдіть "непрозорість: 0". і вручну замінити на непрозорість 1 (нудна версія). Відкрийте SVG в Inkscape і зробіть його знову гарним (важка частина), ніж назад до pdf та до eps.
Кріс Х

Відповіді:


6

Один із способів поганої растерізації - це вручну перетворити ваш PDF-документ у постскрипт, оскільки коли ви викликаєте CUPS через evince чи будь-які gui, він буде перетворений у будь-якому випадку.

Ви можете спробувати pdftops -r 1200 document.pdfзбільшити роздільну здатність з низького значення за замовчуванням 300, а потім надрукувати отриманий постскрипт. Однак при роботі принтерів це не принесло суттєвого покращення. Звичайний текст на сторінках із прозорими зображеннями та без них все ще виглядав інакше - розмитим та чітким.

Тож я в кінцевому підсумку скористався програмою Acrobat Professional (на машині Windows), щоб вирівняти прозорі зображення, що використовуються в моєму документі з латексу, що дало оптимальні результати. Перевірте, Transparency Flattener Presetчи [High Resolution]знаходиться в розширених налаштуваннях друку. Мій колега зауважив, що, можливо, можна FTP-файл PDF безпосередньо на сучасний мережевий принтер laserjet, минаючи перетворення постскрипту. Я цього не пробував.

Було б чудово вирішити цю проблему лише для Linux.


1

У мене була така ж проблема, і це моє рішення (для подальшого ознайомлення):

Я пробував багато речей, і до сих пір краще робоче рішення , яке я знайшов в Інтернеті , повністю рендеринга PDF у вигляді зображення з pdf2psі ps2pdf13, але результат не був задовільним для мене, тому що все векторні фігури були втрачені. Я хотів зобразити лише критичні частини, але зберегти векторну графіку.

Трюк для мене полягав у тому, щоб виділити всі критичні частини в Inkscape і нанести їх на окремий шар (на моїх зображеннях це були всі тіні). Я зробив лише цей шар (і фоновий шар) видимим і експортував його в PNG, ефективно надаючи всі ефекти прозорості, але тільки їх. Я імпортував його назад і використав його в новому шарі. Після перегортання всіх видимостей шару (прозорий шар: вимкнено, всі інші: увімкнено), експортований PDF відмінно працював з LaTeX і був надрукований, не надаючи всю сторінку як зображення.

TL; DR:

  1. Виділіть усі проблемні прозорі шари в один шар (маски прозорості, тіні тощо)
  2. Зробити видимим лише проблемний шар та фон
  3. Експорт до PNG
  4. Імпортуйте щойно створений PNG і використовуйте як фон
  5. Зробіть видимими всі шари, крім проблемного шару
  6. Експорт у PDF
  7. Усміхніться :)

0

Один із способів - зробити біле поле в Inkscape такого ж розміру, як і ваша сторінка, і надіслати його нижньому шару. Це експортує ваше зображення з білим тлом замість прозорого.


1
Проблема - не прозорий фон, а додавання білого фону не вирішує. Питання про зображення використовує напівпрозорі форми на інших (непрозорих) формах. SVG та PDF підтримують це, але PS - ні.
січня

0

Я відкрив pdf-файл за допомогою Ubuntu / Gimp і надрукував по одній сторінці за один раз, перевіряючи попередній перегляд друку.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.