Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    [Visual Basic 2010] Stampa File su una specifica stampante

    Ciao,
    ho un problema forse banale ma non ne vengo a capo.

    In pratica devo fare un convertitore che permetta di convertire documenti WORD e PDF in PDF/a-1b.

    Ho provato PDFCreator e mi sono accertato che il file di output è conforme alle specifiche che mi occorrono.

    La domanda (banale) è:
    come faccio a far stampare il file *.doc o *.pdf su quella specifica stampante?

    Chiaramente sul mio PC è installata sia la stampante che Adobe o Word ke sia

    Avete qualche esempio?
    Grazie
    Ciao
    Fabio

  2. #2
    Utente di HTML.it L'avatar di Vinsent
    Registrato dal
    May 2011
    Messaggi
    314
    Io conosco questo metodo che ho utilizzato per dei txt:
    codice:
            Dim stampa As New Process()
            With stampa
                .StartInfo.FileName = "percorso file"
                .StartInfo.Verb = "printto"
                .StartInfo.Arguments = """" & "nome stampante" & """"
                .StartInfo.WindowStyle = ProcessWindowStyle.Hidden
                .StartInfo.UseShellExecute = True
                .StartInfo.CreateNoWindow = True
                .Start()
                .WaitForExit()
                .Dispose()
            End With
    che ha il difetto di mostrare il popup di stampa...
    Mentre per ottenere i nomi delle stampanti:
    codice:
            For a = 0 To PrinterSettings.InstalledPrinters.Count - 1
                Console.WriteLine(PrinterSettings.InstalledPrinters(a))
            Next
    Di più non so...
    ciao

  3. #3
    Ottimo, ho risolto in parte.
    Grazie

    Adesso mi servirebbe sapere come si può impostare PDF Creator in modo che stampi in conformità allo standard PDFA-1b

    La stampante di suo lo fa, ma anche se imposto la stampante quando la uso da codice mi stampa un PDF privo di conformità


    Ciao
    Fabio

  4. #4
    Ho trovato
    Public Sub cConvertFile(ByVal InputFilename As String, ByVal OutputFilename As String, Optional ByVal SubFormat As String = "") ' Allowed values for 'SubFormat': "PDF/A-1b" for "PDF/A-1b"files; "PDF/X" for "PDF/X"-files

    sul sito http://de.pdfforge.org/content/clspdfcreator
    c'è qualche informazione ma non riesco proprio a far venir fuori il mio PDF/A

    riporto il codice che utilizzo per la stampa

    codice:
    Public Sub cConvertFile(ByVal Filetyp As String, Optional ByVal SubFormat As String = "PDF/A-1b")
            Dim fname As String, fi As FileInfo, DefaultPrinter As String
            Dim opt As PDFCreator.clsPDFCreatorOptions
            With OpenFileDialog1
                .Multiselect = False
                .CheckFileExists = True
                .CheckPathExists = True
                '.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*"
            End With
            If OpenFileDialog1.ShowDialog = DialogResult.OK Then
                fi = New FileInfo(OpenFileDialog1.FileName)
                If InStr(fi.Name, ".", CompareMethod.Text) > 1 Then
                    fname = Mid(fi.Name, 1, InStr(fi.Name, ".", CompareMethod.Text) - 1)
                Else
                    fname = fi.Name
                End If
                '  If Not _PDFCreator.cIsPrintable(fi.FullName) Then
                'MsgBox("File '" & fi.FullName & "' is not printable!", MsgBoxStyle.Exclamation, Me.Text)
                ' Exit Sub
                ' End If
                opt = _PDFCreator.cOptions
                With opt
                    .UseAutosave = 1
                    .UseAutosaveDirectory = 1
                    .AutosaveDirectory = fi.DirectoryName
                    .AutosaveFormat = Filetyp
                    .
                    If Filetyp = 5 Then
                        .TIFFResolution = 72
                    End If
                    opt.AutosaveFilename = fname
                End With
                With _PDFCreator
                    .cOptions = opt
                    .cClearCache()
                    DefaultPrinter = .cDefaultPrinter
                    .cDefaultPrinter = "PDFCreator"
                    .cPrintFile(fi.FullName)
                    ReadyState = False
                    .cPrinterStop = False
                End With
    
                With Timer1
                    .Interval = maxTime * 1000
                    .Enabled = True
                    Do While Not ReadyState And .Enabled
                        Application.DoEvents()
                    Loop
                    .Enabled = False
                End With
                If Not ReadyState Then
                    MsgBox("Creating printer test page as pdf." & vbCrLf & vbCrLf & _
                     "An error is occured: Time is up!", MsgBoxStyle.Exclamation, Me.Text)
                End If
                _PDFCreator.cPrinterStop = True
                _PDFCreator.cDefaultPrinter = DefaultPrinter
            End If
            opt = Nothing
        End Sub
    
    
    
        Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
            cConvertFile(0)
        End Sub
    HELP..

    Fabio

  5. #5
    Utente di HTML.it L'avatar di Vinsent
    Registrato dal
    May 2011
    Messaggi
    314
    Bello PDFCreator, l' ho messo al posto di BullZip...però la documentazione fa ca**re...
    Sono andato per tentavi riuscendo a convertire un txt in diversi formati tra cui tre in pdf, guarda qui:
    https://www.dropbox.com/sh/zk9t96goyo7fy3b/VopnyWb8cq
    se uno corrisponde al tuo formato.
    Fammi sapere così elimino la cartella e ti posto il codice che ho usato.
    ciao

  6. #6
    Ciao!
    Mi sa che ti farò una statua!!!
    L'esempio 9 è perfetto, mi faresti avere il codice?

    Grazie!!!
    Fabio

  7. #7
    Utente di HTML.it L'avatar di Vinsent
    Registrato dal
    May 2011
    Messaggi
    314
    Più o meno così:
    codice:
            Dim PDFc As New PDFCreator.clsPDFCreator
            Dim PDFc_opt As New PDFCreator.clsPDFCreatorOptions
    
            'path del file da convertire
            Dim file_conv As String
    
            'formato di destinazione, da 1 a 15,
            'PDF/A-1b corrisponde a 9
            Dim formato As Integer
    
            'nome del file di destinazione
            'NB l' estensione viene ignorata
            Dim nome_file As String
    
            'directory di destinazione/salvataggio
            Dim path As String
    
            With PDFc_opt
                .UseAutosave = 1
                .UseAutosaveDirectory = 1
                .AutosaveDirectory = path
                .AutosaveFilename = nome_file
                .AutosaveFormat = formato
            End With
    
            With PDFc
                .cOptions = PDFc_opt
                .cSaveOptions()
                .cDefaultPrinter = "PDFCreator"
                .cPrintFile(file_conv)
            End With
    
            PDFc.cClose()
    Manca la gestione di possibili errori, dello stato della stampante, ed inoltre '.cSaveOptions()' sovrascrive le impostazioni della stampante...
    Credo che tra Funzioni, Proprietà, ecc. ci sia tutto per fare le cose per bene...bisogna capire quali e come usarle...
    Ciao!

  8. #8
    OK, provo immediatamente!

    Grazie intanto

  9. #9
    Grazie funziona molto bene,
    mi resta solo di far chiudere adobe dopo la stampa se no nn posso mettere in loop la conversione di diversi file.

    Ciao!

  10. #10
    HELPPP
    qualcuno sa dirmi come mettere in loop PDF CREATOR?
    L'ho fatto ma finchè non chiudo manualmente AcroRd32.exe (stampo un pdf nuovamente in pdf) non passa al secondo file...
    sto impazzendo con sta cosa...

    Grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.