PDF splitsen met behulp van Excel VBA

Status
Niet open voor verdere reacties.

Ralbers

Gebruiker
Lid geworden
8 jul 2011
Berichten
190
Goedemiddag,

Ik heb een vba probleem waar jullie mij hopelijk mee kunnen helpen.

Ik krijg wekelijks een pdf bestand van ongeveer 1800 pagina's
Bovenaan iedere pagina staat een Vestigingsnummer
In het hele bestand staan ongeveer 200 vestigingen. Dus iedere vestiging heeft tussen de 6 en 12 pagina's ongeveer.
Het probleem is dat deze pagina's door elkaar staan.
Terwijl ik een pdf moet hebben per vestiging omdat ze geen toegang mogen hebben tot elkaars gegevens.

Op dit moment gebeurt dit handmatig door het hele pdf bestand te printen en deze handmatig te sorteren.
Ik wil hier een macro voor maken zodat dit automatisch kan.

Nu heb ik al een macro geschreven die kan bepalen welke pagina's geprint moet worden bij welke vestiging.
Zo weet ik dat bijvoorbeeld bij vestiging A pagina 3, 5 en 8 van het pdf bestand als 1 pdf opgeslagen moet worden. Vestiging B heeft vervolgens pagina 4, 6 en 25 enzovoort.

Ik weet alleen niet hoe ik de pdf vervolgens kan splitsen volgens de door mij opgestelde lijst.
Ik heb de beschikking over Adobe acrobat X pro en als ik het goed heb moet het mogelijk zijn daar met vba mee te communiceren.
Ik weet alleen niet hoe.

Heeft iemand hier ervaring mee?

Groeten Roel
 
De gegevens in het PDF-bestand komen waarschijnlijk uit een programma/bestand dat ook andere exportmogelijkheden heeft dan PDF.
Ga daar achterheen.
 
Laatst bewerkt:
Klopt
Maar dit is een externe partij. Het is helaas niet mogelijk de bestanden anders op te vragen.


Ondertussen heb ik zelf al even gegoogled en heb ik dit gevonden
http://www.utteraccess.com/forum/extract-pages-pdf-t2007085.html
Code:
Sub test_with_PDF()
'   Original code found at:
'   http://social.msdn.microsoft.com/Forums/en-US/2c2bb856-d8d9-4624-80a1-2425a5660e8c/how-to-use-VBA-to-view-pdf-file-and-use-an-ocr-object
'   The original subroutine concatenated all of the found text and displayed it.
'   This modification searches each word in a PDF for a specific string, and lets
'   you know each time the word is encountered.
    Dim objApp As Object
    Dim objPDDoc As Object
    Dim objjso As Object
    Dim wordsCount As Long
    Dim page As Long
    Dim i As Long
    Dim strData As String
    Dim strFileName As String
    
    strFileName = "H:\Corporate Phone Book.pdf"
    
    Set objApp = CreateObject("AcroExch.App")
    Set objPDDoc = CreateObject("AcroExch.PDDoc")
    'AD.1 open file, if =false file is damage
    If objPDDoc.Open(strFileName) Then
        Set objjso = objPDDoc.GetJSObject
        For page = 0 To objPDDoc.GetNumPages - 1
            wordsCount = objjso.GetPageNumWords(page)
            For i = 0 To wordsCount
                'AD.2 Set text to variable strData
                If objjso.getPageNthWord(page, i) = "DENNIS" Then
                    MsgBox "I found a Dennis on page " & page
                End If
            Next i
        Next
        MsgBox "Done"
    Else
        MsgBox "error!"
    End If
End Sub

en

http://stackoverflow.com/questions/...arge-pdf-into-multiple-documents-with-keyword
Code:
// Used to register all DLL assemblies.
WorkRegistry.Reset();

String inputFilePath = Program.RootPath + "\\" + "1.pdf";
String outputFileName = "Output";
int[] splitIndex = new int[3] { 1, 3, 5 }; // Valid value for each index: 1 to (Page Count - 1).

// Create output PDF file path list
List<String> outputFilePaths = new List<String>();
for (int i = 0; i <= splitIndex.Length; i++)
{
        outputFilePaths.Add(Program.RootPath + "\\" + outputFileName + "_" + i.ToString() + ".pdf");
}

// Split input PDF file to 4 files:
// File 0: page 0.
// File 1: page 1 ~ 2.
// File 2: page 3 ~ 4.
// File 3: page 5 ~ the last page.
PDFDocument.SplitDocument(inputFilePath, splitIndex, outputFilePaths.ToArray());

Maar het is me nog niet gelukt om dit naar een werkend resultaat te breien
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan