|
- Public Function ConvertReportToPDF( _
- Optional RptName As String = "", _
- Optional SnapshotName As String = "", _
- Optional OutputPDFname As String = "", _
- Optional ShowSaveFileDialog As Boolean = False, _
- Optional StartPDFViewer As Boolean = True, _
- Optional CompressionLevel As Long = 0, _
- Optional PasswordOwner As String = "", _
- Optional PasswordOpen As String = "", _
- Optional PasswordRestrictions As Long = 0, _
- Optional PDFNoFontEmbedding As Long = 0, Optional Wherecon As String) As Boolean
- ' RptName is the name of a report contained within this MDB
- ' SnapshotName is the name of an existing Snapshot file
- ' OutputPDFname is the name you select for the output PDF file
- ' ShowSaveFileDialog is a boolean param to specify whether or not to display
- ' the standard windows File Dialog window to select an exisiting Snapshot file
- ' CompressionLevel - not hooked up yet
- ' PasswordOwner - not hooked up yet
- ' PasswordOpen - not hooked up yet
- ' PasswordRestrictions - not hooked up yet
- ' PDFNoFontEmbedding - Do not Embed fonts in PDF. Set to 1 to stop the
- ' default process of embedding all fonts in the output PDF. If you are
- ' using ONLY - any of the standard Windows fonts
- ' using ONLY - any of the standard 14 Fonts natively supported by the PDF spec
- 'The 14 Standard Fonts
- 'All version of Adobe's Acrobat support 14 standard fonts. These fonts are always available
- 'independent whether they're embedded or not.
- 'Family name PostScript name Style
- 'Courier Courier fsNone
- 'Courier Courier-Bold fsBold
- 'Courier Courier-Oblique fsItalic
- 'Courier Courier-BoldOblique fsBold + fsItalic
- 'Helvetica Helvetica fsNone
- 'Helvetica Helvetica-Bold fsBold
- 'Helvetica Helvetica-Oblique fsItalic
- 'Helvetica Helvetica-BoldOblique fsBold + fsItalic
- 'Times Times-Roman fsNone
- 'Times Times-Bold fsBold
- 'Times Times-Italic fsItalic
- 'Times Times-BoldItalic fsBold + fsItalic
- 'Symbol Symbol fsNone, other styles are emulated only
- 'ZapfDingbats ZapfDingbats fsNone, other styles are emulated only
- Dim s As String
- Dim blRet As Boolean
- ' Let's see if the DynaPDF.DLL is available.
- blRet = LoadLib()
- If blRet = False Then
- ' Cannot find DynaPDF.dll or StrStorage.dll file
- Exit Function
- End If
- On Error GoTo ERR_CREATSNAP
- Dim strPath As String
- Dim strPathandFileName As String
- Dim strEMFUncompressed As String
- Dim sOutFile As String
- Dim lngRet As Long
- ' Init our string buffer
- strPath = Space(Pathlen)
- 'Save the ReportName to a local var
- mReportName = RptName
- ' Let's kill any existing Temp SnapShot file
- If Len(mUncompressedSnapFile & vbNullString) > 0 Then
- Kill mUncompressedSnapFile
- mUncompressedSnapFile = ""
- End If
- ' If we have been passed the name of a Snapshot file then
- ' skip the Snapshot creation process below
- If Len(SnapshotName & vbNullString) = 0 Then
- ' Make sure we were passed a ReportName
- If Len(RptName & vbNullString) = 0 Then
- ' No valid parameters - FAIL AND EXIT!!
- ConvertReportToPDF = ""
- Exit Function
- End If
- ' Get the Systems Temp path
- ' Returns Length of path(num characters in path)
- lngRet = GetTempPath(Pathlen, strPath)
- ' Chop off NULLS and trailing ""
- strPath = Left(strPath, lngRet) & Chr(0)
- ' Now need a unique Filename
- ' locked from a previous aborted attemp.
- ' Needs more work!
- strPathandFileName = GetUniqueFilename(strPath, "SNP" & Chr(0), "snp")
- ' Export the selected Report to SnapShot format
- DoCmd.Echo False
- DoCmd.OpenReport RptName, acViewPreview, , Wherecon
- Reports(RptName).Visible = False
复制代码 先睹为快! |
|