Adobe Acrobat: Jak grupować, aby połączyć wiele plików pdf?

10

Mam 3 foldery:

Folder 1 
Folder 2
Folder 3

W każdym folderze mam 5 plików pdf:

    Folder 1 
       file1.pdf
       file2.pdf
    Folder 2
       file1.pdf
       file2.pdf
    Folder 3
       file1.pdf
       file2.pdf

Chcę, aby w każdym folderze znajdował się połączony plik tych dwóch plików:

    Folder 1 
       binder.pdf
    Folder 2
       binder.pdf
    Folder 3
       binder.pdf

Dowolny pomysł? Nie mów, aby zrobić to ręcznie. Ta sprawa ma na celu wyjaśnienie mojego problemu. Myślę, że mam setki folderów. :) Może mogę użyć innego narzędzia zamiast Adobe Acrobat ?!

Andrei Andre
źródło
Co dokładnie rozumiesz przez „masz połączony plik tych dwóch plików” ? By złączyć i połączyć te dwa pliki PDF do 1 pracy dla Ciebie?
Kurt Pfeifle
Adobe Acrobat czy Adobe Acrobat Reader ?
wmz
@AndreiAndre Na twoje pytanie wysłano wiele dobrych rozwiązań. Może mógłbyś wybrać ten, który pasuje do wszystkich twoich potrzeb i oznaczyć go jako zaakceptowany.
nixda

Odpowiedzi:

12

Możesz to zrobić za pomocą krótkiego pliku wsadowego i programu pdftk.exe (nie pdftk Builder, który jest wersją GUI).
Nie trzeba niczego instalować.

Przygotowanie

  • pobierz i rozpakuj pdftk za pomocą UniExtract
  • Otwórz .. \ pdftk \ bin * i skopiuj pdftk.exe i libiconv2.dll do wybranego folderu
  • utwórz nowy plik tekstowy i wklej następujący kod

    @echo wyłączone
    setlocal włączony opóźniony rozwój
    DLA %% A IN (% *) DO (ustaw polecenie = polecenie!! %% A)
    pdftk.exe% polecenie% cat wyjście "% ~ dp1binder.pdf"
    
  • Zapisz go jako [email protected] w tym samym folderze co pdftk.exe i libiconv2.dll wprowadź opis zdjęcia tutaj
  • utwórz skrót do tego pliku .cmd i umieść go w folderze sendto ( Win+ R»shell: sendto)

Stosowanie

  • Przejdź do folderu z niektórymi plikami PDF i wybierz tyle plików PDF, ile chcesz
  • Kliknij je prawym przyciskiem myszy i wybierz właśnie utworzony skrót
  • zostanie utworzony nowy plik PDF z segregatorem w tym samym folderze, w którym wszystkie wybrane pliki PDF zostaną scalone w jeden

    wprowadź opis zdjęcia tutaj

Aktualizacja: Wersja, która używa bieżącej nazwy folderu jako nazwy pliku dla wygenerowanego pliku pdf

@echo off
setlocal enabledelayedexpansion
:: Concat all paths fromselected files and save it as command
FOR %%A IN (%*) DO (set command=!command! %%A)

:: Take path from first selected file and save it as path
set path=%~dp1
echo %path%

:: Check if a trailing slash is present. If yes, remove it
IF %path:~-1%==\ SET path=%path:~0,-1%

:: Get last folder from path
FOR %%F in ("%path%") do (set lastFolder=%%~nxF)

:: Call pdftk, pass on command. use lastFolder as filename
pdftk.exe %command% cat output "%path%\%lastFolder%.pdf"
nixda
źródło
BARDZO miła odpowiedź. Próbuję go zmodyfikować, więc zapisuje się go jako FOLDERNAME zamiast binder.pdf. Jak mogłem to zrobić?
Chen Stats Yu
@ChenStatsYu Zobacz aktualizację
nixda
ŚWIETNY!! Przepraszam, że pytam ponownie, nie jestem pewien, czy powinienem zacząć nowy post. Jeszcze jedno ostatnie żądanie, ponieważ powtarzam to dla prawie 40/50 folderów, czy możemy je zmodyfikować, aby wysłać „folder” do cmd i użyć nazwy folderu zamiast wybierać pliki pdf z folderu?
Chen Stats Yu
Mam również nadzieję, że będzie on obsługiwał nieangielskie nazwy folderów.
Chen Stats Yu
5

Jeśli korzystasz z systemu Linux (lub Mac lub dowolnego środowiska, w którym jest on zainstalowany), możesz użyć narzędzia wiersza polecenia o nazwie ghostscript, aby je połączyć.

gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=combinedpdf.pdf -dBATCH file1.pdf file2.pdf file3.pdf

Możesz także użyć następujących elementów, aby połączyć wszystkie pliki w bieżącym folderze

gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=combinedpdf.pdf -dBATCH *.pdf 

Możesz pobrać ghostscript tutaj . Jest też wersja Windows, ale jej nie przetestowałem.

Cacovsky
źródło
1
Działa również w systemie Windows. Musiałem napisać pełną ścieżkę do pliku wykonywalnego ghostscript (na moim komputerze jest to „c: \ Program File \ gs \ gs9.07 \ bin \ gswin32c.exe”) i rozszerzenie „* .pdf” nie działa, ale sam ghostscript działa idealnie.
Pitarou
3

Z powodzeniem wykorzystałem powyższe rozwiązanie. Jednak w moim systemie (Windows 7 64-bit) kod w postaci, w jakiej jest, dodaje pliki PDF w (najwyraźniej) losowej kolejności, a nie alfabetycznie według nazw plików.

Aby dodać pliki w kolejności alfabetycznej, musisz dodać parametr obiektu sortowania do polecenia DIR (alias Get-ChildItem) (obiekt sortowania nie przyjmuje tutaj parametru, ponieważ nazwa pliku / alfabetycznie jest domyślna):

dir $inputfolder -r -include *.pdf -exclude $outputfile | sort-object | group DirectoryName % {& $PDFtk $.group CAT OUTPUT "$($.Name)\$outputfile" verbose}

Ci, którzy mają nazwy plików w postaci 1.pdf 2.pdf ... 10.pdf itp. Zamiast 01.pdf 02.pdf .. 10.pdf mogą również chcieć wypróbować ich odmianę:

pdftk *?.pdf *??.pdf *???.pdf *????.pdf cat output out.pdf
Giles Hudson
źródło
„powyżej rozwiązania” - prawdopodobnie masz na myśli rozwiązanie Nixdy. Gdyby twoja odpowiedź była głosowana wyżej niż nixda, byłaby poniżej
kluski
1

Istnieje nowe narzędzie Advanced PDF Manipulation o nazwie Sej-da, które jest nadal w wersji Beta, i ma niezliczoną liczbę funkcji PDF (w tym możliwość łączenia wielu plików pdf). To nic nie kosztuje i może pomóc w twoich potrzebach.

http://sejda.com/

Krótki przegląd jego funkcji został przeprowadzony zaledwie kilka tygodni temu przez wersję 3:

http://revision3.com/tzdaily/sejda-online-pdf

Szymon
źródło
OP jest w stanie z łatwością łączyć pliki pdf, chce scalić partię zautomatyzowanym procesem. Twoja odpowiedź nie zawiera szczegółowych informacji na temat korzystania z sejdy w ten sposób, ani nie wynika z ich strony internetowej
kluski
1

Być może lepiej jest użyć scenariusza wsadowego. Utwórz i zbierz wszystkie swoje pliki pdf jako xxxx.abcdef.pdf.

Pierwsza część to tak zwany znacznik partii; druga część to identyfikator pliku (nazwa pliku). Tagi dla każdego grzbietu są podobne pod względem długości i wartości; nazwa plików występuje po punkcie.

Na przykład twoja pierwsza partia składa się z 1111.3425.pdf, 1111.76501.pdf itd. Druga partia to 22222.1432.pdf, 22222.4398 i tak dalej. I tak dalej, i tak dalej dla innych partii.

Następnie możesz użyć oprogramowania do automatycznego scalania, które może obsługiwać tysiące plików, tworząc osobne scalanie dla każdej partii. Znalazłem to darmowe oprogramowanie Dysprosium , które nie wymaga wiersza poleceń ani skryptu wsadowego. Możesz pobrać go jako przenośny plik JAR. Ma różne zautomatyzowane scenariusze; jeden opisany w tej odpowiedzi jako oznaczanie, a drugi jako wymagany folder oddzielony.

W zależności od sprzętu można grupowo scalić tysiące plików we wcześniej ustalone partie.

Każde ciało
źródło
0

Wypróbuj PDFMerge . Ale nie używaj początkowego formularza, w którym musisz wybrać każdy plik jeden po drugim. Zamiast tego poczekaj, aż witryna sprawdzi instalację Java, a następnie kliknij link „Wypróbuj aplet Java PDFMerge”. Po załadowaniu i uruchomieniu apletu kliknij przycisk Wybierz pliki , a będziesz mógł wybrać wiele plików (w celu scalenia w jeden plik).

Scalanie będzie superszybkie i będzie w stanie obsłużyć dużą liczbę plików, ponieważ nic nie zostanie przesłane na stronę internetową. Wszystko odbywa się na samym komputerze przy użyciu instalacji Java.

PS: Przepraszamy, jeśli szukasz oprogramowania offline, które można dostosować do tworzenia pojedynczych plików PDF w wielu folderach.

ADTC
źródło
0

Jeśli korzystasz z systemu Mac, możesz utworzyć skrypt Automatora, aby wykonać to zadanie. Zrób to jako akcję folderu i po prostu upuść do niego pliki pdf i zobacz, jak to się stanie! Jeśli chcesz, mogę pokazać Ci, jak działa Mac?

Henrik Söderlund
źródło
0

W systemie Linux

Napisałem tę dość długą linię poleceń

tree -fai . | grep -P ".pdf$" | xargs -L1 -I {} dirname {} | uniq | xargs -L1 -I {} bash -c 'cd "$0" && pdftk *.pdf cat output binder.pdf' {}

Ale to działa, przetestowałem to, działa również z ilością poziomów folderów, które masz. Upewnij się tylko, że uruchamiasz go jako katalog główny struktury folderów.

Potrzebujesz pdftki treedo tego, a na Ubuntu Linux możesz zainstalować go za pomocą apt:

sudo apt install pdftk tree
Eduard Florinescu
źródło