밥탄이 기록일지

CheckMate RPA C# PDF to Excel 변환하기 (Spire.pdf) 본문

CheckMate RPA

CheckMate RPA C# PDF to Excel 변환하기 (Spire.pdf)

밥탄이 2023. 2. 6. 17:41
using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Text;
using Spire.Pdf;

public partial class CustomScript
{
	public void Delay(int ms)
	{
		DateTime dateTimeNow = DateTime.Now;
		TimeSpan duration = new TimeSpan(0, 0, 0, 0, ms);
		DateTime dateTimeAdd = dateTimeNow.Add(duration);
		while (dateTimeAdd >= dateTimeNow)
		{
			System.Windows.Forms.Application.DoEvents();
			dateTimeNow = DateTime.Now;
		}
		return;
	}
	
	
	public void Execute_Code()
	{
		// PDF 문서 선언
		PdfDocument doc = new PdfDocument();
		
		// doc.LoadFromFile("변환 시작할 PDF 파일 경로");
		doc.LoadFromFile(@"C:\Users\Owner\Desktop\새 폴더\0.pdf");
		
		// PDF 문서 로딩 대기시간 << 필수
		Delay(10000);
		
		// doc.SaveToFile("변환 완료할 XLSX 파일 경로", 파일 포맷 지정);
		doc.SaveToFile(@"C:\Users\Owner\Desktop\새 폴더\1.xlsx", FileFormat.XLSX);
		
		// 변환 후 대기시간
		Delay(5000);
	}
}

코드 자체는 Spire.pdf 파일을 이용하여 로딩-변환 완료로 간단하지만

로딩 후 대기시간이 없는 경우 변환이 정상적으로 이루어지지않아 

1. "호출 대상이 예외를 Throw 했습니다. > 0으로 나누려 했습니다."

2. parsing of table 'head' has failed

등의 오류가 발생할 수 있다.

 

본인은 로딩 후 대기시간 증가로 해당 문제를 해결함