GNU/Linux >> Znalost Linux >  >> Linux

4 způsoby, jak můžete upravit PDF pomocí příkazu pdftk-java

Mezi technologickými bílými knihami, rukopisy a RPG knihami se každý den zabývám spoustou PDF. Formát PDF je oblíbený, protože obsahuje zpracovaný PostScriptový kód. PostScript je nativní jazyk moderních tiskáren, takže vydavatelé často uvolňují digitální verzi knihy jako PDF, protože investovali čas a úsilí do vytvoření souboru pro tisk. Ale PDF není zamýšleno jako upravitelný formát, a i když je možné určité zpětné zpracování, má být poslední zastávkou pro digitální data před jejich odesláním do tiskárny. Přesto někdy potřebujete provést úpravy v PDF a jedním z mých oblíbených nástrojů pro tuto práci je příkaz pdftk-java.

Další zdroje pro Linux

  • Cheat pro příkazy Linuxu
  • Cheat sheet pro pokročilé příkazy systému Linux
  • Bezplatný online kurz:Technický přehled RHEL
  • Síťový cheat pro Linux
  • Cheat sheet SELinux
  • Cheat pro běžné příkazy pro Linux
  • Co jsou kontejnery systému Linux?
  • Naše nejnovější články o Linuxu

Nainstalujte pdftk-java na Linux

Jak jeho název napovídá, pdftk-java je napsán v Javě, takže funguje na všech hlavních operačních systémech, pokud máte nainstalovanou Javu.

Uživatelé Linuxu a macOS si mohou nainstalovat Javu z AdoptOpenJDK.net. Uživatelé Windows si mohou nainstalovat sestavení OpenJDK pro Windows Red Hat.

Chcete-li nainstalovat pdftk-java :

1. Stáhněte si vydání pdftk-all.jar z jeho úložiště Gitlab a uložte jej do ~/.local/bin/ nebo nějaké jiné místo ve vaší cestě.

2. Otevřete ~/.bashrc ve svém oblíbeném textovém editoru a přidejte do něj tento řádek:

alias pdftk='java -jar $HOME/.local/bin/pdftk-all.jar'

3. Načtěte svá nová nastavení Bash:

$ source ~/.bashrc

Syntaxe příkazu

Struktura platného pdftk-java příkaz se řídí vzorem, ale v tom, co je ve vzoru, je velká flexibilita. Syntaxe je trochu neobvyklá, protože nepoužívá možnosti terminálu tradičního stylu, ale s praxí není příliš těžké si ji zapamatovat.

  • pdftk :Alias ​​pro volání příkazu
  • vstupní soubor:soubor PDF, který chcete upravit
  • akce:Co chcete udělat se vstupním souborem
  • výstup:Místo, kam chcete uložit upravený soubor PDF

Je to akční část, která je nejsložitější, takže začnu jednoduchými úkoly.

Spojení dvou souborů PDF do jednoho

Není neobvyklé, že přední obálka knihy je vytvořena v samostatné aplikaci, jako je Inkscape nebo GIMP, než zbytek knihy, což se obvykle provádí v aplikaci pro rozložení, jako je Scribus, nebo v kancelářském balíku, jako je LibreOffice. Ve své aplikaci pro rozvržení můžete obojí zkombinovat. Dobrý desktopový vydavatel, jako je Scribus, usnadňuje odkazování na obrázek, takže když se změní obálka, automaticky se aktualizuje v rozložení. Je však také možné přidat obálku k PDF pomocí pdftk-java :

$ pdftk cover.pdf body.pdf \
cat \
output book.pdf

V tomto příkladu je akce cat , jako v zřetězení a stejně jako linuxový příkaz cat spojuje jeden nebo více souborů PDF do jednoho datového toku a datový tok je směrován do jakéhokoli output souboru argument určuje.

Odebrání stránek z PDF

Nemůžete přesně odstranit stránku z PDF, ale můžete vytvořit nový PDF obsahující pouze stránky, které si chcete ponechat.

$ pdftk book.pdf \
cat 1 3-end \
output shorter-book.pdf

V tomto příkladu se stránka 1 souboru mé knihy a všechny stránky od 3 do konce uloží do nového souboru. Stránka, kterou jsem odstranil, je tedy stránka 2.

Rozdělit PDF do samostatných souborů

Rozdělení souboru PDF do mnoha různých souborů také používá cat akci a je to v principu podobné jako při odstraňování stránek. PDF můžete rozdělit odesláním stránek, které chcete, do nového souboru:

$ pdftk book.pdf \
cat 1-15 \
output part-1.pdf

$ pdftk book.pdf \
cat 16-42 \
output part-2.pdf

Pokud potřebujete rozdělit PDF na jednostránkové soubory, existuje pro to speciální akce, nazvaná burst :

$ pdftk book.pdf burst

$ ls
book.pdf pg_0001.pdf pg_0002.pdf
pg_0003.pdf pg_0004.pdf pg_0005.pdf
[...]

Vyplňte formuláře

Málokdo by namítl, že formát PDF se za ta léta nenafoukl a jednou funkcí, kterou někdy v souboru PDF najdete, je vyplnitelný formulář. Vidíte to v amerických daňových dokumentech, RPG znakových listech, online školních sešitech a dalších souborech PDF, které mají být interaktivní. Zatímco většina moderních prohlížečů PDF, jako je Evince od GNOME a Okular od KDE, dokáže vyplnit formuláře PDF, můžete také vyplnit formulář PDF pomocí pdftk-java .

Nejprve musíte extrahovat data formuláře pomocí generate_fdf akce. Toto extrahuje ID prvků formuláře a umístí je do textového souboru.

$ pdftk character-sheet.pdf \
generate_fdf \
output chsheet-form.txt

Váš cílový soubor (v tomto příkladu chsheet-form.txt ) obsahuje data formuláře obsažená v PDF, ale pouze textové části. Můžete jej upravit v libovolném standardním textovém editoru, jako je Atom nebo Gedit.

Při někdy obdivuhodném a někdy trapném pohledu do pracovního postupu organizace vytvářející PDF zjistíte, že některé formuláře jsou jasně označeny, zatímco jiné mají výchozí názvy jako „Checkbox_001“ a „Textfield-021“, takže možná budete muset přejít -odkažte svůj textový soubor na svůj PDF, ale to může být užitečné, pokud píšete skript pro automatické vyplňování formulářů. Každý štítek je označen jako /T položka a na následujícím řádku je mezera (označená jako /V ) určené pro zadávání textu. Zde je úryvek z jednoho, který má kontext k jeho štítkům a některá data vyplněná:

/T (CharacterName 2)
/V (Abaddon)
>>
<<
/T (SlotsTotal 24)
/V ()
>>
<<
/T (Hair)
/V (Brown)
>>
<<
/T (AC)
/V (15)
>>
<<
/T (Background)
/V ()
>>
<<
/T (DEXmod )
/V ()

Jakmile zadáte data formuláře, můžete svůj textový vstup zkombinovat se strukturou PDF pomocí fill_form akce:

$ pdftk character-sheet.pdf \
fill_form chsheet-form.txt \
output completed.pdf

Zde je ukázka výsledku:

Snadná úprava PDF

Když pracujete s mnoha soubory PDF nebo soubory PDF pomocí skriptů shellu, nástroj jako pdftk-java je neocenitelný, protože vás osvobozuje od nutnosti dělat vše ručně. Když sestavuji PDF z výstupu Docbooku, je to Makefile, který volá pdftk-java pro libovolný počet úkolů, takže nemám šanci, že zapomenu krok nebo přepíšu příkaz, a nemusím nad tím trávit čas. Existuje mnoho dalších důvodů, proč můžete použít pdftk-java ve vašem vlastním pracovním postupu a spoustu dalších věcí pdftk-java umí, včetně akcí jako shuffle , rotate , dump_data , update_info a attach_files . Pokud se často setkáváte se soubory PDF, zadejte pdftk-java pokus.


Linux
  1. 3 užitečné věci, které můžete dělat s nástrojem IP v Linuxu

  2. 4 způsoby, jak udržet příkaz spuštěný poté, co se odhlásíte z relace SSH

  3. Jak mohu spustit jiný příkaz, ale se stejnými argumenty?

  1. Plánování úloh pomocí linuxového příkazu cron

  2. Co znamená mít * * * v příkazu traceroute? a jak se s takovou situací vyrovnáte?

  3. Jak mohu otevřít soubor s čísly řádků zobrazenými z příkazového řádku v 'vi'?

  1. 4 způsoby úpravy fotografií na příkazovém řádku Linuxu

  2. Naplánujte si úlohu pomocí příkazu Linux at

  3. Upravujte soubory PDF na příkazovém řádku systému Linux