• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Gemaakte pdf in excel heeft verschillende bestandsgroottes.

Status
Niet open voor verdere reacties.

jrheuwing

Gebruiker
Lid geworden
31 mrt 2018
Berichten
17
Ik heb in excel een macro die ervoor zorgt dat er een pdf wordt gemaakt van een werkblad. Dit werkt op het eerste gezicht zonder problemen, maar het bestand is te groot. De gemaakte pdf wordt ingelezen in een ander programma, maar daarin lijkt het erop dat er flink is ingezoomd op de pdf. Een groot deel van het werkblad is dan niet zichtbaar. Wanneer ik handmatig een pdf maak is er niks aan de hand. De handmatige pdf kan zonder problemen worden ingelezen door het andere programma.

Het is mij wel opgevallen dat het gemaakte pdf via de macro verschillende bestandsgroottes heeft. Afhankelijk van de gebruikte pc en office versie. Om het probleem op te lossen wil ik de dpi instelling aanpassen in de macro. Helaas lukt dit niet, want als ik de waarde 600 van PrintQuality aanpas geeft de macro een foutmeldling.

Fout 1004 tijdens uitvoering:
Eigenschap PrintQuality van klasse PageSetup kan niet worden ingesteld


Weet iemand een oplossing voor dit probleem?

Hieronder de macro code die het pdf maakt.
Code:
PrintPDF:
    With ActiveSheet.PageSetup
        .PrintArea = "A1:AE82"
        .PrintQuality = 600
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = 1
    End With
        
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:=Map & Rappnr & "_" & App, _
    IncludeDocProperties:=False, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False
 
Al geprobeerd ?

Code:
Sub M_snb()        
    ActiveSheet.range("A1:AE82").ExportAsFixedFormat 0,Map & Rappnr & "_" & App
Edn Sub
 
Op mijn thuis pc zie ik geen verschil in bestandsgrootte als de gegeven regel alles vervangt wat onder End With staat. De bestandsgrootte blijft gelijk. Daarbij heb ik wel de regel PrintArea verwijdert.

Wat thuis wel is opgevallen dat er een verschil is tussen de pdf printer die standaard met win 10 is geleverd en pdfcreator wat ook op het werk gebruikt wordt. De pdf die met de win10 printer is gemaakt is veel groter dan de pdf van PDFcreator. 580 kb tegen 50 kb voor hetzelfde werkblad.
 
Gebruik geen andere code dan mijn suggestie.
 
Heb je dit al geprobeerd:

Code:
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:=Map & Rappnr & "_" & App, _
    IncludeDocProperties:=False, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False
    Quality:=xlQualityMinimum
 
@snb: Jouw code vervangt alles van de door mij gegeven code? Inclusief de With ... End With gedeelte?

@jkpieterse: Thuis even geprobeerd met de Quality:=xlQualityMinimum. Het bestand wordt dan ongeveer 100 kb ten opzichte van de 144 kb met Quality:=xlQualityStandard. Controleren of het andere programma hiermee overweg zal pas vrijdag of volgende week zijn. Even geduld hiervoor.
 
@snb: Jouw regel geprobeerd, maar de bestandsgrootte van het pdf bestand blijft 144 kb.

Het was nog wel nodig om de variabelen van inhoud te voorzien voor een herkenbare bestandsnaam op de verwachte plek. De macro ziet er dan zoals hieronder uit.
Code:
Sub M_snb()

' test Macro

    Dim Map As String, Rappnr As String, App As String, Appnr As Integer
    Map = ThisWorkbook.path & "\Rapport\"
    Rappnr = Range("AB8").Value
    App = Range("C20") & "_" & Range("C21") & "_" & Range("C23")

    ActiveSheet.Range("A1:AE82").ExportAsFixedFormat 0, Map & Rappnr & "_" & App
End Sub

De volledige macro zoals ik de macro gebruik:
Code:
Sub PDF_printen()

[I]' PDF_printen Macro
' Macro om het rapport op te slaan in PDF formaat.
' Eerst wordt gecontroleerd of de submap 'Rapport' bestaat en wordt deze aangemaakt indien het niet zo is.[/I]

    Dim Map As String, Rappnr As String, App As String, Appnr As Integer
    Map = ThisWorkbook.path & "\Rapport\"
    
[I]' Hieronder vindt de controle plaats van de submap 'Rapport' en wordt deze aangemaakt als die er nog niet is.[/I]

    If Dir(Map, vbDirectory) = "" Then MkDir (Map)
     
[I]' Hieronder de controle of het rapportbestand al bestaat of niet.
' De variabelen Rappnr en App zijn ook te gebruiken voor de bestandsnaam van het rapport.
' Het is nodig om de extensie .pdf toe te voegen voor de juiste werking voor de controle.
' Er wordt een sprong gemaakt in de macro als het bestand niet bestaat.
' Als het bestand bestaat komt er een melding.[/I]

    Rappnr = Range("AB8").Value
    App = Range("C20") & "_" & Range("C21") & "_" & Range("C23")
    If Dir(Map & Rappnr & "_" & App & ".pdf") = "" Then
        GoTo PrintPDF

    Else
        Overschrijven = MsgBox("Het bestand is reeds aanwezig. Rapport overschrijven? ", vbExclamation + vbYesNo + vbDefaultButton2)
        If Overschrijven = vbYes Then
         GoTo PrintPDF
        ElseIf Overschrijven = vbNo Then
         GoTo Eind
        End If
    End If

' Hieronder wordt de PDF gemaakt. Door sprongfunctie wordt deze code meerdere malen weer gebruikt.
' De naam van het rapport begint met rapport nummer gevolgd door merk en type.

PrintPDF:
    With ActiveSheet.PageSetup
        .PrintArea = "A1:AE82"
        .PrintQuality = 600
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = 1
    End With
        
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:=Map & Rappnr & "_" & App, _
    IncludeDocProperties:=False, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False

Eind:
End Sub
 
Geen specsavers in de buurt ?
 
Heb je verschillende fonts/lettertypes? of minder gangbare fonts?

If you want to prevent fonts from being embedded in a PDF file, then make sure your Microsoft Word documents make use of one of the 14 standard typefaces available in PDF viewers (Source: Wikipedia).

Times New Roman > Times (v3) (in regular, italic, bold, and bold italic)
Courier New > Courier (in regular, oblique, bold, and bold oblique)
Arial > Helvetica (v3) (in regular, oblique, bold, and bold oblique)
Symbol > Symbol
Wingdings > Zapf Dingbats
Zal ook wel gelden voor excel.
Bron: https://www.howtogeek.com/230496/why-are-pdf-files-generated-by-microsoft-word-so-large/
 
Laatst bewerkt:
@snb: als alleen jouw regel wordt gebruikt blijft de bestandsgrootte 144kb. Alleen de bestandsnaam wordt dan _.pdf. Dat was de reden dat ik enkele regels van mijn eigen macro had toegevoegd.

@alphamax: Dat een lettertype zoveel verschil kan maken had ik niet verwacht. Door de lettertype te wijzigen in Arial werd de bestandsgrootte 15kB. Ik heb de gemaakte pdf bestand in het programma op het werk ingeladen en dat ziet er goed uit. Geen overdreven zoomfunctie en het hele blad is zichtbaar, net zoals het handmatig maken van de pdf.

Beiden bedankt voor het helpen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan