PDF export add-in

G

gbruintjes

I am using a macro to loop through several workbooks and publish
selected sheets to PDF. The sheets have both tables and charts and are
scaled at about 85% to fit on a single page.

The PDFs retain the correct print area/scaling size, the problem is
the the charts seem to stay at 100% so they end up being cut-off.
Below is the macro code I use. Any ideas?

Sub pdf()
'
' pdf Macro
'

'
Sheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5",
"Sheet6")).Select
Sheets("Sheet6").Activate
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\WORK\Template.pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True,
IgnorePrintAreas _
:=False, OpenAfterPublish:=False
End Sub
 
E

EricG

A possible fix - just before exporting to PDF, what if you convert the chart
to a picture (either metafile or bitmap) and print that instead? Would it
print out correctly then, or still get cut off?

For example:

'
' Convert_Chart_to_Picture Macro
' For a chart on a worksheet
'
Sub Convert_Chart_to_Picture()
'
Sheets("Sheet1").Select
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.CopyPicture Appearance:=xlPrinter, Size:=xlPrinter, Format:= _
xlPicture
Sheets("Sheet2").Select
ActiveSheet.PasteSpecial Format:="Picture (Enhanced Metafile)",
Link:=False _
, DisplayAsIcon:=False
Selection.ShapeRange.Left = 0#
Selection.ShapeRange.Top = 0#
End Sub
'
' Convert_Chart_to_Picture Macro
' For a chart on its own sheet
'
Sub Convert_Chart_to_Picture2()
Sheets("Chart1").Select
ActiveChart.CopyPicture Appearance:=xlPrinter, Format:=xlPicture
Sheets("Sheet2").Select
ActiveSheet.PasteSpecial Format:="Picture (Enhanced Metafile)",
Link:=False _
, DisplayAsIcon:=False
Selection.ShapeRange.Left = 0#
Selection.ShapeRange.Top = 0#
End Sub

You could also scale the size of the picture to ensure it fits the PDF page
if necessary.

HTH,

Eric
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top