None of those sheets are hidden. You included Sheet5 in your array so I left it. If you are selecting sheets in order as one does for a group, then you don't have to list each sheet. Howsoever, keep in mind that no matter what order you put sheet names into the array, the pdf uses sheet index order.
Here is the code to get each visible property, set to visible, make pdf, restore visible state.
Sub Button3_Click()
Dim a, aa, i, pdf As String
a = Array("Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5", "Sheet6", "Sheet7")
pdf = Environ("temp") & "\a.pdf"
'Get sheet's visible property, and set to xlSheetVisible
aa = a
For i = 0 To UBound(a)
aa(i) = Worksheets(a(i)).Visible 'Errors if sheet a(i) does not exist.
Worksheets(a(i)).Visible = xlSheetVisible
Next i
Sheets(a).Select 'Make sheets grouped.
ActiveSheet.ExportAsFixedFormat xlTypePDF, pdf, xlQualityStandard, True, False, , , True
Sheets(1).Select 'ungroup sheets
'Restore sheet's visible state
For i = 0 To UBound(a)
Worksheets(a(i)).Visible = aa(i)
Next i
End Sub
As for alignment, your sheets have different margins (Sheet2) in Page Layout for one thing. Alignment is up to you.