Newsgroup: it.comp.aiuto
Titolo: stampare la prima pagina di molti file PDF

il cliente sta usando PDF Xchange Viewer, ma possiamo anche usare qualcosa 
di diverso, se possibile evitando quel mattone che è l'acrobat reader 
originale
 
qualcosa che avete già avuto modo di provare in tal senso?
 
-- 
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-
........... [ al lavoro ] ...........

qualcosa che avete già avuto modo di provare in tal senso?
 
Io per un'esigenza simile, si doveva stampare l'ultima pagina di centinaia di
pdf, mi sono fatto uno script in vbs che con una serie di sendkeys comandava
Foxit Reader.
 
Se ti interessa lo cerco.
 
-- 
ciao
  Stefano

 
 
se lo trovi vedo di adattarlo, grazie


se lo trovi vedo di adattarlo, grazie
 
Ecco qui, è roba di diversi anni fa, comunque se hai qulche quesito cerco di
aiutarti
 
Il programma usa CurDir, quindi andrebbe lanciato all'interno dell cartella con
i files.
 
Carica il testo tra le righe sotto in un editor e salvalo come   PrintLast.vbs
___________________________________
 
'Programma per stampare l'ultima pagina di in file pdf in una PNG
 
  Set Fso = CreateObject("Scripting.FileSystemObject")
  Set oShell = CreateObject("WScript.Shell") 
  CurDir = oShell.CurrentDirectory & "\" 
 
	ImPAth=(CurDir & "Images\")
  If Fso.FolderExists(ImPAth)=False Then Fso.CreateFolder(ImPAth): WScript.Sleep
1000
 
  Set objFolder = Fso.GetFolder(CurDir)
  Set colFiles = objFolder.Files
 
 
  Set Processes = GetObject("winmgmts:").InstancesOf("Win32_Process")
	For Each Process In Processes
	    If StrComp(Process.Name, "FoxitReader.exe", vbTextCompare) = 0 Then
	        If Len(intProcessId) = 0 Then intProcessId = Process.ProcessId
'MsgBox Process.Name &"  "&intProcessId
		Exit For
	    End If
	Next
 
 
   For Each objFile in colFiles
	Np = objFile.Path	'nome completo
 
	If (LCase(Fso.GetExtensionName(Np)) = "pdf") And InStr(Np,"Atto")>0
Then
	  Nam = ImPAth & Fso.GetBaseName(Np)
	  Namp = Nam & ".png"
 
	  If Fso.FileExists(Namp)= False Then
 
		oShell.Run  Chr(34) & Np &  Chr(34) ,0 ,False
		Text2Clip Nam
 
		Call	PrintLast
X=100
		Do:	If Fso.FileExists(Namp)= True Then Exit Do
			Wscript.Sleep	300
			If x=0 Then MsgBox Namp & vbcrlf & "UNFOUND":
WScript.Quit
			X=X-1
  		Loop
	  End If
 
	End If
   Next
 
 WScript.Quit
 
Sub PrintLast
 
	Wscript.Sleep	300
 
	oShell.AppActivate intProcessId	: WScript.Sleep 200
 
'	Cmd = NirCmd & " win activate etitle " & Chr(34) & "eader" & Chr(34):
oShell.Run Cmd ,0, True
 
	oShell.SendKeys  "^{END}"	'conferma
	WScript.Sleep 200
 
	oShell.SendKeys  "^p"	
	WScript.Sleep 200
 
	oShell.SendKeys  "{TAB}"	:WScript.Sleep 100
	oShell.SendKeys  "{TAB}"	:WScript.Sleep 100
	oShell.SendKeys  "{TAB}"	:WScript.Sleep 100
	oShell.SendKeys  "{TAB}"	:WScript.Sleep 100
	oShell.SendKeys  "{TAB}"	:WScript.Sleep 100
 
	oShell.SendKeys  "{UP}"	:WScript.Sleep 100
 
	oShell.SendKeys  "{ENTER}"	'conferma
 
 
	Wscript.Sleep	1500
 
	oShell.SendKeys  "^a"	:WScript.Sleep 200'NOME FILE
 
	oShell.SendKeys  "^v"	'NOME FILE
	WScript.Sleep 800
 
Dly = 300
 
	oShell.SendKeys  "{TAB}"	:WScript.Sleep Dly
	oShell.SendKeys  "{TAB}"	:WScript.Sleep Dly
	oShell.SendKeys  "{TAB}"	:WScript.Sleep Dly
	oShell.SendKeys  "{TAB}"	:WScript.Sleep Dly
	oShell.SendKeys  "{TAB}"	:WScript.Sleep Dly
	oShell.SendKeys  "{TAB}"	:WScript.Sleep Dly
	oShell.SendKeys  "{TAB}"	:WScript.Sleep Dly
	oShell.SendKeys  "{TAB}"	:WScript.Sleep Dly
 
	oShell.SendKeys  "{DOWN}"	:WScript.Sleep Dly
 
 
	oShell.SendKeys  "{TAB}"	:WScript.Sleep Dly
	oShell.SendKeys  "{TAB}"	:WScript.Sleep Dly
	oShell.SendKeys  "{TAB}"	:WScript.Sleep Dly
 
	oShell.SendKeys  "{TAB}"	:WScript.Sleep Dly
	oShell.SendKeys  "{TAB}"	:WScript.Sleep Dly
	oShell.SendKeys  "{TAB}"	:WScript.Sleep Dly
 
	oShell.SendKeys  "{ENTER}"	'conferma
 
	Wscript.Sleep	1000
 
	oShell.AppActivate intProcessId	: WScript.Sleep 200
 
	oShell.SendKeys  "^{F4}"	:WScript.Sleep 1000'NOME FILE
 
End Sub
 
 
Sub Text2Clip(Txt)
'  Set Fso = CreateObject("Scripting.FileSystemObject") 
 
  DirWinSys = Fso.GetSpecialFolder(1)
  ClpB = DirWinSys & "\clip.exe"
 
  If Fso.FileExists(ClpB)Then
  '   ForceCScript()  
      Set objShell= CreateObject("WScript.Shell")
 
      Set oExec = objShell.Exec(ClpB)
 
      Set oIn = oExec.stdIn
      WScript.Sleep 20
      oIn.WriteLine Txt
      WScript.Sleep 10
      oIn.Close
  End If  
End Sub
 
_______________________________
-- 
ciao
  Stefano

 
 
SumatraPDF
 
eseguito da linea di comando con appositi parametri
 
for %f in (*.pdf) do SumatraPDF.exe -print-to-default -print-settings "1" 
"%f"
 
notare:
 
"1" è il numero della pagina da stampare, ma può essere anche "1-3" oppure 
"1,3-6,18"
 
le virgolette dell'ultimo parametro servono se i nomi dei file contengono 
SPAZI o altri caratteri non standard
 
ci sono ventordici altri parametri da usare per la qualunque:
https://www.sumatrapdfreader.org/docs/Command-line-arguments.html
 


 Ecco qui
 
grazie
 
mentre provavo e scrivevo le mie prove con sumatra ho visto che è arrivata 
anche la tua soluzione


anche la tua soluzione
 
Ho visto, e la tua soluzione č piů semplice, io ai tempi avevo fretta e ho
preferito adattare un altro script che faceva ricorsione simile.
 
 
-- 
ciao
  Stefano

 SumatraPDF
 
È un bel pezzo di software e la tua esperienza è l'ennesima conferma.
 

 l'ennesima conferma.
 
E' il mio reader alternativo a FoxitReader (rigorosamente
l'ultima versione con interfaccia decente, non la
merdaflat). O l'uno o l'altro a seconda del problema e non 
ho mai sentito necessità di altro.
 
 

ho mai sentito necessità di altro.
 
Anch'io uso Foxit Reader 7.2.8, l'ultima versione prima dei ribbon, oltre a PDF
Xchange viewer e Sumatra, ma non sapevo della possibilità di usarlo dalla linea
di comando.
 
 
-- 
ciao
  Stefano

 È un bel pezzo di software
 
lo uso esclusivamente per .epub e .cbr/cbz
 
per i pdf preferisco il già citato xchange viewer che mi mette a 
disposizione un po' di semplici strumenti di ritocco


 comando.
 
Infatti che io sappia no; stavo confermando la bontà di
Sumatra dicendo che è uno dei soli due che uso.
 

disposizione un po' di semplici strumenti di ritocco
 
Io lo uso XChange  soprattutto quando mi serve un OCR, ma anche qui mi tocca
usare la vecchia 2.5 perchè nelle ultime versioni funziona peggio, nel senso che
hanno messo qualche opzione a pagamento.
 
-- 
ciao
  Stefano

 Anch'io uso Foxit Reader 7.2.8,
 
l'ultima volta che l'ho visto si era appesantito?


No, lo tengo a dieta.
 
-- 
ciao
  Stefano