以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  pdf文件打印问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=183109)

--  作者:ap9709130
--  发布时间:2022/10/24 18:05:00
--  pdf文件打印问题
 老师

      如果可以用代码批量打印目录中的pdf 文件,并且可以指定打印机和 打成 A5纸?

--  作者:有点蓝
--  发布时间:2022/10/24 20:06:00
--  
没有办法
--  作者:ap9709130
--  发布时间:2022/10/25 16:30:00
--  
 老师

       我在论坛上找到一个方法,引用 O2S.Components.PDFRender4NET.dll 可以打印出来,也可以指定打印机,但是因为纸张的papersize 属性不是public的,所以要重新生成一个新对象,请看以下代码:

Dim File = O2S.Components.PDFRender4NET.PDFFile.Open("D:\\abc.pdf")
Dim settings As New System.Drawing.Printing.PrinterSettings
\'    settings.PrinterName = PrinterName \'打印机名称
Dim ps As System.Drawing.Printing.PaperSize
ps.RawKind = 11
Dim pdfPrintSettings As O2S.Components.PDFRender4NET.Printing.PDFPrintSettings = New O2S.Components.PDFRender4NET.Printing.PDFPrintSettings(){PaperSize = ps}
\'pdfPrintSettings.PrinterSettings.Copies = PrinterNum
Try
    file.Print(pdfPrintSettings)
Catch ex As Exception
    
End Try
file.Dispose()


但是会报错,说未声明 papersize ,本人水平有限,请问要如何修改?
[此贴子已经被作者于2022/10/25 16:31:39编辑过]

--  作者:有点蓝
--  发布时间:2022/10/25 16:38:00
--  
最好去看看这个组件的说明文档。

试试
Dim pdfPrintSettings As O2S.Components.PDFRender4NET.Printing.PDFPrintSettings = New O2S.Components.PDFRender4NET.Printing.PDFPrintSettings()
pdfPrintSettings.PaperSize = ps

--  作者:ap9709130
--  发布时间:2022/10/25 21:02:00
--  
 有点蓝老师

         试出来了,这个组件不支持改的,只支持打印机设置的默认纸张和打印方向。 请问一下老师,可以用代码设置打印机的默认纸张和打印方向吗?

--  作者:有点蓝
--  发布时间:2022/10/25 21:07:00
--  
设置不了
--  作者:ap9709130
--  发布时间:2022/10/27 11:14:00
--  
 现在不是都在推广电子发票吗?财务那边以后会经常打印pdf发票,打成A5纸,这是一个很大的刚需啊,希望论坛高手们,能想想办法!
--  作者:有点蓝
--  发布时间:2022/10/27 11:18:00
--  
Foxtable的execl报表、专业报表,直接打印等功能都可以指定打印机,都可以指定打印纸规格。

但是要控制pdf,那是另外一个东西了。和Foxtable没有什么关系

--  作者:ap9709130
--  发布时间:2022/10/27 16:26:00
--  
 老师

      你说的也对,但这个需求后面还是挺多人需要的,大家看看能不能想办法解决吧!