GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Tool zum Aufteilen eines als einzelnes Pdf gespeicherten Buchs in ein Pdf pro Kapitel?

Ich habe ein paar Bücher als PDF-Dateien und möchte sie für eine einfachere Nutzung auf einem Mobiltelefon nach Kapiteln aufteilen. Gibt es ein Tool (oder eine Reihe von Tools), mit dem ich das Buch einfach nach Kapiteln in verschiedene PDF-Dateien aufteilen kann?

Akzeptierte Antwort:

Dies wäre automatisch schwer zu bewerkstelligen, da es keinen Standard gibt Kapitelbezeichnung in einer PDF-Datei. Wenn Sie jedoch etwas manuelle Arbeit nicht stören, schreiben Sie die Seiten für jedes Kapitel auf und verwenden Sie pdftk um die Seiten auszuwählen und in einer neuen PDF-Datei zu speichern. Wenn zum Beispiel Kapitel 2 auf den Seiten 23-45 liegt, tun Sie es

pdftk A=input.pdf cat A23-45 output chapter_2.pdf

Sie müssen zuerst pdftk installieren:

sudo apt-get install pdftk

Sie können Ghostscript (das vorinstalliert ist) auch direkt verwenden:

gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dSAFER -dFirstPage=23 -dLastPage=45 -sOutputFile=chapter_2.pdf input.pdf

Dies ist ziemlich einfach, um ein Skript zu konvertieren, das Dinge halbautomatisch ausführt. Erstellen Sie zuerst eine Eingabedatei; Geben Sie in jede Zeile den Titel der gewünschten Ausgabe-PDF-Datei, die Startseite, die Endseite ein – so:

chapter1 1 23
chapter2 24 56

Speichern Sie diese mit einem Texteditor in der Datei pdfchaps.in .

Erstellen Sie nun ein Skript – speichern Sie Folgendes in einer Datei namens pdfchaps.sh :

#!/bin/bash

function pdfextr() { 
  echo "Chapter $2"
  pdftk A=$1 cat A$3-$4 output $2.pdf 
}

chapters=$1
pdffile=$2

echo "Splitting pdf file $pdffile by chapters from $chapters"
cat $chapters | while read line ; do  pdfextr $pdffile $line ; done

Machen Sie das Skript ausführbar:

chmod a+x pdfchaps.sh

Und führen Sie es aus:

pdfchaps chaps.in mybook.pdf

Ubuntu
  1. So teilen Sie eine einzelne Datei basierend auf Zeilen in mehrere Dateien auf

  2. Datei nach Anzahl der Zeilen aufteilen, einschließlich Header in jeder Zeile?

  3. Datei in Array einlesen?

  4. Mehrere PDF-Dateien in ein PDF zusammenführen / konvertieren

  5. Wie liste ich einen Dateinamen pro Ausgabezeile in Linux auf?

So komprimieren Sie eine PDF-Datei in Ubuntu

So verbinden Sie mehrere Zeilen in einer Datei in Linux zu einer

So führen Sie unter Linux mehrere PDF-Dateien zu einem PDF zusammen

Wie bearbeitet man ein Bild in einer bestehenden PDF-Datei?

Wie teilt man eine MP3-Datei?

Wie teile ich ein einzelnes cPanel-Konto in mehrere auf?