对于给定的JPEG(或GIF或BMP),使用VBA,我想将其打印为PDF,并在打印前设置页面大小。我看了几种不同的打印方式,但似乎没有人能够做到我想要的:
使用Acrobat SDK调用AVDoc.Open()
,AVDoc.GetPDDoc()
,然后调用PDDoc.Save()
:无法使用此方法选择页面大小
声明WinAPI函数SetDefaultPrinter
和ShellExecute
,使用SetDefaultPrinter
将打印机设置为PDF打印驱动程序,然后调用ShellExecute(1,"print",filepath,"",rootdirectory,1)
:我还没有找到使用此方法设置页面大小的方法
可以使用与Office文档对象关联的方法设置页面大小,例如Worksheet.PageSetup.PaperSize = xlPaper11x17
,但这只设置该对象的页面大小,而不是我要打印的JPEG。
答案 0 :(得分:1)
您可以将其导入Excel工作簿并从那里打印。这是一个基本的例子:
Dim ws As Worksheet
Dim pic As Picture
Set ws = ActiveSheet
ws.PageSetup.PaperSize = xlPaperA4
'Can also specify margins, etc.
ws.Range("A1").Activate
Set pic = ws.Pictures.Insert("C:\mypic.jpg")
'Set picture size.
With pic.ShapeRange
.LockAspectRatio = msoFalse
.Height = Application.CentimetersToPoints(20)
.Width = Application.CentimetersToPoints(15)
'Or you could match the size to the paper margins from above.
End With
ws.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="C:\mypic.pdf", OpenAfterPublish:=True
在Excel 2010中测试。