Newsgroup: it.comp.lang.delphi
Titolo: PDF - Help

Ho cercato per mezza internet, le ho tentate tutte ma sono una frana.
In pratica, con la stampante pdfcreator vorrei poter stampare i percorsi
nel database di 10 file dai formati più disparati (pdf,word,excel,autocad
etc)
Combinandoli poi in un'unico pdf !
Ho provato alcuni script...tenete conto che vorrei farlo con l'activex di
pdfcreator di pdfforge.
C'è un'anima pia su questo ng che può scrivermi o inviarmi lo script ?
In pratica devo:
- Mettere in pausa la stampante
- aggiungere tutte le stampe
- combinare e sparare l'output in un percorso specifico
Se avete altre idee o suggerimenti, SONO BEN ACCETTI ! vi prego.
Grazie
Questo farebbe "quasi al caso mio" ma è per excel...non sò tradurlo in
delphi, inoltre si stampa i fogli mentre io voglio dargli i percorsi dei
10 file...
Option Explicit
Sub PrintToPDF_MultiSheetToOne_Late()
'Author       : Ken Puls (
www.excelguru.ca
)
'Macro Purpose: Print to PDF file using PDFCreator
'   (Download from 
http://sourceforge.net/projects/pdfcreator/
)
'   Designed for late bind, no references req'd
    Dim pdfjob As Object
    Dim sPDFName As String
    Dim sPDFPath As String
    Dim lSheet As Long
    Dim lTtlSheets As Long
    '/// Change the output file name here!  ///
    sPDFName = "Consolidated.pdf"
    sPDFPath = ActiveWorkbook.Path & Application.PathSeparator
    Set pdfjob = CreateObject("PDFCreator.clsPDFCreator")
    'Make sure the PDF printer can start
    If pdfjob.cStart("/NoProcessingAtStartup") = False Then
        MsgBox "Can't initialize PDFCreator.", vbCritical + _
            vbOKOnly, "Error!"
        Exit Sub
    End If
    'Set all defaults
    With pdfjob
        .cOption("UseAutosave") = 1
        .cOption("UseAutosaveDirectory") = 1
        .cOption("AutosaveDirectory") = sPDFPath
        .cOption("AutosaveFilename") = sPDFName
        .cOption("AutosaveFormat") = 0    ' 0 = PDF
        .cClearCache
    End With
    'Print the document to PDF
    lTtlSheets = Application.Sheets.Count
    For lSheet = 1 To Application.Sheets.Count
        On Error Resume Next 'To deal with chart sheets
        If Not IsEmpty(Application.Sheets(lSheet).UsedRange) Then
            Application.Sheets(lSheet).PrintOut copies:=1,
ActivePrinter:="PDFCreator"
        Else
            lTtlSheets = lTtlSheets - 1
        End If
        On Error GoTo 0
    Next lSheet
    'Wait until all print jobs have entered the print queue
    Do Until pdfjob.cCountOfPrintjobs = lTtlSheets
        DoEvents
    Loop
    'Combine all PDFs into a single file and stop the printer
    With pdfjob
        .cCombineAll
        .cPrinterStop = False
    End With
    'Wait until PDF creator is finished then release the objects
    Do Until pdfjob.cCountOfPrintjobs = 0
        DoEvents
    Loop
    pdfjob.cClose
    Set pdfjob = Nothing
End Sub

 etc)

 
Non volevo aggiornare le licenze aziendali da acrobat elements ad 
acrobat standard allora girando su internet ho trovato questo:
http://angusj.com/pdftkb/
Trovi anche la versione con sorgenti in Delphi ma per fare il collage 
usa un tool opensource che esiste un po' per tutti i SO.
http://www.pdfhacks.com/pdftk/
Ciao
PS: ho inviato all'autore anche una versione modificata che include il 
drag & drop ma ancora non ho avuto risposta.

 un tool opensource che esiste un po' per tutti i SO.
Grazie infinite per il preziosissimo aiuto ! mi hai risolto la parte 
finale...con pdftkb, da shellexecute andrò a fare il "collage" o "merging" 
che dir si vuole di tutti i pdf precedentemente generati.
La prima parte non l'ho ancora risolta, e vale a dire:
Aprire con un solo click tutti i tipi di documento che ho salvato sul 
database (percorsi) e tra questi ho:
word, excel, pdf, autocad e molto altro ancora ! etc
Con un comando shellexecute print...non ottengo granchè (alcuni si stampano 
altri non vengono visti)  andrebbero aperti tutti e stampati dal loro menu 
affinchè il tutto funzioni...mi domandavo se c'era qualche comando miglore 
per fare si che la stampante pdf creator me li generi senza impazzire.
Per esempio...se drag droppo tutti questi documenti sulla stampante pdf...il 
gioco riesce e ottengo i pdf...
richiamandoli invece uno a uno in cascata con comandi shellexecute 
"print"...alcuni si stampano alcuni non vengono nemmeno considerati.
Sono 3 settimane che mi stò spaccando la testa per risolvere questo 
problemone che mi porterà ad avere dei piccoli guai purtroppo.
E' per questo che faccio appello ancora a te e tutti voi.
Grazie ! 

 
Credo che dipendi dall'applicazione se stampa direttamente o no.
Ti posso consigliare eventualmente una soluzione che dei miei colleghi 
hanno implementato, dove te generi un ticket e il server procede nel 
generare il PDF. Non è però free.
http://www.adlibsys.com/ExpressServer.aspx
Genera PDF da oltre 300 formati, forse potrebbe risolverti qualche problema.
Ciao

 ticket e il server procede nel generare il PDF. Non è però free.
La provo e se va bene procedo con l'acquisto, intanto io posso solo 
ringraziarti a scritte.
Ti terrò informato.
Grazie ancora