Importieren mehrerer PDF-DateienWarnung: Ich bin neu in der Codierung!
Ich habe ungefähr 500 PDF-Dateien mit tabellarischen Daten, die ich importieren möchte. Ich habe es geschafft, ein Skript zu erstellen, das die Daten extrahiert, stapelt und transponiert sowie an eine Tabelle anhängt / verkettet (die ich " final.jmp "). Jedes PDF wird durch eine Zeile in dargestellt final.jmp . Hier ist die Workflow und Probleme Ich identifizierte:
- Da ich nicht herausfinden konnte, wie mehrere PDFs importiert werden, musste ich jedes PDF einzeln importieren, indem ich den * .pdf-Dateinamen änderte, der in das Skript importiert werden soll (das in eingebettet ist) final.jmp) .
- Nach jedem Import muss ich alle dabei erstellten und geöffneten Zwischentabellen schließen und die resultierende Tabelle als neu speichern final.jmp .
- Ich öffne dann wieder final.jmp Bearbeiten Sie das Skript in den neuen PDF-Dateinamen, importieren Sie ein neues PDF und so weiter und so fort.
Meine Frage ::
Ist es möglich, das Skript wiederholt auszuführen und jedes Mal ein neues PDF auszuwählen, bis alle PDFs aus einem Ordner importiert und in einer endgültigen Tabelle zusammengefasst wurden?
Open(
"C:\example folder\example.pdf",
PDF Tables(
Table(
table name( "1" ),
add rows( page( 1 ), Rect( 2.0419, 0.9776, 3.1993, 1.1726 ) ),
add rows( page( 1 ), Rect( 1.2137, 3.7819, 6.3603, 3.9069 ) ),
add rows( page( 1 ), Rect( 0.8717, 3.9636, 3.0796, 4.0886 ) ),
add rows(
page( 1 ),
Rect( 0.9853, 4.1436, 3.0029, 4.2686 ),
column borders( 0.9853, 2.5172, 3.0029 )
),
add rows( page( 1 ), Rect( 4.581, 4.1436, 7.297, 4.2686 ) ),
add rows(
page( 1 ),
Rect( 0.8883, 4.4136, 4.6374, 4.5386 ),
column borders( 0.8883, 1.9603, 4.6374 )
),
add rows( page( 1 ), Rect( 0.7556, 4.7979, 7.5908, 8.2654 ) )
)
)
);
Data Table( "1" ) << Stack(
columns( :Column 3, :Column 4, :Column 5, :Column 6 ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Output table("2")
);
Data Table( "2" ) << Transpose(
columns( :Data ),
Output Table( "Final" )
)
DatentabelleSkriptingBetreff: Importieren mehrerer PDF-DateienMöglicher Durchfluss:
- Erstellen Sie eine Funktion für die Verarbeitung einer einzelnen PDF-Datei
- Holen Sie sich alle Dateien im Verzeichnis pdf Verzeichnis
- Verwenden Sie die erste Datei im Verzeichnis, um eine "Collector" -Datentabelle zu erstellen
- Schleife über den Rest der Dateien
- Verketten Sie transponierte Tabellen mit der erstellten und schließenden Collector-Datentabelle
Vielleicht könnte so etwas funktionieren:
Names Default To Here(1);
//directory where .pdf files exist
pdfDirectory = "C:\example folder\";
//function to open stack and transpose pdf file
stackTransposePdfFile = function({filePath}, {Default Local},
dtTemp = Open(
filePath,
PDF Tables(
Table(
table name("1"),
add rows(page(1), Rect(2.0419, 0.9776, 3.1993, 1.1726)),
add rows(page(1), Rect(1.2137, 3.7819, 6.3603, 3.9069)),
add rows(page(1), Rect(0.8717, 3.9636, 3.0796, 4.0886)),
add rows(page(1), Rect(0.9853, 4.1436, 3.0029, 4.2686), column borders(0.9853, 2.5172, 3.0029)),
add rows(page(1), Rect(4.581, 4.1436, 7.297, 4.2686)),
add rows(page(1), Rect(0.8883, 4.4136, 4.6374, 4.5386), column borders(0.8883, 1.9603, 4.6374)),
add rows(page(1), Rect(0.7556, 4.7979, 7.5908, 8.2654))
)
)
);
//stack data table from pdf
dtTemp_stacked = dtTemp << Stack(
columns(:Column 3, :Column 4, :Column 5, :Column 6),
Source Label Column("Label"),
Stacked Data Column("Data"),
invisible
);
Close(dtTemp, no save); //close table created directly from pdf
//transpose table
dtTemp_transposed = dtTemp_stacked << Transpose(columns(:Data), invisible);
Close(dtTemp_stacked no save); //close stacked table
//return transposed table
return(dtTemp_transposed);
);
//list of files in directory (this assumes that there are only .pdf files)
pdfFile_list = Files In Directory(pdfDirectory);
//use the first table as "collection table"
finalDt = stackTransposePdfFile(pdfDirectory||pdfFile_list[1]);
//loop over files in pdfFile_list starting from second file
For(i = 2, i <= N Items(pdfFile_list), i++,
pdfDt = stackTransposePdfFile(pdfDirectory||pdfFile_list[i]);
finalDt << Concatenate(pdfDt, Append to first table);
Close(pdfDt, no save); //close transposed table
);
Betreff: Importieren mehrerer PDF-DateienDanke - ich weiß nicht, wo ich ohne dieses Forum wäre. Tolles Zeug!