TDBGrid 내보내기 지원
dbGridHotPDFExport 애드온 unit(Lib\addons\DBGrid)은 TDBGrid 데이터셋의 보이는 열과 모든 행을 PDF 테이블로 기록합니다. 자체 THotPDF 문서를 만들고 채우고 저장하므로 그리드만 들어오면 됩니다
진입점
DBGridHotPDFExportToFile(AGrid, AOutputFileName[, AOptions])은 PDF를 파일에 기록합니다DBGridHotPDFExportToStream(AGrid, AOutputStream[, AOptions])은 stream에 기록하며,%TEMP%의 임시 파일을 거칩니다DBGridHotPDFDefaultOptions는 기본값을 담은TDBGridHotPDFExportOptionsrecord를 반환합니다. 포인트 단위 A4(595 x 842), 36포인트 여백, 22포인트 행, 24포인트 헤더 행, 14포인트 제목이 붙은 Arial 9,clBtnFace헤더,$00F5F5F5교대 행TDBGridHotPDFExport은 같은 내보내기를 HotPDF 팔레트 페이지의 컴포넌트로 제공합니다(dbGridHotPDFDesign이 등록).Grid와OutputFileName을 설정한 뒤ExportToFile이나ExportToStream을 호출합니다. 옵션 필드 각각이 published property이고,ResetOptions가 기본값을 복원합니다
내보내는 내용
- 필드가 매핑된 보이는 그리드 열을 그리드 순서대로 제목 캡션과 함께 내보냅니다. 그리드에 columns가 없으면 데이터셋의 보이는 필드를 사용합니다. 열 폭은 인쇄 가능 폭 전체에서 그리드의 비율을 유지합니다
First부터Eof까지 모든 record를 각 필드의DisplayText로 내보냅니다. 셀에 들어가지 않는 텍스트는 잘려...로 끝납니다- 모든 텍스트는
FontName을 쓰며, 이 폰트가 데이터의 글리프를 갖고 있어야 합니다. 기본값인 Arial은 중국어·일본어·한국어 텍스트를 빈 상자로 표시하므로, 그런 데이터에는 Microsoft YaHei 같은 CJK 폰트를 설정하십시오 - 다음 행이 아래 여백을 넘으면 새 페이지가 시작되고 헤더 행이 매 페이지 반복됩니다. 제목(
Title, 없으면 그리드의Name)은IncludeTitle이 True일 때 첫 페이지에 한 번 그려집니다 Title,Author,Subject,Keywords,PDFVersion(기본값 pdf17),PDFACompliance,PDFXCompliance,Compression은 문서에 전달됩니다
데이터셋 상태
- 내보내기는 데이터셋을 훑는 동안
DisableControls를 호출하고 끝나면EnableControls를 호출하므로, 바인딩된 컨트롤이 행마다 다시 그려지지 않습니다 - 현재 record는 bookmark로 먼저 저장하고 마지막에 복원합니다. 내보내기가 실패했을 때도 마찬가지입니다
- nil 그리드, 빈 파일 이름, 데이터셋이 없는 그리드, 비활성 데이터셋, 보이는 데이터 열이 없는 그리드는 False를 반환하는 대신 예외를 일으킵니다
예제
uses
dbGridHotPDFExport;
var
Options: TDBGridHotPDFExportOptions;
begin
Options:= DBGridHotPDFDefaultOptions;
Options.Title:= 'Customers';
Options.PageWidth:= 842; // A4 landscape
Options.PageHeight:= 595;
DBGridHotPDFExportToFile(DBGrid1, 'Customers.pdf', Options);
end;