Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.

Batch print PDF lijst

Pagina: 1
Acties:

  • beerten
  • Registratie: Juni 2003
  • Laatst online: 15-11 12:26
Dag,

is er software dat een bijvoorbeeld excel-lijst met bestandsnamen van PDF's kan afdrukken? En dan zo dat afhankelijk van het papierformaat van de PDF de juiste printer gekozen wordt met automatisch roteren?

Liefst Open Source, als dat er is.

Iemand een idee waar ik zulks kan vinden?

  • Nogne
  • Registratie: November 2011
  • Laatst online: 13:51

Nogne

>.<

Wat heb je zelf al gevonden? En met open source bedoel je gratis?

PS/XBL: Nogne


  • beerten
  • Registratie: Juni 2003
  • Laatst online: 15-11 12:26
Ik heb niets gevonden. Of ik vind tooltjes waarbij je de bestanden naar een map sleept en van daaruit print, of ik kom op kleine scriptjes die je uit moet voeren.

Met Open Source hoop ik op gratis. Zeker om het uit te proberen. Uiteindelijk zal het bedrijfsmatig met meerdere gebruikers ingezet gaan worden. Dat het dan geld gaat kosten, tja, wij geven onze producten ook niet weg. Geen probleem dus.

  • TheVMaster
  • Registratie: Juli 2001
  • Laatst online: 15:44

TheVMaster

Moderator WOS
Eh..dit heeft niets met Windows Clients te maken en daarnaast is Open Source heel iets anders dan gratis. Jij bedoelt Freeware :+

Maar eh...MOVE naar CSA!

  • beerten
  • Registratie: Juni 2003
  • Laatst online: 15-11 12:26
En dan te bedenken dat ik serieus de topiclijst heb doorgespit op zoek naar het juiste topic hiervoor. EN ik klik er net naast... Excusez moi

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Wat is een bijvoorbeeld excel-lijst met bestandsnamen van PDF's? Als je die lijst al hebt: druk op print en je bent er. Als niet, dan wil je die lijst maken met je favoriete scripttaal.

Als je bedoelt dat je *.pdf wilt printen: je favoriete scripttaal. Je kunt via commandline tools de grootte van de pdf-pagina`s achterhalen. Bijv met pdfinfo.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • Mschamp
  • Registratie: April 2014
  • Laatst online: 14:45
F_J_K schreef op dinsdag 10 oktober 2017 @ 21:55:
Wat is een bijvoorbeeld excel-lijst met bestandsnamen van PDF's? Als je die lijst al hebt: druk op print en je bent er. Als niet, dan wil je die lijst maken met je favoriete scripttaal.

Als je bedoelt dat je *.pdf wilt printen: je favoriete scripttaal. Je kunt via commandline tools de grootte van de pdf-pagina`s achterhalen. Bijv met pdfinfo.
Ik vermoed dat hij een Excel-bestand heeft, waar alle bestandsnamen in staan die hij wil printen. En dus een programma zoekt dat het volledige Excel-bestand overloopt, elk genoemd pdf-bestand opent en naar de juiste printer stuurt.

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Mschamp schreef op dinsdag 10 oktober 2017 @ 22:00:
[...]


Ik vermoed dat hij een Excel-bestand heeft, waar alle bestandsnamen in staan die hij wil printen. En dus een programma zoekt dat het volledige Excel-bestand overloopt, elk genoemd pdf-bestand opent en naar de juiste printer stuurt.
Ah. Dan kan een VBA script het doen, of opslaan als csv of txt en dan dat als input gebruiken voor any scripttaal :Y)

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Was dat maar waar... dramatische resultaten als je bv default acrobat reader hebt geinstalleerd. Print conductor is wel een aardig tooltje.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • m-vw
  • Registratie: Mei 2013
  • Nu online

m-vw

Dus?

Lustucru schreef op woensdag 11 oktober 2017 @ 00:42:
Was dat maar waar... dramatische resultaten als je bv default acrobat reader hebt geinstalleerd. Print conductor is wel een aardig tooltje.
VBA script kan wel hoor. Heb ik zelf ook in elkaar geprutst. Ik moet wel eerst de algemene printer instellingen goed zetten, maar dan werkt het.

Je zou zelfs met Dir("*.pdf") alle bestanden in een bepaalde map kunnen printen.

Er is op voldoende te vinden als je zoek op "VBA print pdf".

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Lustucru schreef op woensdag 11 oktober 2017 @ 00:42:
Was dat maar waar... dramatische resultaten als je bv default acrobat reader hebt geinstalleerd. Print conductor is wel een aardig tooltje.
Da's waar. De default printinstellingen wil je vaak niet blind gebruiken. Al kan je afhankelijk van de tool ook die wel aanpassen via parameters.

Al stel ik voor dat de TS gaat nadenken over concrete invulling in de favoriete scripttaal. Gratis, kost alleen wat tijd :P

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • beerten
  • Registratie: Juni 2003
  • Laatst online: 15-11 12:26
Allen,

als eerste dank voor het meedenken

Ik heb inderdaad in een excel bestand een lijst met in dit geval artikelnummers. Deze artikelnummers zijn tevens de bestandsnamen van de te printen bestanden. Uiteraard moet daar nog .pdf achter gezet worden, maar dat is dan het kleinste probleem.

De pdf's staan in één map, duizenden.

Afhankelijk van het project genereer ik in excel een lijst met de relevante artikelnummers. Die zijn kipsimpel om te zetten naar bestandnamen. Bestand en artikel hebben dezelfde naam. (pdf's zijn tekeningen)

Nu vind ik wel een tooltje als bijvoorbeeld Foldermill, maar dan heb ik de bestanden nog niet in een map. (Tooltje zou als proces kunnen draaien en alles wat in de vooringestelde map gedropt wordt drukt het af en verwijderd het weer uit de map)

De pdf's hebben allemaal verschillende afmetingen, A4/3/2/1/0, landscape en portrait. A4 en A3 kunnen naar een netwerkprinter X, A2 en groter moeten naar een plotter Y.

Ik zou ook met bijvoorbeeld dat tooltje foldermill o.i.d. een scriptje kunnen gebruiken dat op basis van een csv/txt/excel-lijst bestanden in de printmap kopieert. Helaas heb ik geen kaas gegeten van VBA en excel. Naar ik aanneem staan daar wel voorbeelden van online, programmeren is me niet helemaal vreemd.

Hoe pak ik dit het handigste aan? Wat is een simpele manier om op basis van een lijst bestandsnamen pdf's af te drukken op de voor de individuele pdf geschikte printer?

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Ik noemde al een tooltje waarmee je de eigenschappen van een pdf kunt uitlezen, bijv. http://www.xpdfreader.com/download.html :
pdfinfo A.pdf | find "Page size"
Page size:      368.504 x 538.583 pts (rotated 0 degrees)

Misschien zijn er ook wel tools die het nog wat makkelijker kunnen weergeven.

Een tijdelijke kopie van de files maken in een in de gaten houden-map lijkt me een trage omweg. Gewoon een scriptje maken. Powershell kan prima, bash eventueel (al zou ik dat niet meer gaan leren), VBA (al lijkt de overhead daarvan me te groot), maar enig ander script dat externe tools kan aanroepen kan ook.

Als je er geen ervaring mee hebt dan zou ik powershell suggereren. Al heb ik daar weinig mee gedaan, i.t.t. batch en VBA :+

Een loopje om alle files af te gaan. Vraag de grootte op via bijv voorgaande tool, als-dan regel om de juiste printer te kiezen afhankelijk van de grootte. Ik zou zeggen: doe een poging en kijk waar je vast loopt.

De grote omweg via foldermill kan, dan ben je er met een simpele batch file die de files kopieert. Maar heb je nog geen printerkeuze.

Edit: je kunt met foldermill een eind komen: https://www.foldermill.co...nt-settings-from-filename
Maar er is nog steeds eigen scripting nodig. Ik wil het wel doen maar heb een uurloon ;)

[ Voor 8% gewijzigd door F_J_K op 11-10-2017 11:57 ]

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

m-vw schreef op woensdag 11 oktober 2017 @ 07:13:
[...]
VBA script kan wel hoor. Heb ik zelf ook in elkaar geprutst. Ik moet wel eerst de algemene printer instellingen goed zetten, maar dan werkt het.
Doe me een lol en deel dat script eens. :) Afdrukken binnen VBA is nooit zo'n probleem, maar afdrukken van meerdere PDF documenten in een batch is in mijn ervaring een drama tot op het niveau dat je loops moet gaan bouwen om low-level te wachten tot processen zijn beëindigd nadat je ze in code gekilled hebt. En dan nog liep het vaak hopeloos vast na een documentje op 30 of nam de verwerkingstijd exorbitant toe. Tenminste zolang Acrobat je default PDF renderer is. Nooit geprobeerd wat VBA binnen Word doet trouwens. Wellicht werkt dat beter.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Goed punt, al mijn 'bulkjes' waren enkele per keer. Het scheelt qua tijd als je juist de reader (Acrobat of een ander) juist open laat staan. Maar dan is bewaken of de printopdracht is afgrond idd niet makkelijker.

@beerten: Als je acrobat reader gebruik kan je met AcroRd32.exe /t path "printernam" de juiste printer aanroepen. Al zou ik ook experimenteren met andere PDF-viewers.

Voorbeeld: https://stackoverflow.com...through-acrobat-reader-dc

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • beerten
  • Registratie: Juni 2003
  • Laatst online: 15-11 12:26
Het lijkt er op dat er geen tooltje is dat kan wat ik wil. of ook gezegd: ik kan niet wat ik wil ;)
Het blijft maatwerk, al dan niet zelf geknutseld. En daar zit ik nu net niet op te wachten, geknutsel.
verder zoeken, of iemand inhuren die wel goed en betrouwbaar kan knutselen ;)

  • m-vw
  • Registratie: Mei 2013
  • Nu online

m-vw

Dus?

Lustucru schreef op woensdag 11 oktober 2017 @ 14:58:
[...]


Doe me een lol en deel dat script eens. :)
.....
Weinig/Geen foutondervanging en een ingebouwde pauze ivm crashes.
Heeft bij mij toch al gewerkt tot 100 pdf's.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Option Explicit
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
 
Public Function PrintThisDoc(formname As Long, FileName As String)
On Error Resume Next
Dim x As Long
x = ShellExecute(formname, "Print", FileName, 0&, 0&, 3)
End Function
 
Sub PrintBestandenUitLijst()
Dim printThis
Dim strDir As String
Dim strFile As String
Dim last_row As Integer
Dim XX As Integer
Dim PauseTime, Start
PauseTime = 1
strDir = "D:\Data\PDF\"
last_row = Range("A1").End(xlDown).Row
For XX = 1 To last_row - 1
If Range("A1").Offset(XX, 0).Rows.Hidden = False Then
strFile = strDir & Range("A1").Offset(XX, 0).Value
        printThis = PrintThisDoc(0, strFile)
        Start = Timer    ' Set start time.
    Do While Timer < Start + PauseTime
        DoEvents    ' Yield to other processes.
    Loop
        End If
Next
End Sub


Of alle PDF's in een map, met andere pauzemethode:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Sub PrintBestandenUitMappen()
Dim printThis
Dim strDir As String
Dim strFile As String
 
Dim ant As VbMsgBoxResult
'Vragen of de printer goed ingesteld staat.
ant = MsgBox("Staan de standaard printinstellingen goed?", vbYesNo, "Maak een keuze.")
If ant = vbYes Then
'Folder selecteren waarin de PDF's staan
    With Application.FileDialog(msoFileDialogFolderPicker)
        .AllowMultiSelect = False
        If .Show <> -1 Then MsgBox "No folder selected! Exiting sub...": Exit Sub
        strDir = .SelectedItems(1)
    End With
    
    If Right(strDir, 1) <> "\" Then strDir = strDir & "\"
    strFile = Dir(strDir & "*.pdf")
    
    Do While Len(strFile) > 0
        If Left(strFile, 1) <> "." Then
            printThis = PrintThisDoc(0, strDir & strFile)
            strFile = Dir
            'Pauze ivm crashes van Acrobat reader
            Application.Wait (Now + TimeValue("0:00:05"))
        End If
    Loop
End If
End Sub


Programmeurs worden waarschijnlijk spontaan ziek bij het zien van bovenstaand gepruts, maar voor mij werkt het.
Pagina: 1