Jak importować, eksportować i edytować zakładki pliku pdf?


21

Słyszałem, że zakładki pliku pdf są przechowywane gdzieś w pliku jako zwykły tekst. Zastanawiałem się, czy można importować i eksportować zakładki pliku pdf do iz pliku tekstowego w celu przetwarzania wsadowego?

Jeśli tak, czy jest jakiś opis w składni do edycji pliku tekstowego zawierającego zakładki pliku pdf?

Miałem nadzieję na darmowe oprogramowanie dla Ubuntu 10.10 i Windows 7.

Dziękuję i pozdrawiam!

Odpowiedzi:


22

Istnieje wiele różnych narzędzi, które mogą wyodrębnić zakładki z pliku pdf do zwykłego pliku tekstowego i odwrotnie. Niektóre z nich są następujące:

Mam też skrypt, który może konwertować formaty wielu z tych narzędzi: bmconverter.py .

Innym bardzo fajnym sposobem jest dodawanie zakładek do pliku pdf za pomocą pdflatex .


13

Możesz pdftkdo tego użyć . Więcej informacji: Jak eksportować i importować zakładki PDF .

Eksportuj zakładki PDF w wierszu polecenia w następujący sposób:

pdftk C:\Users\Sid\Desktop\doc.pdf dump_data output C:\Users\Sid\Desktop\doc_data.txt

Zaimportuj zakładki PDF z pliku danych takiego jak ten:

pdftk C:\Users\Sid\Desktop\doc.pdf update_info C:\Users\Sid\Desktop\doc_data.txt output C:\Users\Sid\Desktop\updated.pdf

pdftkFormat zakładek jest trochę uciążliwy. Zamiast tego stworzyłem własny skrypt za pomocą bash,sed , pdftki python3. Sprawdź to w tym repozytorium: https://github.com/SiddharthPant/booky

Teraz mogę utworzyć plik tekstowy (bkmrks.txt ), którego napisanie zajmuje tylko 5 minut, nawet dla 1000 stron pdf.

{
  Title1, 1
  Title2, 2
  {
    Subtitle1, 3
    Subtitle2, 4
    {
      SubSubtitle1, 5
      ...
    }
  }
}

a następnie użyj mojego skryptu

./booky.sh pdf_file.pdf bkmrks.txt

to automatycznie tworzy plik pdf ( pdf_file_new.pdf) z moimi zakładkami.

Działa to w systemach * nix, jeśli zamiast tego używasz komputera z systemem Windows. Następnie najpierw zainstaluj python3i pdftkpo prostu użyj booky.pypliku w repozytorium, aby przekonwertować bkmrks.txtna pdftkzgodny format

python3 booky.py < bkmrks.txt > output.txt

a następnie użyj polecenia eksportowania, aby wygenerować zrzut danych. Usuń poprzednie zakładki z tego pliku i wstaw treść output.txtzamiast zwykłego wklejania. A następnie zaimportuj te dane z powrotem.


4

Jeśli masz wersję dokumentu z zakładkami i chcesz je skopiować, o wiele prostszym sposobem jest użycie przeglądarki PDF-XChange Viewer (użyłem wersji 2.5.211). Otwórz plik PDF z zakładkami (źródłowy plik PDF), zaznacz wszystkie zakładki w panelu zakładek, skopiuj je za pomocą Ctrl + C, otwórz plik PDF, który nie zawiera zakładek (docelowy plik PDF), i wklej je (Ctrl + V) w panelu zakładek tego pliku PDF. Przeglądarka PDF-Xchange zachowuje właściwości zakładek tak jak ze źródłowego pliku PDF (w tym wszelkie pogrubienie / kursywa w tekście zakładki). Jeśli z jakiegoś powodu niektóre sekcje docelowego pliku PDF są niższe lub wyższe z powodu zmian wprowadzonych w dokumencie, możesz kliknąć zakładkę wymagającą korekty, przewiń do miejsca na stronie, w której chcesz otworzyć zakładkę, kliknij zakładkę ponownie i kliknij „Ustaw miejsce docelowe”. Powtórz tę ostatnią część, jeśli jest to konieczne, w przypadku każdej naruszającej zakładki. Po zakończeniu zapisz docelowy plik PDF.

To działało dla mnie świetnie, było dość intuicyjne i skończyłem w kilka minut. W moim szczególnym scenariuszu współpracownik opracował bardzo długi dokument przy użyciu programu Word dla komputerów Mac, który nie miał zakładek. Ze względu na długość dokumentu chciałem zakładek odpowiadających obrysu dokumentu. Mógłbym przekonać program Word dla systemu Windows do zapisania dokumentu jako pliku PDF z zakładkami, ale pewne różnice w formatowaniu między programami Word dla systemu Windows i Word dla komputerów Mac znacznie spadły z liczenia stron (w szczególności wokół stopek występowały różnice w białych odstępach i różnice w odstępach między cyframi a podpisami). Byłem w stanie bawić się nagłówkami i stopkami oraz rozmiarami figur, aby uzyskać poprawne paginowanie w programie Word dla Windows, a następnie zapisać je w formacie PDF z zakładkami. Niestety,


1
+1 dla PDF-Xchange. Im mniej narzędzi, tym lepiej
Ooker

1

Specyfikacja plików PDF jest dostępna jako darmowy plik PDF do pobrania od Adobe - a przynajmniej był to ostatni raz, kiedy sprawdzałem. Jednak większość plików PDF zawiera najbardziej skompresowane dane. Pewnego razu istniała wersja PDF w postaci zwykłego tekstu, a jeśli tak, to nadal będzie aktualna, ale uzyskanie pliku w takiej formie może stanowić problem.

Chociaż tego nie zrobiłem, jedną z bardzo prawdopodobnych możliwości (jeśli jesteś gotów zapłacić) jest zakup Acrobat Pro i wykorzystanie wbudowanych w tę aplikację skryptów JavaScript. Na początek ...

http://acrobatusers.com/tutorials/2008/10/auto_bookmark_creation

W tym samouczku pokazano, jak automatycznie tworzyć zakładki przy użyciu Javascript w programie Acrobat 7.0 Pro (wersja dołączona do pakietu Creative Suite CS2). Chociaż robi się to trochę starsze, ta sama technika powinna działać dobrze w przypadku nowszych wersji.

Aplikacje Adobe zawierają bibliotekę do odczytu / zapisu plików tekstowych za pomocą Javascript (coś, czego Javascript nie ma w standardzie), więc można pisać własne skrypty importu / eksportu, choć nie jest to trywialne, aby uczynić je odpornymi.


Dzięki! Czy istnieje wersja Acrobat Pro dla systemu Linux?
Tim

Przepraszam - bardzo w to wątpię. AFAIK to Mac lub Windows, a Adobe raczej nie będzie obsługiwał Linuksa, chyba że ogromna liczba kreatywnych profesjonalistów (1) zacznie korzystać z tej platformy i (2) pokaże, że jest gotowa zapłacić dużo za oprogramowanie prawnie zastrzeżone zamiast FOSS alternatywy Wydaje się mało prawdopodobne. Aby uzyskać bezpłatne rozwiązanie, możesz wypróbować bibliotekę, taką jak blog.rubypdf.com/2007/12/12/… (dla Ruby). Wiem o tym jeszcze mniej - właśnie znalazłem to w Google.
Steve314

1

Aby wyeksportować zakładki, stosuję inne podejście, które wymaga użycia Microsoft OneNote:

Otwieram czytnik PDF (korzystam z darmowej wersji Foxit) z widoczną strukturą zakładek, a następnie w OneNote proszę o zrobienie migawki i wybranie struktury zakładek Foxit.

Wracając do OneNote, wybieram opcję „Kopiuj tekst z obrazu” (w menu, które pojawia się po kliknięciu obrazu migawki prawym przyciskiem myszy) i wklejam go z boku, aby poprawić wcięcie (zwykle za pomocą punktorów).


1

HandyOutline. 1 przeciągnięcie, 1 kliknięcie, gotowe. https://sourceforge.net/projects/handyoutlinerfo/ . Wolny. Wcięcia podokładki. Nie wymaga żadnego czytnika / edytora plików PDF. Edytuj także, eksportuj wszystkie szczegóły do ​​tekstu (skopiuj do słowa, napisz makro, aby uporządkować w pełni funkcjonalny dokument tekstowy) lub XML, powtórz, importuj do PDF. Dev zasługuje na darowizny.

PDF-Xchange Editor (zastąpiony PDFViewer) losowo powielone / brakujące zakładki eksportowane do tekstu

JPDF wymagał Java, wyeksportował śmieci formatowania, nie mógł go wyczyścić, aby uzyskać tylko nazwy

PDFtk sprawił mi ból głowy, patrząc na instrukcje

:-)


Uwielbiam to, że ten eksportuje do XML, zamiast bardziej idiosynkratycznego formatu. Interfejs przeciągnij i upuść dla eksportu nie może być również prostszy. Chciałbym tylko, żeby mogło to zrobić wiele naraz.
Evan Donovan

0

Znalazłem inne dość „głupie” rozwiązanie, aby skopiować wszystkie zakładki do pliku PDF jako tekst do użycia w innym miejscu. W programie Acrobat Pro (dla systemu Mac OS) nie ma możliwości zaznaczenia wszystkich zakładek i skopiowania / wklejenia ich w edytorze tekstu. Możesz jednak wyeksportować cały plik PDF jako plik HTML z opcją „jedna strona HTML + dodaj ramkę nawigacji na podstawie zakładek”. Następnie otwórz HTML w przeglądarce, zaznacz cały tekst w ramce nawigacji i skopiuj / wklej go do edytora tekstu ...


0

Aby odczytać wszystkie zakładki z pliku PDF do pliku tekstowego, możesz użyć tego polecenia za pomocą pdftk :

pdftk input.pdf dump_data output output.txt

Następnie użyłem wyrażenia regularnego w Notepad ++, aby usunąć dodatkowe części. Następujące zastąpiłem pustym ciągiem (w kolejności), a następnie skończyłem z listą zakładek (nie zapomnij zastąpić wyrażeniem regularnym w edytorze tekstu):

BookmarkLevel.*
BookmarkPageNumber.*
BookmarkBegin.*
\n\s+\n

Jeśli chcesz usunąć liczby, zamień to wyrażenie:

BookmarkTitle: A8.\d.\d+\s
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.