VB.NET PDF文件批量打印,可以指定打印的页面,倒叙打印,顺序打印!方便快捷!
Imports Spire.License Imports Spire.Pdf Imports System.Drawing.Printing Imports System.IO
Public Class pdf_print Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load get_pt() End Sub Sub PT_PDF() On Error Resume Next If pd_file() = False Then Exit Sub Dim pdf_page As Integer = 0 Dim path As String Dim pdf As New PdfDocument For Each file_name In txt_coding.Lines If file_name <> “” Then path = txt_path.Text & file_name & “.pdf” If cb_all.Checked = True Then pdf_page = pdf.Pages.Count pdf.LoadFromFile(path) End If If cb_zh.Checked = True Then pdf.LoadFromFile(path) pdf_page = pdf.Pages.Count pdf.PrintFromPage = pdf_page pdf.PrintToPage = pdf_page End If If cb_zd.Checked = True Then pdf.LoadFromFile(path) pdf_page = pdf.Pages.Count pdf.PrintFromPage = zd_ks.Text pdf.PrintToPage = zd_js.Text End If If cb_ds.Checked = True Then pdf.LoadFromFile(path) pdf_page = pdf.Pages.Count + 1 pdf.PrintFromPage = pdf_page - Val(ds_ks.Text) pdf.PrintToPage = pdf_page - Val(ds_js.Text) End If pdf.PrinterName = pt_list.Text pdf.PrintDocument.Print() End If Application.DoEvents() Next End Sub
Private Function Boo_FileExist(ByVal Str_File As String) As Boolean Boo_FileExist = System.IO.File.Exists(Str_File) End Function Function pd_file() As Boolean Dim temp As String = "" For Each file_name In txt_coding.Lines If file_name <> "" Then If Boo_FileExist(txt_path.Text & file_name & ".pdf") = False Then temp = file_name + vbCrLf + temp End If End If Next If temp <> "" Then MsgBox(temp, MsgBoxStyle.Exclamation, "警告:没有以下文件;请下载!") Return False Else Return True End If End FunctionSub get_pt() ''获取打印机列表 On Error Resume Next Dim prtdoc As New PrintDocument() Dim strDefaultPrinter As String = prtdoc.PrinterSettings.PrinterName Dim strPrinter As [String] For Each strPrinter In PrinterSettings.InstalledPrinters pt_list.Items.Add(strPrinter) If strPrinter = strDefaultPrinter Then pt_list.SelectedIndex = pt_list.Items.IndexOf(strPrinter) End If Next strPrinter pt_list.Text = strDefaultPrinter End Sub Sub get_filelist() Try Dim dirs As String() = Directory.GetFiles(txt_path.Text, "*.pdf") Dim dir As String Dim filel As String For Each dir In dirs filel = Split(dir, "\")(UBound(Split(dir, "\"))) txt_coding.Text = Split(filel, ".pdf")(0) + vbCrLf + txt_coding.Text Application.DoEvents() Next Catch e As Exception MsgBox("文件列表获取失败!", vbInformation, "VB小源码") End Try End SubPrivate Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_pt_pdf.Click If txt_coding.Text <> "" Then PT_PDF() Else MsgBox("请输入文件名或者获取文件列表!", MsgBoxStyle.Information, "VB小源码") End IfEnd SubPrivate Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cb_zh.CheckedChanged If cb_zh.Checked = True Then cb_all.Checked = False cb_zd.Checked = False zd_ks.Enabled = False zd_js.Enabled = False cb_ds.Checked = False ds_ks.Enabled = False ds_js.Enabled = False End If End SubPrivate Sub CheckBox3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cb_zd.CheckedChanged If cb_zd.Checked = True Then zd_ks.Enabled = True zd_js.Enabled = True cb_all.Checked = False cb_zh.Checked = False cb_ds.Checked = False ds_ks.Enabled = False ds_js.Enabled = False End If End SubPrivate Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cb_all.CheckedChanged If cb_all.Checked = True Then zd_ks.Enabled = False zd_js.Enabled = False cb_zh.Checked = False cb_zd.Checked = False cb_ds.Checked = False ds_ks.Enabled = False ds_js.Enabled = False End If End SubPrivate Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_lj.Click Dim path_p As String get_path_pdf.ShowDialog() get_path_pdf.RootFolder = Environment.SpecialFolder.Desktop path_p = get_path_pdf.SelectedPath & "\" If path_p <> "" Then txt_path.Text = path_p End IfEnd SubPrivate Sub CheckBox4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cb_ds.CheckedChanged If cb_ds.Checked = True Then zd_ks.Enabled = False zd_js.Enabled = False cb_zh.Checked = False cb_zd.Checked = False cb_all.Checked = False ds_ks.Enabled = True ds_js.Enabled = True End If End SubPrivate Sub TextBox5_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ds_ks.TextChangedEnd Sub Private Sub clear_list_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles clear_list.Click txt_coding.Clear() End SubPrivate Sub 获取文件列表_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles get_file.Click If MsgBox("建议:选择少于1000个文件的文件夹获取列表!" & vbCrLf & "是否继续?", vbYesNo, "VB小源码") = vbYes Then get_filelist() Else Exit Sub End IfEnd SubPrivate Sub ds_js_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ds_js.TextChanged ds_ks.Text = ds_js.Text End SubPrivate Sub zd_ks_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles zd_ks.TextChanged zd_js.Text = zd_ks.Text End Sub
End Class
本文分享自微信公众号 - VB小源码(vb_xym)
原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。
原始发表时间:2019-01-16
本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。
我来说两句