Чи можливо інвертувати текст та кольори фону в PDF під час друку?


18

У мене є PDF з повністю чорним фоном, і весь текст є білим.

Чи є спосіб змусити текст друкувати чорний, а чорний фон взагалі не друкувати?

У мене є Bluebeam та Adobe PDF.

Відповіді:


12

Як не дивно, що для цього є "законні" випадки використання, зокрема люди зі слабким зором. Acrobat та інші читачі можуть змінювати кольори для відображення (наприклад, Ctrl-I в Evince та через меню Accessibility в Acrobat Reader X), але як не дивно для друку. Що ви можете зробити, це скористатися конвертором pdf2ps GhostScript (або підробленим драйвером принтера для PS, який щойно записує файл), щоб отримати файл постскрипту, а потім відредагувати файл, поставивши

{1 exch sub} settransfer 

як перший рядок у файлі, а потім друк цього PostScript-файла. Таким чином ви отримаєте більш вірне відображення документа, ніж ви б перетворили PDF у зображення та перевернули це.


1
Я зробив щось подібне (у Windows), встановивши драйвер принтера PostScript і потім сказав йому друкувати у файл, щоб захопити вихід. Ця ж концепція повинна працювати і в інших ОС. Слід зазначити, що файли PostScript - це лише текстові файли, які можна редагувати у більшості текстових редакторів.
мартіно

За допомогою комбінації pdf2psі ps2pdfя можу експортувати оригінальний PDF у перевернутий pdf-файл. Мені просто цікаво, що роблять запропоновані рядки, і якщо можливо "повернути" назад до початкових кольорів.
tigerjack89

3

Є простий і технічний спосіб .

Технічний спосіб полягає в тому, що якщо у вас встановлений Ghostscript і його .../binпапка додана до вашого PATH, ви повинні просто мати змогу перевернути кольори вашого PDF, зателефонувавши з командного рядка щось, що нагадує таке:

gswin64 -o C:/outputfile.pdf -sDEVICE=pdfwrite -c "{1 exch sub}{1 exch sub}{1 exch sub}{1 exch sub} setcolortransfer" -f C:/inputfile.pdf

Зауважте, що gswin64(розташований у .../binпапці) можна викликати, gswin32якщо ви завантажили 32-бітну версію або щось інше цілком, якщо ви перебуваєте в системі * nix замість Windows, і що ви, очевидно, повинні замінити C:/outputfile.pdfі C:/inputfile.pdfфактичними шляхами вашого вхідний файл та місце розташування вихідного файлу. Також подбайте про те, щоб на моєму досвіді іноді виникли певні проблеми, якщо у вас є пробіли у каталогах, навіть якщо ви ставите лапки біля них.

Також варто відзначити, що iirc деякі версії Ghostscript можуть не виконати цього, якщо ви не введете {1 exch sub}{1 exch sub}{1 exch sub}{1 exch sub} setcolortransferрядок в окремий .psфайл і просто додасте .psфайл до своєї команди.

(Це справді просто більш детальна версія Mateen Ulhaqвідповіді на відповідь вище)

Найпростіший спосіб полягає в тому, що якщо ви не можете перешкоджати виконанню будь-якого з перерахованого вище, ви можете скористатися веб-сайтом InvertPDF.com, який зробить все це (плюс ще трохи) для вас. Це мій власний веб-сайт, і я натрапив на цей потік, коли я намагався його створити. Я впевнений, що ця відповідь спрощує наступну людину, яка намагається досягти подібної речі, або створюючи свій власний сценарій офлайн.


2

Відповідно до цієї сторінки , можливо, ви зможете виконати це за допомогою ImageMagick. Однак PDF-файл буде перетворений на зображення до його інвертування. Якщо якість не є достатньою через це, ви повинні мати можливість регулювати номер DPI.

convert -density 300 -negate "input.pdf[1-999]" output.pdf

Замініть 300потрібний DPI та 1-999потрібний діапазон сторінок.

ПРИМІТКА . Ця команда призначена для старішої версії ImageMagick, і вам потрібно буде встановити застарілі утиліти.

Спадкові комунальні послуги


@ fixer1234 Дякую за те, що я звернув це на увагу. Я додав посилання на цю сторінку в Інтернет-архіві.
bdr9

1

У програмі Acrobat Reader X

Правка-> Налаштування-> Доступність Виберіть: Замінити кольори документа Виберіть: Спеціальний колір

Встановіть інші параметри відповідно до особистих уподобань.

Примітка. Це не змінює документ, а лише ваш погляд і спосіб друку.


Не друкується інакше, ніж оригінал AFAICT
mike65535,

1

Жодне з раніше розміщених рішень не працювало для мене, тому я написав цей простий скрипт. Це залежить від pdftkі awk. Просто скопіюйте код у файл та зробіть його виконуваним. Потім запустіть його так:

$ /path/to/this_script.sh /path/to/mypdf.pdf

Сценарій:

#!/bin/bash                                                                      
pdftk "$1" output - uncompress | \                                               
awk '                                                                            
  /^1 1 1 / {                                                                    
    sub(/1 1 1 /,"0 0 0 ",$0);                                                   
    print;                                                                       
    next;                                                                        
  }                                                                              

  /^0 0 0 / {                                                                    
    sub(/0 0 0 /,"1 1 1 ",$0);                                                   
    print;                                                                       
    next;                                                                        
  }                                                                              

  { print }' | \                                                                 
pdftk - output "${1/%.pdf/_inverted.pdf}" compress

Цей сценарій працює для мене, але ваш пробіг може відрізнятися. Зокрема, іноді кольори перераховані у формі 1.000 1.000 1.000замість 1 1 1. Сценарій можна легко змінити за потреби. За бажанням можна також додати додаткові перетворення кольорів.


0

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

"C:\Program Files\gs\gs9.20\bin\gswin64c" -o inverted.pdf -sDEVICE=pdfwrite -c "{1 exch sub}{1 exch sub}{1 exch sub}{1 exch sub} setcolortransfer" -f %1
convert -brightness-contrast 3,-18 -compress lzw  -density 300 -colorspace Gray inverted.pdf output.pdf

Потрібно встановити Ghostscript для першої команди (вкажіть правильний шлях). Для другої команди потрібно встановити ImageMagick із застарілими утилітами.


0

Багато хто запропонував скористатися методом Правка-> Налаштування-> Доступність, але, на жаль, це не спрацювало для мене. Після тестування та перегляду налаштувань PDF, мені вдалося отримати те, що я хотів!

  • Перейдіть до друку (Ctrl + P)
  • Клацніть Розширені налаштування
  • Перевірте Налаштування: Спеціальні
  • Клацніть Вихід з лівої панелі
  • Під Кольором: виберіть Композитний сірий
  • Поставте прапорець Negate
  • Натисніть кнопку ОК

Це має зробити трюк!

Важлива примітка!
Я б запропонував надрукувати цей файл у PDF, ніж безпосередньо. Особливо, якщо ви маєте намір надрукувати кілька сторінок на одній сторінці, оскільки це призведе до того, що пробіл також стане чорним!

Нарешті, якщо ви збираєтесь надрукувати документ як інший PDF, у розділі « Розміри сторінки та обробка» натисніть кнопку « Підготувати» та встановіть обидва вікна - « Виберіть розмір паперу, коли це потрібно » та « Використовуйте потрібний розмір паперу за потреби» . (Щоб уникнути небажаних пробілів)

Сподіваюся, що це допоможе!


Це характерно для вашого драйвера принтера
Марка Джеронімуса

-1

Використання ImageMagick працювало для мене, хоча вихідний файл приблизно в 50 разів більший за вхідний.

convert -density 300 -negate input_file.pdf output_file.pdf

Командний рядок (в Linux) був: перетворити -на щільність 300 -негативний input_file.pdf output_file.pdf
Catchaca
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.