-- 作者:ajie5211
-- 发布时间:2018/1/3 13:10:00
-- [求助]局域网中共享打印机不能设置类 PageSetup 的 PaperSize 属性
如标准,PDF打印机不报错,但局域网中的共享打印机报“不能设置类 PageSetup 的 PaperSize 属性”错误。Print Spooler服务已启动。
Dim fl As String = ProjectPath & "Reports\\冲压制令单.xls" With Tables("冲压生产计划追踪表") If .TopPosition > -1 Then \'如果选定区域包括数据行 \'******建立主表与制令和出入的关联********* Relations.Add("制令关联",DataTables("冲压生产计划追踪表").DataCols("制令单号"),DataTables("冲压生产计划追踪表_Table1").DataCols("销售单号"),False,RelationPathEnum.none) Relations.Add("出入关联",DataTables("冲压生产计划追踪表").DataCols("制令单号"),DataTables("冲压生产计划追踪表_Table5").DataCols("制令单号"),False,RelationPathEnum.none) Dim ks As Integer = .TopPosition Dim js As Integer = .BottomPosition For i As Integer = ks To js Dim Book As New XLS.Book(ProjectPath & "Attachments\\冲压制令单.xls") .Select(i,0) \'生成条码图片 Dim Bar As New BarCodeBuilder Bar.Symbology = Barpro.Symbology.Code39 Bar.Code = .Rows(i)("制令单号") Bar.BarHeight = 8 Bar.QuietZoneWidth = 2 Bar.DisplayChecksum = False bar.SaveImage(ProjectPath & "Images\\zldtxm.wmf",300) Book.Build() \'生成细节区 Dim Sheet As XLS.Sheet = Book.Sheets(0) \'引用工作簿的第一个工作表 Dim prtdoc As new Printing.PrintDocument() prtdoc.PrinterSettings.PrinterName = GetConfigValue("_zlddyj",DefaultPrinter) \'设置打印机名称 Sheet.MergeCell(2,9,21,1) \'合并提示列 sheet(1,6).Value = Date.Now \'fl = ProjectPath & "Reports\\" & .Rows(i)("制令单号") & ".pdf" Book.Save(fl) \'保存工作簿 Dim App As New MSExcel.Application Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(fl) Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1) Dim zzmcs As new List(of String) \'自动添加24x28的纸张 \'For Each ps As System.Drawing.Printing.PaperSize In prtdoc.PrinterSettings.PaperSizes \'生成打印机的纸张下拉列表 \'If zzmcs.Contains(ps.PaperName) = False Then \'zzmcs.Add(ps.PaperName) \'End If \'Next \'If zzmcs.Contains("klj24x28") = False Then \'Dim cps As new CustomPaperSize.CustomPaperSize() \'\'cps.SetPrintForm(prtdoc.PrinterSettings.PrinterName,"klj24x28", 10 * GetConfigValue("_zldzzkd", 240), 10 * GetConfigValue("_zldzzgd", 280)) \'cps.SetPrintForm(prtdoc.PrinterSettings.PrinterName,"klj24x28", 10 * 240, 10 * 280) \'End If With Ws.PageSetup \'For Each ps As System.Drawing.Printing.PaperSize In prtdoc.PrinterSettings.PaperSizes \'生成打印机的纸张下拉列表 \'\'If ps.PaperName = "klj24x28" Then \'If ps.PaperName = "Letter" OrElse ps.PaperName = "信纸" Then \'.PaperSize = ps.RawKind \'End If \'Next .PaperSize = MSExcel.XlPaperSize.xlPaperLetter \'纸张大小 .LeftMargin = 10 \'页面左边距 .RightMargin = 10\'页面右边距 .TopMargin = 10 \'页面顶部边距 .BottomMargin = 10 \'页面底部边距 .CenterHorizontally = True \'页面水平居中 \'.CenterVertically = True \'页面垂直居中 .Zoom = False \'以下设置将缩印在一页内 .FitToPagesWide = 1 \'按照1页的宽度打印 .FitToPagesTall = 1 \'按照1页的高度打印 End With \'App.Visible = True Ws.PrintOut(Preview:=False,ActivePrinter:= "" & GetConfigValue("_zlddyj",DefaultPrinter) & "") wb.save wb.close App.Quit Next \'******删除建立的关联***** Relations.Delete("制令关联") Relations.Delete("出入关联") End With
|