printout on Adobe PDF Printer bestand extreem groot

Status
Niet open voor verdere reacties.

Artemiss

Gebruiker
Lid geworden
13 feb 2009
Berichten
130
Beste allen,

Ik heb een stukje code geschreven om een PDF van een excelsheet te maken. In eerste instantie gebruikte ik hiervoor de ExportAsFixedFormat, maar daarmee werd het pdf-bestand zo'n 800 kb groot.
Daarna heb ik handmatig een PDF geprint mbv de Adobe PDF printer, dit leverde een bestand van 441 kb op, bijna twee keer zo klein.
Daarom heb ik mijn code uitgebreid, zodat hij wanneer de Adobe PDF printer beschikbaar is, deze gebruikt om het PDF-bestand te maken.
De code werkt op zich, alleen wordt het PDF-bestand 3925 kb. Onderstaand de code, heeft iemand enig idee wat de oorzaak is van dit extreme bestandsformaat?

Alvast bedankt voor de hulp

Code:
Sub PDF_Report1()

Dim Opslagpad As String
Dim Schip As String
Dim Periode As String

ActiveWorkbook.RefreshAll

    Schip = Sheets("Report").Range("F3").Value
    
    Periode = Format(Sheets("Summary").Range("B2").Value, "mmm yy")
    
    Opslagpad = ThisWorkbook.Path & "\"
    
    Dim lNum As Integer, strPrinterName As String
     
    On Error Resume Next
    For lNum = 1 To 10
        strPrinterName = "Adobe PDF on Ne0" & lNum & ":"
        Application.ActivePrinter = strPrinterName
        If Application.ActivePrinter = strPrinterName Then
            ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:=strPrinterName _
                , PrintToFile:=True, PrToFilename:=Opslagpad & Schip & " Month DR Report " & Periode & ".pdf" _
                , IgnorePrintAreas:=False
                
            MsgBox ("The report is saved under " & Opslagpad)
        ElseIf lNum = 10 Then
            Sheets("Report").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
                Opslagpad & Schip & " Month DR Report " & Periode & ".pdf" _
                , Quality:=xlQualityMinimum, IncludeDocProperties:=False, IgnorePrintAreas _
                :=False, OpenAfterPublish:=False
                
            MsgBox ("The report is saved under " & Opslagpad)
        End If
     Next lNum
    On Error GoTo 0

End Sub
/CODE]
 
Welke bestand is zo groot?
Ten gevolge van
Code:
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:=strPrinterName _
, PrintToFile:=True, PrToFilename:=[COLOR=#FF0000]Opslagpad & Schip & " Month DR Report " & Periode & ".pdf"[/COLOR] _
, IgnorePrintAreas:=False
of ten gevolge van
Code:
Sheets("Report").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
[COLOR=#FF0000]Opslagpad & Schip & " Month DR Report " & Periode & ".pdf"[/COLOR] _
, Quality:=xlQualityMinimum, IncludeDocProperties:=False, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
Geef ze eens twee verschillende namen om te testen.
 
Laatst bewerkt:
Het gaat om de PrintOut optie die een bestand van 3925 kb genereert, de ExportAsFixedFormat optie geeft een pdf van ca. 800 kb
 
Kan je bepaalde optimalisatie instellingen van de pdf-printer in- of uitschakelen?
 
Er is wel een instelling voor bijvoorbeeld "Smallest file size", dat scheelt ietsje, maar nog steeds is er dan een groot verschil tussen het formaat van een handmatige printout en een printout via VBA.
Ik tast gewoon echt in het duister waarom er überhaupt een verschil zit tussen de handmatige print en print dmv VBA.

Er is een instelling mbt tot SystemFonts die ik uit moet vinken om de code te laten werken, dus misschien dat daar de oorzaak in ligt.
Bij het handmatig printen valt hij niet over dezelfde instelling, ook al is deze aangevinkt...
 
probeer bij het handmatig printen systematisch een aantal instellingen te veranderen zodat het bestand doelbewust zeer groot is.
Misschien is het daarna mogelijk om in VBA deze instelling zo te zetten dat het bestand klein wordt
Onder het motto, is het niet linksom dan maar rechtsom.

Aan de andere kant, je hebt al een kleine pdf, die van "ExportAsFixedFormat", waarom dan nog een keer hetzelfde doen met de pdf-printer.
 
Laatst bewerkt:
Ik zal de laatste zin van je reactie doorsturen naar mijn klant, ik vind de 800 kb ook niet zo schrikbarend.
Hij wil het bestand graag zo klein mogelijk, omdat hij meerdere tegelijk (zo'n 20 tot 30 pdfs) wil gaan verzenden per mail.
Ik denk dat ik hem maar ga aanraden om de 20 - 30 PDF's in een gecomprimeerde map te versturen, dan wordt het formaat ook gehalveerd.

Hij was vandaag wel ernstig teleurgesteld, omdat dit de eerste keer in 3 jaar zou zijn dat ik hem niet precies kan geven wat hij hebben wil en ik vind het ook erg jammer om de status van alles-oplosser te verliezen...
Thanks voor het meedenken
 
Wacht even met afsluiten, de echte probleemoplossers werken overdag.
En plaats een anoniem voorbeeldbestandje, misschien zitten er in het excelbestand dingen waar adobe grote problemen meer heeft.

Je wil dus zo klein mogelijke pdf met een redelijke kwaliteit.
Worden de pdf's bij de klanten uitgeprint 200-300dpi of alleen bekeken op het scherm 96-120dpi
Zitten er veel afbeeldingen in de pdf?
 
Het gaat om 2 pagina's. De eerste pagina bevat een rapportage met stukjes tekst, een hoop cijfers en gedeelte gekleurde cellen.
De twee pagina bevat een aantal grafieken.
In principe zijn ze voornamelijk bedoeld om op het scherm te bekijken, maar ze moeten ook uitgeprint nog leesbaar zijn.

Als ik meer tijd heb, zal ik proberen een voorbeeldbestand te maken met gefingeerde gegevens
 
Om te testen:

Code:
Sub M_snb()
  ActiveWorkbook.RefreshAll

  c00 = actvieworkbook.Path & "\" & Sheets("Report").Range("F3").Value & Format(Sheets("Summary").Range("B2").Value, "mmm yy") & ".pdf"

   On Error Resume Next
   Application.ActivePrinter = "Adobe PDF on Ne0" & lNum & ":"
       
   If Err.Number = 0 Then
      Sheets("Report").PrintOut 1, c00
   Else
      Sheets("Report").ExportAsFixedFormat 0, c00
   End If
End Sub

Ik vermoed dat 'printtofile' de boosdoener is.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan