pdf pagina's printen uit samenvoeg-document

Status
Niet open voor verdere reacties.

AnnevdD

Verenigingslid
Lid geworden
8 mei 2007
Berichten
228
Ik heb een brievenbestand gemaakt met MS Word » verzendlijsten waarin een brief van 2 pagina’s voor een groot aantal adressen is gemaakt.
Bij het maken van een pdf bestand van een brief uit deze verzameling werd ik geconfronteerd met n.m.m. nogal bizar gedrag waarbij het onmogelijk was om een of meer brieven apart in een pdf te printen.

Ik heb de inhoud van het bewuste bestand voor een groot deel verwijderd en het resultaat als voorbeeld (brieven test.docm) hierbij opgenomen. (het is docm omdat er proefmacro's om dit te automatiseren in staan)

Ik gebruik Windows10, Office 2016 en “Microsoft Print to PDF” als printer.
In het bestand zijn drie brieven opgenomen van elk 2 pagina’s. Dus totaal 6 pagina’s.
Ik maak gebruik van de standaard afdruk dialoog en kies dan in het vak Aangepaste afdruk welke pagina’s ik wil printen.

Als ik van het bestand de pagina’s 1-2 wil printen naar bestand test12o.pdf krijg ik alle 6 pagina’s in het bestand
Als ik van het bestand de pagina’s 1-3 wil printen naar bestand test13o.pdf krijg ik alle 6 pagina’s in het bestand
Als ik van het bestand de pagina’s 2-3 wil printen naar bestand test23o.pdf krijg ik 5 pagina’s (2 t/m 6) in het bestand
Als ik van het bestand de pagina’s 3-5 wil printen naar bestand test35o.pdf krijg ik geen output bestand maar ook geen foutmelding. En in AppData\Roaming\Microsoft\Windows\Recent komt een link naar een bestand test35o.pdf dat niet bestaat.
Als ik van het bestand de pagina’s 5-6 wil printen naar bestand test56o.pdf krijg ik geen output bestand maar ook geen foutmelding. En in AppData\Roaming\Microsoft\Windows\Recent komt een link naar een bestand test56o.pdf dat niet bestaat.

Ik begrijp er niets meer van. Kan iemand mij helpen svp.
 

Bijlagen

  • test12o.pdf
    220 KB · Weergaven: 29
  • Brieven test.docm
    36 KB · Weergaven: 34
  • test25o.pdf
    219,4 KB · Weergaven: 39
  • test13o.pdf
    220 KB · Weergaven: 33
  • test23o.pdf
    219,4 KB · Weergaven: 28
Ik denk dat je aanpak niet goed is; persoonlijk zou ik het in ieder geval nooit zo doen. Ik gebruik een splitsmacro, die elke brief opslaat onder een eigen naam (eerste alinea, maar dat kun je veranderen natuurlijk) en dat opslaan kun je uiteraard ook doen als PDF, dan hoef je de hele printroutine niet te gebruiken. Lijkt mij veiliger en beter. Dit is de macro:

Code:
Sub Splitter()
'------------------------------------------------------------------------------------------------------------------
' splitter Macro
' Macro created by Doug Robbins to save each letter created by a mailmerge as a separate file.
' 20140102 Aangepast door OctaFish om documenten los op te slaan m.b.v. de naam in de 1e alinea.
' 20141210 Macro gebruikt nu een functie om op te slaan in een aparte map op de desktop van de user.
'------------------------------------------------------------------------------------------------------------------
Dim Letters As Integer, Counter As Integer
Dim DocName As String, sRange As String, Pad As String
Dim aRange As Range

    DocName = "Brief "
    Pad = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\Test"
    If CreateFolder(Pad) = False Then
        MsgBox "Het pad kon niet worden aangemaakt; check de gegevens."
        Exit Sub
    End If
    If Not Right(Pad, 1) = Application.PathSeparator Then Pad = Pad & Application.PathSeparator
    
    Letters = ActiveDocument.Sections.Count
    Selection.HomeKey Unit:=wdStory
    Counter = 1
    
    While Counter < Letters
        ActiveDocument.Sections.First.Range.Cut
        Documents.Add
        Selection.Paste
        '-----------------------------------------------------------------------------
        'Naam samenstellen uit 1e alinea van tekst
        '-----------------------------------------------------------------------------
        Set aRange = ActiveDocument.Paragraphs(1).Range
        DocName = aRange.Text
        If Right(DocName, 1) = Chr(13) Or Right(DocName, 1) = Chr(10) Then
            DocName = Left(DocName, Len(DocName) - 1)
        End If
        '-----------------------------------------------------------------------------
        ActiveDocument.Sections(2).PageSetup.SectionStart = wdSectionContinuous
        ActiveDocument.SaveAs FileName:=Pad & DocName & ".docx", FileFormat:=wdFormatDocument, _
        Password:="", AddToRecentFiles:=True, WritePassword:="", EmbedTrueTypeFonts:=False, _
        SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:=False
        ActiveWindow.Close
        Counter = Counter + 1
    Wend

End Sub

Kijk maar of je er wat aan hebt.
 
OctaFish bedankt. Je geeft een heel andere benadering die me ook aanspreekt. Ik ga die verder bestuderen en bekijk of/wat ik daar van kan over nemen.

Intussen heb ik, op basis van mijn benadering ook een oplossing voor mijn probleem gevonden. Het probleem lijkt te zitten in het feit dat ik paginanummers heb gebruikt terwijl het een document met een aantal secties is. Daar raakt Word of Print to PDF blijkbaar van in de war. Als ik gebruik maak van pagina en sectienummers, dus niet print pagina "3-5" maar print pagina "1s2-1s3" dan gaat het wel goed. Op deze manier kan je steeds een sectie printen. Voor sectie q wordt dat dan "1sq-2sq". En dat werkt in mijn macro ook.
 
Je mag van mij best vasthouden aan jouw oplossing, maar zelf kies ik toch voor de mijne, want die is a) makkelijker en b) een stuk betrouwbaarder :). En vermoedelijk ook nog eens sneller, maar dat heb ik niet getest.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan