WinFuture-Forum.de: Mehrere PDF gleichzeitig drucken - letzte Seite weglassen - WinFuture-Forum.de

Zum Inhalt wechseln

Windows 10: Alle News, der Download sowie zahlreiche Screenshots und Videos zum neuen Betriebssystem von Microsoft. Jetzt im WinFuture Windows 10 - Special informieren!
  • 2 Seiten +
  • 1
  • 2

Mehrere PDF gleichzeitig drucken - letzte Seite weglassen


#1 Mitglied ist offline   Heart 

  • Gruppe: Mitglieder
  • Beiträge: 16
  • Beigetreten: 31. Oktober 11
  • Reputation: 0

geschrieben 15. November 2016 - 08:03

Hallo,

in Windows kann ich (bei installiertem Adobe Acrobat Reader)
mehrere PDF-Dateien markieren
>> Rechtsklick in markierte Dateien
>> Drucken

in einem Rutsch viele PDF-Dateien drucken.

Leider enthält die jeweils letzte Seite dieser PDF-Dateien immer Werbung, die ich so zig-fach nun immer "umsonst" drucke und anschl. im Papierkorb landet.

Gibt es eine Möglichkeit (Skript o.ä.) das mir mehrere PDF-Dateien gleichzeitig drucken kann und hier eben immer die jeweils letzte Seite weglässt (so dass diese nicht mit gedruckt wird)?

Danke
0

Anzeige



#2 Mitglied ist offline   Holger_N 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.111
  • Beigetreten: 11. September 10
  • Reputation: 458
  • Geschlecht:Männlich

geschrieben 15. November 2016 - 15:21

Ich hatte noch nie den Fall, dass eigenmächtig Werbung ausgedruckt wurde, aber wenn das so ist und man beim ersten Druck nicht angeben kann, wieviele oder welche Seiten auszudrucken sind, dann würde ich versuchen, alles auszudrucken, aber nicht über den Drucker, sondern in eine PDF und dann müßte da ja die letzte Seite die Werbeseite sein und dann druckt man bei einem 138-seitigen Dokument eben »Seiten 1-137«
Bauernregel: Regnets mächtig im April, passiert irgendwas, was sich auf April reimt.
0

#3 Mitglied ist offline   Heart 

  • Gruppe: Mitglieder
  • Beiträge: 16
  • Beigetreten: 31. Oktober 11
  • Reputation: 0

geschrieben 15. November 2016 - 17:24

Das ist nicht zielführend ;)

Angenommen 100 PDF Dateien im Ordner (jede PDF hat angenommen nur 2 Seiten), diese markierst Du alle, Rechtsklick, Drucken
=> Das würde nun 200 Seiten drucken (100 davon sind wie gesagt Werbemitteilungen, da in jeder PDF die letzte Seite eben Werbung ist)

Nach Deiner Methode wären es dann nur noch 99 Seiten Werbung anstatt 100 ;)
0

#4 Mitglied ist offline   Gispelmob 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.591
  • Beigetreten: 14. August 15
  • Reputation: 392

geschrieben 15. November 2016 - 20:06

Ist es nicht zu verhindern dass da überhaupt Werbung drin ist?
AMD Ryzen 9 5950X, Asus ROG Strix X570-F Gaming, 32GB Corsair DDR4-3200, Asus Geforce GTX 3060 12GB, Creative Sound Blaster AE-7, 240GB SSD, 500GB SSD, 3x 1TB SSD, Win11 Home, 4x Acer G246HL Bbid, Logitech MX518 Gaming Mouse, Logitech G440 Mousepad, Logitech K120 Keyboard, Razer Tiamat 7.1 V2 Headset, Creative Inspire 5.1 5300 Soundsystem
0

#5 Mitglied ist offline   timmy 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.961
  • Beigetreten: 24. Juni 05
  • Reputation: 165
  • Geschlecht:Männlich

geschrieben 15. November 2016 - 21:49

Ich wüsste da keine Möglichkeit für eine schnelle Lösung.
Entweder den Druck einzeln ansteuern und nur Seite 1-x drucken lassen, oder alle PDF-Dateien bearbeiten und die letzte Seite löschen.
0

#6 Mitglied ist offline   Holger_N 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.111
  • Beigetreten: 11. September 10
  • Reputation: 458
  • Geschlecht:Männlich

geschrieben 15. November 2016 - 22:38

Achso, in den PDFs ist die Werbung schon drin. Ich hatte das wohl falsch gelesen, dass du 100 PDF-Dateien (ohne Werbung) anklickst, an den Drucker schickst und der druckt dann die 100 Dateien aus und das kostenlose Programm, dass diese »Druckzusammenführung« macht, druckt am Ende noch eine Seite mit Werbung in eigener Sache hinterher.

Hilft jetzt natürlich auch nicht weiter, aber ich würde die Werbung schon am Anfang rausschmeißen, wenn ich die Dateien speichere.
Bauernregel: Regnets mächtig im April, passiert irgendwas, was sich auf April reimt.
0

#7 Mitglied ist offline   Heart 

  • Gruppe: Mitglieder
  • Beiträge: 16
  • Beigetreten: 31. Oktober 11
  • Reputation: 0

geschrieben 16. November 2016 - 09:22

Ich bin jetzt schon ein klein wenig weiter. Es wird wohl auf ein batch Skript hinauslaufen, dass mir erstmal
- alle PDF Dateien im Ordner kopiert (*_edited.pdf)
- bei den (*_edited.pdf) PDF Dateien die letzte Seite löscht
- anschl. werden alle *edited.pdf Dateien im Hintergrund an den Drucker geschickt
- danach werden alle *edited.pdf Dateien wieder gelöscht
- am Ende werden alle Ursprungs-PDF-Dateien in einen neu angelegten Ordner "YYYY-MM-TT_Gedruckt" verschoben

Voraussetzungen

- Coherent PDF Command Line Tools (Windows Binary "cpdf.exe" in den PDF-Ornder kopieren)
- Installierten Adobe Acrobat Reader DC
- von mir angepasstes PrintPDF.bat Skript von Rob van der Woude im PDF-Ornder speichern

@ECHO OFF
:: Check Windows version, abort if not NT 4 or later
IF NOT "%OS%"=="Windows_NT" GOTO Syntax
SETLOCAL ENABLEDELAYEDEXPANSION

:: Initialize variables
SET PrintCmd=
SET Temp=%Temp:"=%
SET NumFiles=0
SET MultiPrint=0
SET ListTool=

:: Check command line arguments
rem IF     "%~1"=="" GOTO Syntax
rem IF NOT "%~3"=="" GOTO Syntax
rem IF     "%~2"=="" (
rem 	SET FileSpec=%~1
rem ) ELSE (
rem 	IF /I "%~1"=="/M" SET FileSpec=%~2
rem 	IF /I "%~2"=="/M" SET FileSpec=%~1
rem )
rem ECHO.%* | FIND /I "/M" >NUL && SET MultiPrint=1
rem ECHO.%FileSpec% | FIND "/" >NUL && GOTO Syntax
rem IF NOT EXIST "%FileSpec%" GOTO Syntax

rem recursiv in all (sub-)folders
rem for /R %%f in (*.pdf) do (
rem 	.\cpdf.exe "%%f" 1-~2 -recrypt -o "%%~nf_edited.pdf"
rem )

:: cut last page from all PDF files
:: http://community.coherentpdf.com/
:: http://stackoverflow.com/questions/17705974/remove-the-last-page-of-a-pdf-file-using-pdftk
:: cpdf in.pdf 1-~2 -o out.pdf
for %%f in (*.pdf) do (
	.\cpdf.exe "%%f" 1-~2 -recrypt -o "%%~nf_edited.pdf"
)
:: hard coded for all cpdf edited PDF files
SET FileSpec=*edited.pdf

:: Count the number of files specified by filespec
FOR %%A IN (%FileSpec%) DO SET /A NumFiles = !NumFiles! + 1
IF %NumFiles% EQU 0 GOTO Syntax

:: Check if we need to have access to a list of processes
:: currently running, and if so, which one is available
IF %NumFiles%   GTR 1 SET  MultiPrint=1
IF %MultiPrint% EQU 0 CALL :GetListTool

:: Get the file association from the registry
FOR /F "tokens=1* delims==" %%A IN ('ASSOC .PDF') DO (
	FOR /F "tokens=1 delims==" %%C IN ('FTYPE ^| FIND /I "%%~B"') DO (
		CALL :GetPrintCommand %%C
	)
)

:: Check if a print command was found
IF NOT DEFINED PrintCmd (
	ECHO.
	ECHO No print command seems to be assiociated with .PDF files on this computer.
	GOTO Syntax
)

:: Print the file using the print command we just found
FOR %%A IN (%FileSpec%) DO CALL :ExecPrintCommand "%%~fA"

:: A final message
IF "%MultiPrint%"=="1" (
	ECHO.
	ECHO You will need to close the Acrobat Reader window manually after the printing
	ECHO is finished.
	ECHO.
	ECHO *** wait for script to finish printing all files ***
	IF "%NumFiles%"=="1" IF "%ListTool%"=="" (
		ECHO To close that window automatically next time you print a single PDF file,
		ECHO download and install PSLIST from the Microsoft website:
		ECHO http://www.microsoft.com/technet/sysinternals/utilities/pstools.mspx
	)
)

:: Done
GOTO End


:ExecPrintCommand
CALL START /MIN "PrintPDF" %PrintCmd%
GOTO:EOF


:GetListTool
:: Now we need to find a tool to check for processes.
:: In XP and later this will be the native TASKLIST command,
:: in NT 4 and 2000 we'll need to find a non-native tool.
:: First we'll try TASKLIST ...
TASKLIST >NUL 2>&1
IF ERRORLEVEL 1 (
	REM ... if TASKLIST isn't available we'll try TLIST next ...
	TLIST >NUL 2>&1
	IF ERRORLEVEL 1 (
		REM ... and if that isn't available either we'll try PSLIST ...
		PSLIST >NUL 2>&1
		IF NOT ERRORLEVEL 1 SET ListTool=PSLIST
	) ELSE (
		SET ListTool=TLIST
	)
) ELSE (
	SET ListTool=TASKLIST
)
:: Don't worry if we didn't find ANY tool to list processes, in
:: that case we'll just assume multiple PDFs need to be printed
IF "%ListTool%"=="" SET MultiPrint=1
GOTO:EOF


:GetPrintCommand
:: Get the print command for this file type from the registry
:: START /WAIT REGEDIT.EXE /E "%Temp%.\pdf.dat" "HKEY_CLASSES_ROOT\%1\shell\print\command"
START /WAIT REGEDIT.EXE /E "%Temp%.\pdf.dat" "HKEY_CLASSES_ROOT\AcroExch.Document.DC\shell\print\command"
IF NOT EXIST "%Temp%.\pdf.dat" GOTO:EOF
FOR /F "tokens=1* delims==" %%D IN ('TYPE "%TEMP%.\pdf.dat" ^| FIND "@="') DO SET PrintCmd=%%E
DEL "%Temp%.\pdf.dat"
SET PrintCmd=%PrintCmd:\"="%
SET PrintCmd=%PrintCmd:""="%
SET PrintCmd=%PrintCmd:\\=\%
:: The /T switch terminates Acrobat Reader after printing.
:: Thanks to Fabio Quieti for sending me this tip.
:: However, as Michael Butler pointed out, it should not be
:: used when printing lots of files.
:: So I introduced a /M switch for this batch file, stating
:: that multiple files are to be printed.
:: Without specifying the /M switch, this will also be true
:: when wildcards are used in the filespec.
:: Finally, if another Adobe Reader process is running right
:: now, we won't be using the /T switch either.
IF %MultiPrint% EQU 0 CALL :CheckProcess %PrintCmd%
IF %MultiPrint% EQU 0 (
	SET PrintCmd=%PrintCmd:"%1"=/t "%%%~1"%
	rem SET PrintCmd=%PrintCmd% /t "%%~1"
) ELSE (
	SET PrintCmd=%PrintCmd:"%1"="%%%~1"%
	rem SET PrintCmd=%PrintCmd% "%%~1"
)
GOTO:EOF


:CheckProcess
IF "%ListTool%"=="" (
	SET MultiPrint=1
) ELSE (
	%ListTool% 2>&1 | FIND /I "%~n1" >NUL && SET MultiPrint=1
)
GOTO:EOF

:Syntax
ECHO.
ECHO PrintPDF.bat,  Version 3.11 for Windows NT 4 / 2000 / XP / Server 2003
ECHO Prints PDF files from the command line
ECHO.
ECHO Usage:  PRINTPDF  pdf_filespec  [ /M ]
ECHO.
ECHO Where:  "pdf_filespec"  is the file name or filespec of the PDF file(s)
ECHO                         to be printed; wildcards allowed (*); use double
ECHO                         quotes for long file names
ECHO.
ECHO Notes:  This batch file has been tested with Acrobat Reader versions 5-7 only.
ECHO         It requires Adobe/Acrobat Reader, and will NOT work if Acrobat "Writer"
ECHO         is installed.
ECHO         Thanks to Fabio Quieti, as of version 3.00, you no longer need to close
ECHO         the minimized Acrobat Reader window manually, after printing the file.
ECHO         Thanks to Michael Butler, printing lots of PDFs will no longer make the
ECHO         computer slow down to a crawl or even hang.
ECHO.
ECHO Written by Rob van der Woude
ECHO http://www.robvanderwoude.com


:End
rem wait 15 seconds and delete all *edited.pdf files
ping 127.0.0.1 -n 15 > nul
for %%f in (*_edited.pdf) do (
	DEL "%%f"
)
:: Use WMIC to retrieve date and time
FOR /F "skip=1 tokens=1-6" %%G IN ('WMIC Path Win32_LocalTime Get Day^,Hour^,Minute^,Month^,Second^,Year /Format:table') DO (
   IF "%%~L"=="" goto s_done
      Set _yyyy=%%L
      Set _mm=00%%J
      Set _dd=00%%G
      Set _hour=00%%H
      SET _minute=00%%I
      SET _second=00%%K
)
:s_done
:: Pad digits with leading zeros
      Set _mm=%_mm:~-2%
      Set _dd=%_dd:~-2%
      Set _hour=%_hour:~-2%
      Set _minute=%_minute:~-2%
      Set _second=%_second:~-2%

rem Set logtimestamp=%_yyyy%-%_mm%-%_dd%_%_hour%_%_minute%_%_second%
Set logtimestamp=%_yyyy%-%_mm%-%_dd%
mkdir %logtimestamp%_Gedruckt
rem ping 127.0.0.1 -n 3 > nul
MOVE *.pdf %logtimestamp%_Gedruckt\
rem /Y will overwrite all without prompt. /D will overwrite only those that are newer. you can also use xcopy /? for more options
rem xcopy *.pdf Gedruckt\ /D
IF "%OS%"=="Windows_NT" ENDLOCAL


Dieser Beitrag wurde von Heart bearbeitet: 16. November 2016 - 09:45

0

#8 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 16. November 2016 - 18:01

Mein erster Gedanke wäre ja der Internet Explorer.

Der hat ein COM-Interface (InternetExplorer.Application) und das kann man unter anderem über PowerShell ansteuern. Dann müßte man nur noch schauen, was die API zu den Druckoptionen erlaubt; ich würde aber erwarten, daß PrintRange() in irgendeiner Form implementiert ist.

Alternativ halt irgendein programmierbarer PDF-Reader oder sonst ein Tool, was PDF verarbeiten kann, wo man dann seitenweise durchgehen kann und dann sowas wie $pages = Document.PageCount; Document.Print(1;$pages-1) sagen darf.

Da müßte man dann schauen, wer sowas tut.

Batch ist aber denkbar schlecht. Wenn man das nimmt, muß man zwangsläufig existierende Implementierungen greifen.
"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#9 Mitglied ist offline   Heart 

  • Gruppe: Mitglieder
  • Beiträge: 16
  • Beigetreten: 31. Oktober 11
  • Reputation: 0

geschrieben 17. November 2016 - 09:15

@RalpS Danke, wenn Du mir einen besseren Weg (detailierter) aufzeigen kannst, wäre ich natürlich froh.

Das Batch Skript von mir oben funktioniert jedoch soweit nach meinen Wünschen schon mal nahezu "perfekt" :wink:
0

#10 Mitglied ist offline   heinzkram 

  • Gruppe: Mitglieder
  • Beiträge: 5
  • Beigetreten: 11. Juli 17
  • Reputation: 0

geschrieben 11. Juli 2017 - 10:44

Hallo Heart,

ich kann genau so etwas super gut gebrauchen und habe es bei mir nach Deiner Anleitung versucht.
Leider bricht er immer nach 4 PDF`s das Drucken ab und es kommt folgende Meldung:

"Beim öffnen dieses Dokuments ist ein Fehler aufgetreten. Diese Datei kann nicht gefunden werden."

Es wäre super wenn Du mir behilflich sein könntest.
Vielen Dank im Voraus...!


Schöne Grüße
0

#11 Mitglied ist offline   Heart 

  • Gruppe: Mitglieder
  • Beiträge: 16
  • Beigetreten: 31. Oktober 11
  • Reputation: 0

geschrieben 11. Juli 2017 - 10:47

 Zitat (heinzkram: 11. Juli 2017 - 10:44)

Hallo Heart,

ich kann genau so etwas super gut gebrauchen und habe es bei mir nach Deiner Anleitung versucht.
Leider bricht er immer nach 4 PDF`s das Drucken ab und es kommt folgende Meldung:

"Beim öffnen dieses Dokuments ist ein Fehler aufgetreten. Diese Datei kann nicht gefunden werden."

Es wäre super wenn Du mir behilflich sein könntest.
Vielen Dank im Voraus...!


Schöne Grüße

Wie lauten die Dateinamen? Evtl. hat die 5. PDF Datei Umlaute/Sonderzeichen im Dateinamen, weswegen das Skript dann abbricht?
0

#12 Mitglied ist offline   heinzkram 

  • Gruppe: Mitglieder
  • Beiträge: 5
  • Beigetreten: 11. Juli 17
  • Reputation: 0

geschrieben 11. Juli 2017 - 11:14

Danke für die blitzschnelle Antwort.

Am Dateinamen selbst kann es denke ich nicht liegen.
Ich habe mal alle umbenannt, 1.pdf - 7.pdf oder mal a.pdf,b.pdf usw. jedes mal das selbe Ergebnis.
Er bricht irgendwann einfach ab.
0

#13 Mitglied ist offline   Gispelmob 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.591
  • Beigetreten: 14. August 15
  • Reputation: 392

geschrieben 11. Juli 2017 - 11:22

Leerzeichen im, vor oder nach dem Namen.

Dieser Beitrag wurde von Gispelmob bearbeitet: 11. Juli 2017 - 11:22

AMD Ryzen 9 5950X, Asus ROG Strix X570-F Gaming, 32GB Corsair DDR4-3200, Asus Geforce GTX 3060 12GB, Creative Sound Blaster AE-7, 240GB SSD, 500GB SSD, 3x 1TB SSD, Win11 Home, 4x Acer G246HL Bbid, Logitech MX518 Gaming Mouse, Logitech G440 Mousepad, Logitech K120 Keyboard, Razer Tiamat 7.1 V2 Headset, Creative Inspire 5.1 5300 Soundsystem
0

#14 Mitglied ist offline   heinzkram 

  • Gruppe: Mitglieder
  • Beiträge: 5
  • Beigetreten: 11. Juli 17
  • Reputation: 0

geschrieben 11. Juli 2017 - 11:26

Nein, ich habe keine Leerzeichen oder Sonderzeichen im Dateinamen.

Komisch ist, ich bin mir sicher, daß es die ersten Male funktioniert hat.
0

#15 Mitglied ist offline   heinzkram 

  • Gruppe: Mitglieder
  • Beiträge: 5
  • Beigetreten: 11. Juli 17
  • Reputation: 0

geschrieben 12. Juli 2017 - 08:11

 Zitat (Heart: 11. Juli 2017 - 10:47)

Wie lauten die Dateinamen? Evtl. hat die 5. PDF Datei Umlaute/Sonderzeichen im Dateinamen, weswegen das Skript dann abbricht?


Hallo Heart,

am Dateinamen selbst kann es denke ich nicht liegen.
Hast Du sonst keine Idee was bei mir falsch laufen könnte?
0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0