여러 PDF 파일의 데이터를 PDF 파일 이름으로 태그가 지정된 하나의 테이블로 가져 오려면 어떻게합니까?안녕,
일관된 형식으로 설정된 100 개 이상의 PDF가 포함 된 폴더가 있습니다. 각 PDF의 파일 이름은 내가 활용하려는 배치 번호를 나타내며 각 PDF에는 추출하려는 특정 데이터 테이블이 있습니다.
내 목표는 모든 PDF에 대해 동일한 데이터 테이블을 추출한 다음 PDF 파일 이름 (배치 번호)으로 태그가 지정된 모든 추출 된 데이터 테이블을 연결하는 것입니다. 마지막으로 연결된 테이블의 열을 분할하고 PDF 파일 이름으로 그룹화하여 최종 테이블을 만들고 싶습니다.
이 작업을 수동으로 수행하고 필요한 최종 테이블을 얻을 수 있지만 모든 PDF에서 개별적으로 테이블을 열고 선택해야하므로 시간이 많이 걸립니다.
따라서 이것을 도울 수있는 JSL이 있는지 궁금합니다.
저는 스크립팅을 처음 접했지만 처음 두 개의 PDF 파일에 필요한 것을 정확히 제공하는 스크립트를 만들 수있었습니다.
//Opening up the first two files (Batch Number 1 & Batch Number 2) from the folder
Open(
"C:\Example folder\Batch 1.pdf",
PDF Tables(
Table(
table name( "Batch 1" ),
add rows( page( 1 ), Rect( 0.4143, 5.3995, 7.5889, 6.6781 ) )
)
)
)
;
Open(
"C:\Example folder\Batch 2.pdf",
PDF Tables(
Table(
table name( "Batch 2" ),
add rows( page( 1 ), Rect( 0.4143, 5.3995, 7.5889, 6.6781 ) )
)
)
)
;
//Concatenating the data for the first 2 batches into one table and adding a source column:
Data Table( "Batch 1" ) << Concatenate(
Data Table( "Batch 2" ),
Create source column,
Output table("Concat")
)
;
//Splitting by the concatenated table by the Characteristic column and grouping by source column (batch number) to create a Final table:
Data Table( "Concat" ) << Split(
Split By( :Characteristic ),
Split( :Value ),
Group( :Source Table ),
Remaining Columns( Drop All ),
Sort by Column Property,
Output table("Final")
)
;
//Close all other tables
Close("Batch 1", no save)
;
Close("Batch 2", no save)
;
Close("Concat", no save)이 스크립트를 조정하여 모든 PDF 파일 (처음 두 개뿐 아니라)을 열어 PDF 파일 이름으로 태그가 지정된 최종 데이터 테이블을 만들어야합니다.
나를 도울 수있는 사람이 있습니까?
감사합니다.
알리시아
데이터 테이블스크립팅Re : 여러 PDF 파일의 데이터를 PDF 파일 이름으로 태그가 지정된 하나의 테이블로 가져 오려면 어떻게합니까?두 가지가 작동하는 경우 코드 데이터 테이블 연결 아마 거기에 도착할 것입니다. FilesInDirectory ()는 필요한 함수일 수 있습니다.
유사한 예가 많이 있습니다. 디렉토리에서 파일을 검색하면 아마도 찾을 수 있습니다.
그래도 안되는지 다시 물어보세요. 가까운 것 같습니다.
Re : 여러 PDF 파일의 데이터를 PDF 파일 이름으로 태그가 지정된 하나의 테이블로 가져 오려면 어떻게합니까?다음은 필요한 단계가 포함 된 예입니다. 의 게시물 안녕하세요. 이러한 것들이 어떻게 작동하는지 이해하는 데 도움이됩니다.
Names Default To Here( 1 );
// Prepare a directory
tempdir = "$TEMP\pdf_test";
If( !Directory Exists( tempdir ),
Create Directory( tempdir ),
file_lst = Files In Directory( tempdir );
For( i = 1, i <= N Items( file_lst ), i++,
Delete File( tempdir || "/" || file_lst[i] )
);
);
// Open sample Table
cdt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// Prepare PDF's
For( i = 1, i <= 10, i++,
jrn = cdt << Journal;
jrn << save pdf( tempdir || "/" || Char( i ) || "_Big Class.pdf" );
jrn << close window;
);
// Read PDF's
file_lst = Files In Directory( tempdir );
table_lst = {};
For( i = 1, i <= N Items( file_lst ), i++,
Insert Into( table_lst, Open( tempdir || "/" || file_lst[i], PDF All Tables() ) )
);
// Concat PDF's
If( N Items( table_lst ) > 1,
result_table = table_lst[1] << concatenate( table_lst[2 :: N Items( table_lst )], Output Table( "ResultTable" ), Create Source Column )
);
// Close single PDF's
For( i = 1, i <= N Items( table_lst ), i++,
Close( table_lst[i], noSave )
);
split_table = result_table << Split(
Split By( :sex ),
Group( :Source Table ),
Split( :age ),
Remaining Columns( Drop All ),
Sort by Column Property, output table("Split_Result")
);Re : 여러 PDF 파일의 데이터를 PDF 파일 이름으로 태그가 지정된 하나의 테이블로 가져 오려면 어떻게합니까?대단히 감사합니다 안녕하세요. 과 조르그 너의 도움으로. 스크립트를 수정할 수 있는지 확인해 보겠습니다. 정말 감사합니다!