Czy istnieje lepszy sposób na zredagowanie pliku PDF?

24

Niedawno musiałem wydrukować kilka plików PDF, aby wysłać je komuś, ale chciałem zredagować (zaciemnić) kilka małych kawałków tekstu.

Szybkie wyszukiwanie w Google nie wykazało żadnych narzędzi do tego konkretnego celu, więc wróciłem do imagemagick & gimp:

  • convert document.pdf document.png
  • gimp document-0.png
  • (użyj pędzla, aby zaciemnić tekst)
  • wydrukuj zredagowaną stronę z gimp
  • wydrukuj pozostałe strony z xpdf

Problemem tej strategii jest to, że proces konwersji (z PDF do PNG lub innego formatu) traci jakość. Próbowałem edytować plik PDF w gimp, ale nie zadziałał od razu.

Czy jest jakieś specjalne narzędzie, które pozwala na redakcję w ten sposób? (Nie musi to być nawet „prawdziwa” redakcja - nie wysyłam wersji papierowej, więc „fałszywa” redakcja zadziała, ponieważ kopii nie można zhakować, aby odsłonić leżący pod nią tekst).

A może jest jakiś sposób na edytowanie plików PDF w gimp?

bstpierre
źródło
1
PDF jest skalowalny, PNG to grafika rastrowa, co prawdopodobnie powoduje utratę jakości w procesie konwersji. Zamiast tego konwertuj na format skalowalny, taki jak SVG.
Anonimowy
@Anonimowy: fajny pomysł, ale nie do użytku. Wynikowy plik SVG jest ogromny; Musiałem ZABIĆ przeglądarkę po 30 minutach i zużycie pamięci przez GiB.
bstpierre

Odpowiedzi:

15

(pierwotnie poleciłem Okulara, ale nie działało tak, jak się spodziewałem)

1. Edytuj dokument w edytorze wektorów

Udało mi się otworzyć plik PDF w Inkscape , narysować prostokąt na kawałku tekstu i wydrukować go. Inkscape to edytor wektorów, więc nie wymaga rasteryzacji. Niektóre czcionki wyglądały jednak nieprawidłowo - prawdopodobnie dlatego, że dokument został utworzony na komputerze z czcionkami, których nie ma w moim.

Pamiętaj, że każda metoda, która nie wymaga rasteryzacji, jest akceptowalna tylko wtedy, gdy zamierzasz wydrukować zredagowany dokument na papierze i nie rozpowszechniać go elektronicznie, ponieważ tekst nadal można odzyskać z powodu braku zasilania.

2. Zwiększ rozdzielczość rasteryzacji podczas otwierania w edytorze map bitowych

Jeśli chodzi o „utratę jakości” podczas otwierania strony w Gimp : możesz bezpośrednio otworzyć plik PDF w Gimp. Proces ten zostanie zrasteryzowany. Wielkość utraty jakości w procesie zależy od rozdzielczości, którą wybierasz podczas importu - 300 dpi powinno dać bardzo przyzwoitą jakość (domyślnie jest to 100).

Możesz również uzyskać dobre wyniki za pomocą convertpolecenia ImageMagick, jeśli powiesz mu, aby zwiększyć rozdzielczość:

convert -density 300x300 ...
Siergiej
źródło
1
+1 i zaakceptowano! Dzięki za zasugerowanie inkscape, wykonał dobrą robotę (niezbyt idealną - stracił kilka (nieistotnych dla mnie) obiektów graficznych) - ale bardzo rozsądną). I wskazówka convertbyła również dobra: inkantacja, której użyłem, była convert -density 300x300i nie ma utraty jakości.
bstpierre
+1 za wzmiankę, że GIMP radzi sobie całkiem dobrze z
plikami
8
Ostrzeżenie dla ogólnej populacji: tutaj metody redakcji, które wymagają zachowania tekstu sugerowanego tutaj (np. Wszystkie, które unikają rasteryzacji) nie są bezpieczne. Tekst można nadal wybierać w ramach opcji zaciemnienia lub odczytać ze źródła pliku. Zobacz na przykład freerepublic.com/focus/f-news/2706743/posts and hackaday.com/2008/08/01/exposing-poorly-redacted-pdfs
naught101
Chociaż pierwotne pytanie dotyczyło tylko wysyłania papierowych kopii, dla których akceptowalne są metody nierasterizujące, głosowanie w dół, ponieważ ta odpowiedź nie wystarczająco wyraźnie ostrzega o zagrożeniu bezpieczeństwa przy dystrybucji wyników drogą elektroniczną.
Jesse Glick
4
@JesseGlick: zamiast „ukarać” mnie za nieudzielenie odpowiedzi na przypadek użycia, o którym nawet nie wspomniano w pierwotnym pytaniu, mógłbyś właśnie zredagować odpowiedź. Byłoby to bardziej korzystne dla przyszłych gości.
Siergiej
10

Zasadniczo to, co próbujesz zrobić, to wyróżnić / opatrzyć adnotacjami plik PDF, ale z pewną elastycznością w odniesieniu do krycia i koloru markera (wspomniałeś, że nie musisz cenzurować / usuwać czegoś, a jedynie redagować). Przyjrzałeś się tutaj odpowiedziom: Jak wyróżnić lub opatrzyć adnotacjami pliki PDF?

Jedna z najwyżej ocenianych odpowiedzi zaleca Xournal , o której tu nie wspomniano i która byłaby moją bronią z wyboru. Jest to narzędzie, które umożliwia tworzenie odręcznych notatek, ale ma dodatkowe funkcje umożliwiające dodawanie adnotacji do pliku PDF. Domyślnie zapisuje Twoje adnotacje jako osobny plik, ale umożliwia także eksportowanie pliku PDF z adnotacjami jako nowego pliku PDF. Powinno to zachować układ, czcionki itp.

W Xournal wybierzesz „Adnotuj PDF”, a następnie użyj jednolitego czarnego markera, aby zamaskować części, które chcesz zredagować, i „Eksportuj do PDF”.

W Internecie jest kilka artykułów sugerujących, że Xournal rasteryzuje tekst w eksportowanym pliku PDF (dzięki za wskazanie tego, MHC). Nie wydaje się to prawdą: w przypadku prostych adnotacji tekst można wybierać i wyszukiwać, a rozmiar pliku nie zwiększa się znacznie (w poniższym przykładzie zwiększył się z 205 kb do 220 kb).

Aby zainstalować, uruchom w terminalu: sudo apt-get install xournallub po prostu wybierz go z Centrum oprogramowania

Interfejs Xournal Wynikowy eksportowany plik PDF

Tomas
źródło
Xournal jest dobry, ale musisz wiedzieć, że może eksportować tylko pliki PDF rastrowe, co oznacza, że ​​wszystkie informacje tekstowe i wektorowe są tracone w procesie. Jeśli możesz sobie z tym poradzić, to Xournal jest aplikacją twojego wyboru.
Glutanimate,
1
Dzięki za opinie, @MHC. Xournal nie rasteryzuje, więcej informacji można znaleźć w poprawionej odpowiedzi.
Tomas
3
Właśnie tego spróbowałem i masz całkowitą rację. Przepraszam za zamieszanie. Minęło trochę czasu, odkąd użyłem Xournal i jakoś miałem wrażenie, że wyeksportowane dokumenty nie były prawdziwymi plikami PDF. Dzięki za proste ustawienie!
Glutanimate
1
Działa to dobrze, ale nie mogłem znaleźć czystego sposobu na zredagowanie informacji. Musiałem użyć narzędzia do rysowania, aby napisać, co wygląda na bardzo niechlujne i brakuje mu profesjonalizmu. W przeciwnym razie zacznij od eksportu rasteryzującego zawartość, aby nie można jej było wybrać i odkryć.
flickerfly
Aby uzyskać prawdziwą redakcję, która zastępuje dane tekstowe obrazami, połącz tę odpowiedź z @ balu używającymi convertpolecenia ImageMajick .
colan
6

Możesz użyć Okulara.

sudo apt-get install okular
  1. Otwórz pdf za pomocą Okulara.
  2. Prasa F6.
  3. Prasa 8.
  4. Zaznacz tekst, który chcesz zredagować.
  5. Kliknij tekst prawym przyciskiem myszy, wybierz właściwości, wybierz „Typ” jako „Podświetl”, naciśnij Ok.
  6. Wydrukuj plik do pliku pdf.
Eharvey
źródło
4
Być może wspomnij o tym, jak wyróżnić czerń.
equaeghe
1
Okular może redagować dowolnym kolorem (czarnym) tych funkcji: podświetlanie tekstu, linia wolnej ręki i łącza wielokątne z wewnętrznym wypełnieniem. Możesz zapisać to ustawienie jako własne narzędzie do adnotacji. Łatwe korzystanie z niego w kółko. Następnie, kiedy drukujesz plik do pdf, powinieneś „wymusić rasteryzację”, aby upewnić się, że redakcja nie jest odwracalna. Okular Wersja 1.1.3
shadowbq
Domyślnie jest czarny, współpracuje z najnowszą wersją Okulara. Dziękuję Ci!
TheFrack
5

Codziennie redaguję wiele plików PDF, więc spędzam dużo czasu zastanawiając się, jak to zrobić najlepiej.

Dla mnie najlepszym sposobem jest podzielenie pliku PDF na 1-stronicowy plik PDF, obok edycji za pomocą GIMP, obok połączenia. Nie używam imagemagick na wszystkich plikach (nie używam w ogóle), więc nie tracę warstwy tekstowej na wszystkich stronach, ale tylko po redakcji. Nie ładuj całego pliku PDF naraz, ponieważ powoduje to wyczerpanie pamięci.

Podziel plik PDF na pliki 1-stronicowe

Łatwo dziel pliki PDF na 1-stronicowy PDF, dzięki tej funkcji bash (umieść go w ~ / .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;
};

Możesz teraz wejść, split_pdf file.pdfaby uzyskać dużo plików PDF.

Redaguj pliki

Ale teraz musisz edytować wszystkie te pliki. Możesz to zrobić za pomocą gimp original-filename-*.pdf. Proponuję skonfigurować skrót w GIMP (okno główne-> Edycja-> Skrót), aby zastąpić plik (używam CTRL + R), filtr rozmycia (np. CTRL + D), zamknąć plik (np. CTRL + W) i wyjść z GIMP ( np. CTRL + Q). Pamiętaj, aby nie ładować GIMP-a do wielu plików jednocześnie, ale GIMP-a jak ładujesz po otwarciu, abyś mógł bezpiecznie korzystać gimp original-filename-*.pdfz tysiąca plików.

Łącz pliki

Możesz łatwo łączyć pliki za pomocą: pdftk originam-filename-*.pdf cat output "new-file-anon.pdf";

Połącz to wszystko razem

Te operacje są bardzo powtarzalne i nudne, więc łączę to wszystko w 1 skrypcie:

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;
};

Najnowsza wersja tego skryptu jest zawsze dostępna pod adresem : http://dostep.jawne.info.pl/it/bashrc

Pamiętaj, aby zamknąć GIMP (CTRL + Q) po całej redakcji, aby kontynuować skrypt.

Poza tym jako ja otwieram zredagowane pliki (lubię czytać, aby sprawdzić, czy wszystkie) oraz przesyłać do Scribd za pomocą mojego drugiego skryptu - scribd_up , dzięki czemu mogę bardzo skutecznie redagować wiele plików PDF.

Adam Dobrawy
źródło
2

Otwórz plik PDF za pomocą bezpłatnego narzędzia PDF-Xchange PDF Viewer . Przyciemnij tekst, który ma zostać zredagowany za pomocą czarnych prostokątów. Wydrukować. To zapewni ci łatwą, „fałszywą” redakcję wysokiej jakości.

MetaEd
źródło
To wydaje się być narzędziem win32. Daj mi znać, jeśli przegapiłem łącze do portu linux ...
bstpierre
3
Darmowa przenośna przeglądarka plików PDF-Xchange będzie działać z winem.
Sabacon
Dzięki, to działało idealnie dla mnie z winem. Rozwiązania inkscape i gimp są naprawdę przydatne tylko w przypadku redakcji pojedynczych stron.
Gearoid Murphy,
2

Użyj LibreOffice Draw do szybkiej edycji, której szukasz. Po zakończeniu możesz zapisać go w formacie LibreOffice Draw lub ponownie wyeksportować do formatu PDF ( File> Export as PDF)

wprowadź opis zdjęcia tutaj

Aby móc importować pliki PDF do programu LibreOffice Draw, musisz najpierw zainstalować pakiet libreoffice-pdfimport.

Zainstaluj go za pośrednictwem Centrum oprogramowania Ubuntu ( libreoffice-pdfimport Zainstaluj libreoffice-pdfimport ) lub za pomocą terminala sudo apt-get install libreoffice-pdfimport.

Bruno Pereira
źródło
2

Możesz także wypróbować to narzędzie: https://launchpad.net/updf

Oto on (ale w każdym razie tekst można wybrać):

wprowadź opis zdjęcia tutaj

franzlorenzon
źródło
1
UPDF jest świetny, ponieważ zachowuje oryginalny plik PDF oraz jego tekst i zawartość SVG. Wygląda jednak na pewne problemy z poziomem kompresji. Edytowane pliki PDF mają około 3-4 razy większy rozmiar niż oryginał. Dziękujemy za opublikowanie tego. Nie wiedziałem o UPDF.
Glutanimate,
Tak, wiem, że ma pewne problemy, jest trochę szorstki. Mam nadzieję, że nowsze wersje
poprawią
Jak wspomniano, uPDF ma wiele błędów (i nawet nie cofania / ponawiania), ale w moim przypadku wszystko poszło dobrze, więc dziękuję!
balu
2

Pamiętam, że pewnego razu ja i mój kolega musieliśmy znaleźć sposób na edycję kilku plików pdf. Skończyło się na Gimpie. Skomentuję ci szczegóły ... otwieramy pdf bezpośrednio z gimp (w terminalu)

gimp the_file.pdf

Po zakończeniu edycji nie zapisaliśmy zmian, zamiast tego drukujemy do pliku pdf ... Wydawało się, że działa dobrze.

maniat1k
źródło
Z jakiegokolwiek powodu gimp nie pozwala mi na edycję pliku. Musiałem convertnajpierw przekonwertować za pomocą imagemagick , a następnie edytować przekonwertowany plik. (Zobacz zaakceptowaną odpowiedź.)
bstpierre
ok, rozwiązanie inkscape jest prawidłowe. Ale powtarzam ci Gimp może bezpośrednio edytować pliki pdf. = D
maniat1k 28.10.11
Gimp wydaje się działać z większością plików PDF, ale plik, którego użyłem ostatniej nocy, nie działał poprawnie. Inkscape poprawnie obsługiwał ten plik.
bstpierre
2

PDF Studio to oprogramowanie typu non-opensource, które wymaga zakupu.

Pod względem tego pytania, począwszy od wersji 8, ma funkcję ręcznej redakcji. Użytkownicy mogą wybrać obiekt tekstowy i zredagować go. Treść jest usuwana z pliku PDF i zastępowana czarnym prostokątem.

W wersji 9, która pojawi się w trzecim kwartale 2013 roku, adnotacje redakcyjne i wypalanie będą również dostępne dla obrazów i kształtów.

Lilou
źródło
4
Zgodnie z często zadawanymi pytaniami powinieneś ujawnić swoje powiązanie z promowanym produktem.
bstpierre
Mimo że jest to prawdopodobnie bardziej reklama promocyjna niż odpowiedź, muszę powiedzieć, że PDFstudio to naprawdę świetne oprogramowanie. Może to być nieco zawyżone, ale z pewnością jest to najlepszy pakiet do edycji plików PDF dla systemu Linux. Pamiętaj, aby przynajmniej wypróbować ich wersję próbną .
Glutanimate,
2

Ponieważ wiele rozwiązań tutaj zaleca redagowanie / zaciemnianie za pomocą adnotacji (które pozostawiają oryginalną treść w pliku pdf), zalecam później rasteryzację pliku pdf, aby naprawdę usunąć oryginalną zawartość. (Nie bądź tym facetem .)

Oto jeden ze sposobów na zrobienie tego, co jednocześnie utrzymuje wysoką jakość i niski rozmiar pliku (przynajmniej w moim przypadku kilku czarno-białych stron):

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

Uwaga: convertwymaga ImageMagick.

Uwaga 2: convertnie zachowuje zawartości formularzy, które mogłeś wypełnić. Aby się nie zgubić, możesz wydrukować dokument „do pliku” w czymś takim jak evincenajpierw (lub w dowolnej aplikacji, którą wypełniłeś formularz), a następnie zrasteryzować.

balu
źródło
Właśnie dodałem poprawkę uprawnień. Ta odpowiedź powinna być połączona z odpowiedzią Xournal.
colan
1

Najlepszym sposobem, jaki udało mi się to zrobić, jest skorzystanie z witryny http://www.pdfescape.com . Możesz dodawać adnotacje, dodawać tekst i obrazy, rysować prostokąt „biały” wokół elementów, które chcesz zredagować, a także możesz szybko pobrać i zapisać. Działa również bardzo dobrze z dokumentami wielostronicowymi, co jest czymś, z czym wiele innych rozwiązań nie działa dobrze. Na przykład, jeśli otworzysz dokument wielostronicowy w Gimp lub Inkscape, będziesz mógł otworzyć tylko jedną stronę na raz. W PDFescape proces jest znacznie szybszy. Cały proces redagowania 2-stronicowego dokumentu zajmuje mniej niż minutę.

użytkownik184478
źródło
1
Naprawdę nie usuwa danych, które zamalowałeś. (Nadal mogę go wyszukać, a „podświetli” się poniżej).
Frank Nocke,
1

Jeśli nie chcesz pamiętać poprawnej inkantacji convert, możesz użyć pdf-redact-tools , skryptu powłoki automatyzującego proces rozbijania pliku PDF na obrazy PNG i scalania ich z powrotem po redakcji (za pomocą wybranego narzędzia, np. Gimp ). Jest konwencjonalnie apt-get do zainstalowania .

kynan
źródło
0

Istnieje wiele edytorów do bezpośredniej edycji dokumentów PDF, takich jak pdfeditlub konwertuj na inne formaty wektorowe, które mogą być lepiej obsługiwane, takie jak pstoedit. Jednak nie poleciłbym użycia żadnego z nich, ponieważ ryzyko zrobienia czegoś głupiego, jak na przykład pomalowanie tekstu na czarno przy pozostawieniu wektorów na miejscu, jest łatwe, dzięki czemu redakcja jest trywialna do cofnięcia.

Przejście wektora na trasę bitmapową jest najbezpieczniejszym sposobem, najlepiej 1-bitową trasą bitmapową, aby uniknąć potencjalnych problemów z kanałami alfa lub różnic kolorów, które mogłyby pozostawić tekst do odczytu.

Jeśli to możliwe, należy zawsze zredagować oryginalny dokument i po prostu całkowicie usunąć informacje, a nie farbę w pliku PDF, ponieważ nawet kernowanie i odstępy tekstu wokół zredagowanego tekstu mogą go rozdać.

Grumbel
źródło
Rozumiem problemy z redagowaniem poprawnie, ale dziękuję za starania, aby wskazać je wszystkim, którzy przyjdą później. W moim przypadku sam plik PDF jest jednorazowy - wszystko, czego szukam, to wydruk. (Plik PDF zostanie usunięty, jak tylko będę miał wydruk). FWIW, pdfeditnie działało: kiedy narysowałem czarny prostokąt nad danym tekstem, niuansowałem resztę strony, pozostawiając mi dokument składający się z pojedynczy czarny prostokąt.
bstpierre
0

Dodaję do listy: Krita . Nie miał utraty jakości, ponieważ podczas importowania pliku PDF możesz zdefiniować dpi (ustaw 300 na, jak powiedział @Sergey). Po edycji naciśnij „Eksportuj jako PDF”. Wreszcie, uważam Kritę za bardziej intuicyjną niż Gimp, po długim czasie korzystania z Photoshopa.

jmjr
źródło
-1

Jeśli używasz LibreOffice do utworzenia pliku PDF, otwórz dokument w LibreOffice, zaznacz tekst do zredagowania, kliknij prawym przyciskiem myszy i wybierz znak, wybierz Tło i kliknij czarny. Eksportuj do pliku PDF.

Dave
źródło