将JPEG打印到PDF,设置纸张尺寸

时间:2012-09-06 23:56:35

标签: vba pdf acrobat

对于给定的JPEG(或GIF或BMP),使用VBA,我想将其打印为PDF,并在打印前设置页面大小。我看了几种不同的打印方式,但似乎没有人能够做到我想要的:

  • 使用Acrobat SDK调用AVDoc.Open()AVDoc.GetPDDoc(),然后调用PDDoc.Save() :无法使用此方法选择页面大小

  • 声明WinAPI函数SetDefaultPrinterShellExecute,使用SetDefaultPrinter将打印机设置为PDF打印驱动程序,然后调用ShellExecute(1,"print",filepath,"",rootdirectory,1) :我还没有找到使用此方法设置页面大小的方法

可以使用与Office文档对象关联的方法设置页面大小,例如Worksheet.PageSetup.PaperSize = xlPaper11x17,但这只设置该对象的页面大小,而不是我要打印的JPEG。

1 个答案:

答案 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中测试。