Printing to a pdf printer programmatically

前端 未结 11 1183
慢半拍i
慢半拍i 2021-01-06 15:40

I am trying to print an existing file to PDF programmatically in Visual Basic 2008.

Our current relevant assets are: Visual Studio 2008 Professional Adobe Acrobat Pr

相关标签:
11条回答
  • 2021-01-06 16:27

    PDFforge offers PDFCreator. It will create PDFs from any program that is able to print, even existing programs. Note that it's based on GhostScript, so maybe not a good fit to your Acrobat license.

    Have you looked into Adobe Distiller Server ? You can generate PostScript files using any printer driver and have it translated into PDF. (Actually, PDFCreator does a similar thing.)

    0 讨论(0)
  • 2021-01-06 16:28

    What you want to do is find a good free PDF Printer driver. These are installed as printers, but instead of printing to a physical device, render the printer commands as a PDF. Then, you can either ShellExecute as stated above, or use the built in .net PrintDocument, referring the the PDF "printer" by name. I found a couple free ones, including products from Primo and BullZip (freedom limited to 10 users) pretty quickly.

    It looks like SNP files are Microsoft Access Snapshots. You will have to look for a command line interface to either Access or the Snapshot Viewer that will let you specify the printer destination.

    I also saw that there is an ActiveX control included in the SnapshotViewer download. You could try using that in your program to load the snp file, and then tell it where to print it to, if it supports that functionality.

    0 讨论(0)
  • 2021-01-06 16:32

    I encountered a similar problem in a C# ASP.NET app. My solution was to fire a LaTeX compiler at the command line with some generated code. It's not exactly a simple solution but it generates some really beautiful .pdfs.

    0 讨论(0)
  • 2021-01-06 16:33

    I had the same challenge. The solution I've made was buying a component called PDFTron. It has an API to send pdf documents to a printer from an unattended service. I posted some information in my blog about that. Take a look!

    How to print a PDF file programmatically???

    0 讨论(0)
  • 2021-01-06 16:35
    Imports System.Drawing.Printing
    Imports System.Reflection
    Imports System.Runtime.InteropServices
    Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim pkInstalledPrinters As String
    
        ' Find all printers installed
        For Each pkInstalledPrinters In _
            PrinterSettings.InstalledPrinters
            printList.Items.Add(pkInstalledPrinters)
        Next pkInstalledPrinters
    
        ' Set the combo to the first printer in the list
        If printList.Items.Count > 0 Then
            printList.SelectedItem = 0
        End If
        End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Try
    
            Dim pathToExecutable As String = "AcroRd32.exe"
            Dim sReport = " " 'pdf file that you want to print
            'Dim SPrinter = "HP9F77AW (HP Officejet 7610 series)" 'Name Of printer
            Dim SPrinter As String
            SPrinter = printList.SelectedItem
            'MessageBox.Show(SPrinter)
            Dim starter As New ProcessStartInfo(pathToExecutable, "/t """ + sReport + """ """ + SPrinter + """")
            Dim Process As New Process()
            Process.StartInfo = starter
            Process.Start()
            Process.WaitForExit(10000)
            Process.Kill()
            Process.Close()
        Catch ex As Exception
            MessageBox.Show(ex.Message) 'just in case if something goes wrong then we can suppress the programm and investigate
        End Try
    End Sub
    End Class
    
    0 讨论(0)
提交回复
热议问题