Чи є кращий спосіб редагувати PDF?


25

Нещодавно мені довелося надрукувати пару PDF-файлів, щоб надіслати комусь, але я хотів відредагувати (затьмарити) пару невеликих шматочків тексту.

Швидкий пошук Google не знайшов інструментів для цієї конкретної мети, тому я повернувся до Imagemagick & gimp:

  • convert document.pdf document.png
  • gimp document-0.png
  • (використовуйте пензлик для затемнення тексту)
  • друкувати відредаговану сторінку від gimp
  • друкувати решта сторінок з xpdf

Проблема цієї стратегії полягає в тому, що процес перетворення (з PDF в PNG або будь-який інший формат) втрачає якість. Я спробував редагувати PDF в gimp, але це не вийшло відразу.

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

Або є хитрість редагувати PDF-файли в gimp?


2
PDF масштабований, PNG - растрова графіка, імовірно, тому в процесі конверсії є втрати якості. Перетворити на змістовний формат, наприклад SVG.
Анонім

@ Anonymous: Хороша ідея, але не корисна. Отриманий файл SVG є масивним; Мені довелося вбити глядача через 30 хвилин і споживання пам’яті GiB або близько того.
bstpierre

Відповіді:


16

(Спочатку я рекомендував Okular, але він не працював так, як я очікував)

1. Відредагуйте документ у векторному редакторі

Мені вдалося відкрити PDF-файл у Inkscape , намалювати прямокутник над фрагментом тексту та роздрукувати його. Inkscape - це векторний редактор, тому не потрібно брати участь у растризації. Деякі шрифти виглядали не так - мабуть тому, що документ створений на машині Windows із шрифтами, які відсутні у мене.

Зауважте, що будь-який метод, що не передбачає растеризації, є прийнятним лише у тому випадку, якщо ви збираєтеся надрукувати відредагований документ на папері та не поширюєте його в електронному вигляді, оскільки текст все-таки можна отримати з-під затемнення.

2. Збільште роздільну здатність растеризації під час відкриття в редакторі растрових зображень

Щодо "втрати якості" при відкритті сторінки в Gimp : ви можете безпосередньо відкрити PDF-файл у Gimp. Це буде растеризовано в процесі. Кількість втрат якості в процесі - це вирішення, яке ви вибираєте під час імпорту - 300 dpi повинно отримати дуже пристойну якість (за замовчуванням - 100).

Ви також можете отримати хороші результати за допомогою convertкоманди ImageMagick, якщо ви скажете їй, щоб збільшити роздільну здатність:

convert -density 300x300 ...

1
+1 та прийнято! Дякую за те, що ви запропонували Inkscape, він зробив розумну роботу (не ідеальну - він втратив пару (неважливих для мене) графічних об'єктів) - але дуже розумно). І підказка convertбула також хорошою: заповідний вміст, який я використовував, був convert -density 300x300і втрати якості не було.
bstpierre

+1 для згадки про GIMP може добре впоратися з pdfs
don.joey

8
Попередження для загальної групи: методи редагування тут, які передбачають збереження тексту, запропоновані тут (наприклад, усі ті, що уникають растеризації), не є безпечними. Текст все ще можна вибирати з-під затемнення або читати з джерела файлу. Дивіться, наприклад, freerepublic.com/focus/f-news/2706743/posts та hackaday.com/2008/08/01/exposed-poorly-redacted-pdfs
naught101

Хоча в оригінальному запитанні було задано лише надіслати копію, для якої непридатні методи нестерилізації, оскарження, оскільки ця відповідь недостатньо чітко попереджає про ризик безпеки при поширенні результату в електронному вигляді.
Джессі Глік

5
@JesseGlick: замість того, щоб "покарати" мене за те, що я не звертався до справи про використання, про яку навіть не було сказано в оригінальному запитанні, ви могли просто відредагувати відповідь. Це було б вигідніше для майбутніх відвідувачів.
Сергій

10

В основному те, що ви намагаєтеся зробити, це виділити / анотувати PDF, але з деякою гнучкістю до непрозорості та кольору маркера (ви згадали, що вам не потрібно щось цензурувати / видаляти, просто редагувати). Ви подивилися відповіді тут: Як я можу виділити або коментувати PDF-файли?

Один з найбільш оцінених відповідей рекомендує Xournal , який тут не згадувався і був би моєю зброєю вибору. Це інструмент, який дозволяє робити рукописні нотатки, але має додаткові функції, що дозволяють коментувати PDF. За замовчуванням вона збереже ваші примітки як окремий файл, але також дозволяє експортувати PDF з примітками як новий PDF. Це має підтримувати макет, шрифти тощо.

За допомогою Xournal ви вибрали "Анотація PDF", а потім використовувати суцільний чорний маркер для маскування частин, які ви хочете редагувати, та "Експорт у PDF".

В Інтернеті є кілька історій, які свідчать про те, що Xournal раструє текст у експортованому PDF (спасибі, що вказав на це, MHC). Це, мабуть, не відповідає дійсності: за допомогою простих анотацій текст залишається добірним і доступним для пошуку, а розмір файлу не збільшується значно (він збільшився з 205 кб до 220 кб у прикладі нижче).

Щоб встановити, запустіть у терміналі: sudo apt-get install xournalабо просто виберіть його в Центрі програмного забезпечення

Інтерфейс Xournal Отриманий експортний PDF


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

1
Дякуємо за відгук, @MHC. Xournal не растрований, для отримання додаткової інформації див. Переглянуту відповідь.
Томаш

3
Я просто спробував це на собі, і ти абсолютно прав. Вибачте за непорозуміння. Минув час, коли я використав Xournal, і я якось залишився з враженням, що експортовані документи не відповідають справжньому PDF-файлу. Дякуємо, що встановили це прямо!
Глутанімат

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

Для справжнього редагування, яке замінює текстові дані зображеннями, комбінуйте цю відповідь з @ balu, що використовує convertкоманду ImageMajick .
колан

6

Можна використовувати Okular.

sudo apt-get install okular
  1. Відкрийте pdf за допомогою Okular.
  2. Натисніть F6.
  3. Натисніть 8.
  4. Виділіть текст, який ви хочете редагувати.
  5. Клацніть правою кнопкою миші текст, виберіть властивості, виберіть "Тип" як "Виділити", натисніть Ok.
  6. Роздрукуйте файл у форматі PDF.

4
Можливо, згадайте, як зробити родзинку чорною.
equaeghe

1
Okular може редагувати будь-який колір (чорний) з цих функцій: підсвічування тексту, вільна лінія руки та посилання на багатокутник із внутрішньою заливкою. Ви можете зберегти налаштування як власний спеціальний інструмент для анотацій. Легко використовувати його знову і знову. Тоді, коли ви друкуєте файл у форматі pdf, вам слід «примусити растерізацію», щоб переконатися, що редагування не є оборотним. Версія Okular 1.1.3
shadowbq

За замовчуванням чорний, працює з останньою версією Okular. Дякую!
TheFrack

5

Я щодня редагую багато PDF-файлів, тому витрачаю багато часу на роздуми, як зробити це найкращим чином.

Для мене найкращим способом є розділення PDF в 1-сторінковому PDF-файлі, поряд із редагуванням у GIMP, поруч із поєднанням. Я не використовую imagemagick для всіх файлів (я взагалі не використовую), тому я не втрачаю текстовий шар на всіх сторінках, а лише на редагуванні. Не завантажуйте одразу весь файл PDF, оскільки це спричиняє виснаження пам'яті.

Розділити PDF на 1-сторінкові файли

Легко розділити PDF-файли на 1-сторінковий PDF ви можете за допомогою цієї функції bash (помістіть його в ~ / .bashrc):

function pdf_split(){
    for file in "$@"; do
        if [ "${file##*.}" != "pdf" ]; then
            echo "Skip $file because it's not PDF file";
            continue
        fi; 
        pages=$(pdfinfo "$file" | grep "Pages" | awk '{print $2}') 
        echo "Detect $pages in $file";
        filename="${file%.*}";
        unset Outfile;
        for i in $(seq 1 "$pages"); do
            pdftk "$file" cat "$i" output "$filename-$i.pdf";
            Outfile[$i]="$filename-$i.pdf";
        done;
    done;
};

Тепер ви можете увійти, split_pdf file.pdfщоб отримати багато файлів PDF.

Повторні файли

Але тепер вам потрібно відредагувати всі ці файли. Ви можете це зробити за допомогою gimp original-filename-*.pdf. Я пропоную налаштувати ярлик у GIMP (Головне вікно-> Змінити-> Ярлик) для заміни файлу (я використовую CTRL + R), фільтра розмиття (наприклад, CTRL + D), закриття файлу (наприклад, CTRL + W) та виходу з GIMP ( наприклад.CTRL + Q). Не забудьте не завантажувати в GIMP відразу багато файлів, але GIMP, як ви завантажуєте після відкриття, так що ви можете використовувати gimp original-filename-*.pdfв безпеці тисячі файлів.

Об'єднайте файли

Ви можете легко комбінувати файли з: pdftk originam-filename-*.pdf cat output "new-file-anon.pdf";

З’єднайте все це разом

Ці операції дуже повторюються і нудні, тому я з'єдную все це за 1 сценарій:

function pdf_redact(){
    for file in "$@"; do
        if [ "${file##*.}" != "pdf" ]; then
            echo "Skip $file because it's not PDF file";
            continue
        fi; 
        pages=$(pdfinfo "$file" | grep "Pages" | awk '{print $2}') 
        echo "Detect $pages in $file";
        filename="${file%.*}";
        unset Outfile;
        for i in $(seq 1 "$pages"); do
            pdftk "$file" cat "$i" output "$filename-$i.pdf";
            Outfile[$i]="$filename-$i.pdf";
        done;
        gimp "${Outfile[@]}";
        pdftk "${Outfile[@]}" cat output "$filename-anon.pdf";
        rm "${Outfile[@]}";

    read -p "Do you want open output file? " -n 1 -r
    echo    
    if [[ $REPLY =~ ^[Yy]$ ]]
    then
            evince "$filename-anon.pdf";
    fi

    read -p "Do you want upload output file to Scribd.com? " -n 1 -r
    echo 
    if [[ $REPLY =~ ^[Yy]$ ]]
    then
        scribd_up "$filename-anon.pdf";
    fi
    done;
};

Найновіша версія цього сценарію завжди доступна за посиланням: http://dostep.jawne.info.pl/it/bashrc

Не забудьте закрити GIMP (CTRL + Q) після повного редагування для продовження сценарію.

В залежності від того, як я відкриваю відредаговані файли (я люблю читати, щоб перевірити, чи всі), а також завантажувати в Scribd за допомогою мого іншого сценарію - scribd_up , тому тепер я можу дуже ефективно редагувати багато файлів PDF.


2

Відкрийте PDF за допомогою безкоштовного інструменту PDF-Xchange PDF Viewer . Затемніть текст для редагування за допомогою чорних прямокутників. Друк. Це дозволить отримати легку, якісну "підроблену" редакцію.


Це, здається, є інструментом win32. Повідомте мене, якщо я пропустив посилання на порт Linux ...
bstpierre

3
Безкоштовний портативний переглядач PDF-Xchange буде працювати з вином.
Сабакон

Дякую, це прекрасно працювало для мене з вином. Рішення inkscape та gimp дуже корисні лише для редагування однієї сторінки.
Gearoid Murphy

2

Використовуйте LibreOffice Draw для швидкого редагування, яке ви шукаєте. Після завершення ви можете зберегти його у форматі LibreOffice Draw або експортувати його знову у формат PDF ( File> Export as PDF)

введіть тут опис зображення

Щоб мати можливість імпортувати PDF-файли у LibreOffice Draw, спочатку слід встановити пакет libreoffice-pdfimport.

Встановіть його через Центр програмного забезпечення Ubuntu ( libreoffice-pdfimport Встановіть libreoffice-pdfimport ) або через термінал з sudo apt-get install libreoffice-pdfimport.


2

Ви також можете спробувати цей інструмент: https://launchpad.net/updf

Ось він (але все одно, текст можна вибрати):

введіть тут опис зображення


1
uPDF чудовий тим, що він зберігає оригінальний PDF, його текст та вміст svg. Однак, мабуть, є деякі проблеми з рівнями стиснення. Відредаговані PDF-файли розміром приблизно на 3-4 рази більше, ніж оригінал. Дякую, що опублікували це. Я не знав про uPDF.
Glutanimate

Так, я знаю, що у нього є деякі проблеми, це трохи грубо. Сподіваємось, новіші випуски виправлять ці проблеми ... :)
franzlorenzon

Як вже згадувалося, uPDF має багато помилок (і навіть не скасовувати / повторювати), але все одно в моєму випадку все було добре, тож дякую!
balu

2

Я пам’ятаю, як одного разу мені та колезі довелося знайти спосіб редагувати пару pdf-файлів. Ми закінчилися з використанням Gimp. Я прокоментую вам деталі ... ми відкриваємо pdf безпосередньо gimp (в терміналі)

gimp the_file.pdf

Після того, як ви закінчите редагування, ми не зберегли зміни, замість того, щоб надрукувати їх у pdf-файл ... Це, здається, працює нормально.


З будь-якої причини gimp відмовляється дозволити вносити будь-які зміни у файл. Мені довелося спочатку конвертувати за допомогою imagemagick convert, а потім відредагувати перетворений файл. (Див.
Прийняту

добре, рішення Inkscape є дійсним. Але я повторюю вам, що Gimp може редагувати PDF-файли безпосередньо. = D
maniat1k

Gimp, здається, працює з більшістю файлів PDF, але файл, який я використовував минулої ночі, працював неправильно. Inkscape обробив цей файл належним чином.
bstpierre

2

PDF Studio - це невідкритий ресурс і це програмне забезпечення, яке вимагає придбання.

Що стосується цього питання, то з версії 8 він має функцію ручного редагування. Користувачі можуть вибрати текстовий об’єкт і відредагувати його. Вміст видаляється з PDF та замінюється чорним прямокутником.

У версії 9, що настає у третьому кварталі 2013 року, анотації до редагування та записування також будуть доступні для зображень та форм.


4
За фактом ви повинні розкрити свою приналежність до товару, який ви рекламуєте.
bstpierre

Хоча це, швидше за все, більше рекламне оголошення, ніж відповідь, я мушу сказати, що PDFstudio справді є чудовим програмним забезпеченням. Це може бути трохи завищеною ціною, але це, безумовно, найкращий набір для редагування PDF для Linux. Не забудьте випробувати їх пробну версію .
Glutanimate

2

Якщо ви не хочете пам'ятати правильний заклик, convertви можете використовувати pdf-redact-tools , скрипт оболонки, що автоматизує процес вибуху PDF у зображення PNG та об'єднує їх назад після редагування (використовуючи обраний вами інструмент, наприклад, gimp ). Це умовно підходить для встановлення .


+1 Це продукт Міхе Лі та інших компаній First Look Media (видавець The Intercept). Його сторінка людей тут (наприклад) , а деяка довідкова інформація від часу навколо його випуску в 2015 році можна тут .
кай

2

Оскільки в багатьох рішеннях тут рекомендується редагувати / затемнювати за допомогою анотацій (які залишають оригінальний вміст у форматі pdf), я рекомендую згодом розсіяти pdf, щоб справді видалити оригінальний вміст. (Не будь цим хлопцем .)

Ось один із способів зробити це, який, в той же час, підтримує якість та розмір файлу низький (принаймні, в моєму випадку, з купою чорно-білих сторінок):

$  convert -quality 100 -density 180 -compress zip notreallyredacted.pdf trulyredacted.pdf

Примітка: convertпотрібен ImageMagick.

Примітка 2: convertне зберігає вміст форм, які ви могли заповнити. Для того, щоб він не загубився, ви можете роздрукувати документ "у файл" таким чином, як evinceспочатку (або в будь-якій додатку, який ви заповнили форму), а потім розтерзати.


Щойно додано виправлення дозволів. Цю відповідь слід поєднувати з Xournal.
колан

1

Найкращий спосіб, який я знайшов для цього, - це використовувати http://www.pdfescape.com . Ви можете коментувати, додавати текст і зображення, малювати прямокутник «відбілювання» навколо речей, які потрібно редагувати, і ви можете швидко завантажити та зберегти їх. Він також дуже добре працює з багатосторінковими документами, і це дуже добре. Наприклад, якщо ви відкриєте багатосторінковий документ у Gimp або Inkscape, ви зможете відкривати лише одну сторінку за один раз. У PDFescape процес відбувається набагато швидше. Весь процес редагування двосторінкового документа займає менше хвилини.


1
Не по-справжньому витирає дані, які ви намалювали. (Я все ще можу його шукати, і це буде "виділено" нижче).
Френк Нокк

0

Існує кілька редакторів для редагування документів PDF безпосередньо, таких як pdfeditабо перетворення їх в інші формати вектора, які можуть бути краще підтримувані, наприклад pstoedit. Однак я б не рекомендував використовувати будь-який з них як ризик зробити щось дурне, як, наприклад, просто фарбувати текст чорним кольором, залишаючи на ньому вектори, - це легко, тим самим роблячи редакцію банальною для скасування.

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

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


Я правильно розумію проблеми з редагуванням, але дякую, що ви поставилися до того, щоб вказати на всіх, хто прийде після. У моєму випадку сам PDF-файл є одноразовим - все, що я шукаю, - це копія. (PDF буде видалено, як тільки я отримаю копію.) FWIW, pdfeditне вийшло: коли я намалював чорний прямокутник над відповідним текстом, він занурив решту сторінки, залишивши мені документ, що складається з одинарний чорний прямокутник.
bstpierre

0

Додаю до списку: Krita . Не було втрати якості, тому що при імпорті PDF ви можете визначити dpi (встановити його на 300, як сказав @Sergey). Після редагування натисніть "Експорт як PDF". Нарешті, я вважаю Krita більш інтуїтивно зрозумілим, ніж Gimp, після того, як довго користувався Photoshop.


-1

Якщо ви використовуєте LibreOffice для створення PDF-файлу, відкрийте документ у LibreOffice, виділіть текст для редагування, клацніть правою кнопкою миші та виберіть символ, виберіть Фон та натисніть на чорний. Експорт у PDF.

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