Delphi 7~13 및 C++ Builder DLL 없음

sgcPDF, Delphi와 C++ Builder를 위한 순수 파스칼 PDF 라이브러리

순수하게 Object Pascal로 작성된 컴포넌트로 PDF 파일을 생성, 편집, 보기, 렌더링, 추출, 암호화, 서명, 가림 처리, 검증할 수 있습니다. 배포할 DLL이나 외부 PDF 엔진이 전혀 필요하지 않습니다. 파서, 라이터, 폰트, 이미지 디코더, 렌더러, 암호화 기능이 모두 앱에 컴파일되어 포함됩니다. 코어는 Windows, Linux, macOS, iOS, Android에서 동작하며, VCL 뷰어 컨트롤, FireMonkey 뷰어, 서버용 래스터 렌더러를 제공합니다. 전체 소스 코드가 포함됩니다.

전체 소스 코드
Windows, Linux, macOS, iOS & Android
Delphi 7 → 13, C++ Builder
NuGet의 .NET 버전
외부 종속성 없음
20 컴포넌트 sgcPDF_*.pas PDF 1.0~2.0, 읽기와 쓰기, 순수 Object Pascal.
생성 TsgcPDFDocument
편집 TsgcPDFEditor
보기 TsgcPDFViewerControl
추출 TsgcPDFTextExtractor
서명 PAdES B-B to B-LTA
PDF/A & PDF/UA TsgcPDFAValidator
가림 처리 TsgcPDFRedactor
20 팔레트 컴포넌트 문서, 편집기, 뷰어, 추출기, 서명
0 배포할 DLL 파서, 렌더러, 폰트, 암호화까지 모두 Pascal로
5 운영체제 Windows, Linux, macOS, iOS, Android
8 PDF/A 준수 레벨 PDF/A-1, 2, 3(레벨 a 및 b), PDF/A-4 및 4f, 그리고 PDF/UA-1 및 PDF/UA-2

먼저 알아둘 만한 세 가지

대상 서버에 설치할 것이 전혀 없습니다

sgcPDF는 PDFium, Ghostscript, COM 서버나 다른 네이티브 라이브러리를 감싸지 않습니다. 파싱, 쓰기, 폰트 임베딩과 서브셋화, 이미지 디코딩, 렌더링, 암호화, 서명이 모두 sgcPDF_*.pas 유닛에 구현되어 있어, 실행 파일 자체가 배포의 전부입니다.

코어 유닛은 VCL나 FMX에 종속되지 않아, 동일한 코드가 콘솔 도구, Windows 서비스, Linux 데몬, 웹 서버 어디서나 동작합니다.

플랫폼 범위

어떤 부분이 어디서 실행되는가

생성, 편집, 텍스트/이미지 추출, 양식, 암호화, 서명, 가림 처리, PDF/A, 래스터 렌더러는 Windows와 Linux64, 그리고 macOS, iOS, Android용으로 컴파일됩니다. GDI 렌더러, 내보내기, VCL 뷰어 컨트롤은 Windows 전용이며, TsgcPDFViewerFMX는 Windows, macOS, iOS, Android를 대상으로 합니다. .NET에서는 뷰어 컨트롤을 WinForms, WPF, Avalonia용으로 제공합니다.

고급 서명

sgcSign을 통한 PAdES, 기본 서명은 내장

sgcPDF는 PFX 인증서로 단독으로 PDF 파일을 서명하고 검증합니다. PAdES 기본 레벨 B-B, B-T, B-LT, B-LTA와 스마트카드, Windows 인증서 저장소 또는 클라우드 HSM에 보관된 키의 경우, 선택적인 TsgcPDFPAdESSigner 브리지가 별도로 라이선스되는 sgcSign의 키 공급자를 사용합니다.

PDF 수명주기 전반을 위한 하나의 라이브러리

처음 작성하는 페이지부터 서명, 보관, 가림 처리된 최종 파일을 전달할 때까지, 모든 단계가 동일한 Object Pascal 코드 기반에서 실행됩니다.

생성: 코드, HTML 또는 캔버스로 만드는 문서

페이지, 14개 표준 폰트 또는 임베딩/서브셋된 TrueType·OpenType 폰트로 된 텍스트, 이미지(JPEG, PNG, BMP, TIFF), 선, 곱선, 그라데이션, 페이지를 걸치는 표, 바코드와 QR 코드, 스레드형 답글이 있는 주석과 댓글, 북마크, 선택적 콘텐츠 레이어. 최종 사용자도 뷰어에서 바로 마우스로 주석을 추가, 편집하고 답글을 달 수 있습니다. TsgcPDFHTMLRenderer는 CSS가 포함된 HTML을 페이지 단위 PDF로 변환하며, TsgcPDFCanvas와 EMF 재생은 기존 드로잉 코드를 변환합니다.

기능 보기 →

편집: 직접 작성하지 않은 파일 변경

워터마크, 머리글/바닥글, 페이지 번호와 스탬프, 병합과 분할, 추출, 삽입, 삭제, 회전, 페이지 재배치. 증분 저장은 원본 파일에 새 리비전을 추가하므로 이전 서명이 그대로 유효합니다.

기능 보기 →

보기 및 렌더링: VCL, FMX, WinForms, WPF, Avalonia 뷰어와 서버용 렌더러

자동 축소판, 개요, 댓글 패널, 텍스트 선택, 검색, 양식 입력, 인쇄을 지원하는 VCL 뷰어 컨트롤, Windows·macOS·iOS·Android용 영역 확대를 지원하는 FireMonkey 뷰어, WinForms, WPF, Avalonia용 .NET 뷰어, GDI 없이 Windows와 Linux 서버에서 페이지를 PNG로 변환하는 순수 Pascal 래스터 렌더러.

기능 보기 →

추출: 텍스트, 위치, 이미지

페이지별 또는 문서 전체의 일반 텍스트, 좌표·폰트·크기가 포함된 텍스트 조각, 페이지 이미지를 PNG·JPEG·BMP로 디코딩합니다. 디코더는 Flate, LZW, ASCII85, RunLength, JPEG(기본/프로그레시브), JPEG 2000, CCITT G3/G4, JBIG2를 지원합니다.

기능 보기 →

보호 및 서명: 암호화, 서명, 가림 처리

RC4 40/128, AES-128, AES-256 암호 암호화, 인증서(공개키) 암호화, 표시 필드와 타임스탬프가 있는 디지털 서명, sgcSign 브리지를 통한 PAdES B-B/B-T/B-LT/B-LTA, 서명 검증, 그리고 단순히 가리는 것이 아니라 내용을 제거하는 진정한 가림 처리.

기능 보기 →

준수: PDF/A, PDF/UA, 태그 PDF, Factur-X

내장 검증기를 갖춘 레벨 a/b의 PDF/A-1·PDF/A-2·PDF/A-3 출력과 PDF/A-4, PDF/A-4f, 구조 트리와 대체 텍스트가 포함된 태그 PDF, PDF/UA-1 및 PDF/UA-2 출력과 검사, PDF/A-3 및 PDF/A-4f 관계가 포함된 첨부 파일, Factur-X·ZUGFeRD·XRechnung 전자 인보이스 내장.

기능 보기 →

인쇄: 페이지 박스, 임포지션, 마크

미디어, 크롭, 블리드, 트림, 아트 박스, 임포지션을 위해 폼으로 배치하는 다른 문서의 페이지, 크롭·블리드·등록 마크, Separation 및 DeviceN 색상, 겹쳐찍기 미리 보기, PDF/X 출력 의도를 Delphi와 .NET에서 지원합니다.

기능 보기 →

몇 줄의 Delphi 코드

이 페이지의 모든 예제는 sgcPDF 소스로 컴파일하여 실행한 프로그램에서 발취했습니다. 좌표는 PDF 포인트(1/72인치) 단위이며, 원점은 페이지 왼쪽 아래입니다.

procedure CreateHelloPDF(const AFileName: string);
var
  oPDF: TsgcPDFDocument;
  oPage: TsgcPDFPage;
begin
  oPDF := TsgcPDFDocument.Create;
  try
    oPDF.Info.Title := 'Hello sgcPDF';
    // A4 portrait: 595 x 842 points, origin at the bottom left corner
    oPage := oPDF.AddPage(595, 842);
    oPage.DrawTextColor('Hello sgcPDF', 50, 780, sfHelveticaBold, 24, 0, 0.2, 0.6);
    oPage.DrawLine(50, 770, 545, 770, 1.5);
    oPage.DrawText('A PDF written in pure Pascal.', 50, 740, sfHelvetica, 12);
    oPDF.SaveToFile(AFileName);
  finally
    oPDF.Free;
  end;
end;
procedure StampExistingPDF(const AInput, AOutput: string);
var
  oEditor: TsgcPDFEditor;
  oWatermark: TsgcPDFWatermarkOptions;
begin
  oEditor := TsgcPDFEditor.Create;
  try
    oEditor.LoadFromFile(AInput);
    oWatermark.Text := 'CONFIDENTIAL';
    oWatermark.Font := sfHelveticaBold;
    oWatermark.FontSize := 48;
    oWatermark.Rotation := 45;
    oWatermark.Opacity := 0.3;
    oWatermark.R := 0.5;
    oWatermark.G := 0.5;
    oWatermark.B := 0.5;
    oEditor.AddWatermarkAllPages(oWatermark);
    oEditor.AddPageNumbers(sfHelvetica, 10, 'Page %d of %d');
    oEditor.SaveToFile(AOutput);
  finally
    oEditor.Free;
  end;
end;
procedure PrintAllText(const AFileName: string);
var
  oPDF: TsgcPDFDocument;
  i: Integer;
begin
  oPDF := TsgcPDFDocument.Create;
  try
    oPDF.LoadFromFile(AFileName);
    for i := 0 to oPDF.PageCount - 1 do
      WriteLn(string(oPDF.ExtractTextW(i)));
  finally
    oPDF.Free;
  end;
end;
procedure RenderPageToPNG(const APDFFile, APNGFile: string; ADPI: Integer);
var
  oPDF: TsgcPDFDocument;
  oRenderer: TsgcPDFRendererRaster;
  oPage: TsgcPDFPage;
begin
  oPDF := TsgcPDFDocument.Create;
  try
    oPDF.LoadFromFile(APDFFile);
    oPage := oPDF.Pages[0];
    // pure Pascal rasterizer: no GDI, runs on Windows and Linux servers
    oRenderer := TsgcPDFRendererRaster.Create;
    try
      oRenderer.RenderPageToPNG(oPDF.Parser, oPage.PageDict,
        Round(oPage.Width * ADPI / 72), Round(oPage.Height * ADPI / 72),
        APNGFile);
    finally
      oRenderer.Free;
    end;
  finally
    oPDF.Free;
  end;
end;
procedure CreateTicketPDF(const aFileName: string);
var
  oPDF: TsgcPDFDocument;
  oPage: TsgcPDFPage;
  oSymbol: TsgcPDFBarcodeSymbol;
begin
  oPDF := TsgcPDFDocument.Create(nil);
  oSymbol := TsgcPDFBarcodeSymbol.Create;
  try
    oPDF.Info.Title := 'Ticket';
    oPage := oPDF.AddPage(595, 842);
    oPage.DrawText('Ticket 2026-001', 50, 780, sfHelveticaBold, 24);
    oPage.DrawLine(50, 770, 545, 770, 1.5);
    // Code 128 barcode in a 250 x 60 point box, black on white
    oSymbol.Symbology := bcCode128;
    oSymbol.Text := 'TKT-2026-001';
    oSymbol.DrawToPDF(oPage, 50, 680, 250, 60, $000000, $FFFFFF);
    // QR Code in a 120 x 120 point box
    oSymbol.Symbology := bcQRCode;
    oSymbol.QRErrorLevel := qrecQ;
    oSymbol.Text := 'https://www.esegece.com';
    oSymbol.DrawToPDF(oPage, 50, 540, 120, 120, $000000, $FFFFFF);
    oPDF.SaveToFile(aFileName);
  finally
    oSymbol.Free;
    oPDF.Free;
  end;
end;

바코드를 벡터 그래픽으로 페이지에 바로 그립니다. 유닛: sgcPDF_Document, sgcPDF_Barcodes, sgcPDF_Barcode_Symbol. TsgcPDFBarcodeSymbol과 바코드 가이드를 참고하십시오.

#include <System.hpp>
#include "sgcPDF_Document.hpp"
#include "sgcPDF_Barcodes.hpp"
#include "sgcPDF_Barcode_Symbol.hpp"

void __fastcall CreateTicketPDF(const String aFileName)
{
  TsgcPDFDocument *oPDF = new TsgcPDFDocument(NULL);
  TsgcPDFBarcodeSymbol *oSymbol = new TsgcPDFBarcodeSymbol();
  try
  {
    oPDF->Info->Title = "Ticket";
    TsgcPDFPage *oPage = oPDF->AddPage(595, 842);
    oPage->DrawText("Ticket 2026-001", 50, 780, sfHelveticaBold, 24);
    oPage->DrawLine(50, 770, 545, 770, 1.5);
    // Code 128 barcode in a 250 x 60 point box, black on white
    oSymbol->Symbology = bcCode128;
    oSymbol->Text = "TKT-2026-001";
    oSymbol->DrawToPDF(oPage, 50, 680, 250, 60, 0x000000, 0xFFFFFF);
    // QR Code in a 120 x 120 point box
    oSymbol->Symbology = bcQRCode;
    oSymbol->QRErrorLevel = qrecQ;
    oSymbol->Text = "https://www.esegece.com";
    oSymbol->DrawToPDF(oPage, 50, 540, 120, 120, 0x000000, 0xFFFFFF);
    oPDF->SaveToFile(aFileName);
  }
  __finally
  {
    delete oSymbol;
    delete oPDF;
  }
}

sgcPDF 소스에서 생성한 C++ Builder 헤더로 컴파일했습니다. TsgcPDFBarcodeSymbol 항목과 C++ Builder 참고 사항을 참고하십시오.

using System;
using esegece.sgcPDF;

class Program
{
    static void Main()
    {
        using (TsgcPDFDocument oDoc = new TsgcPDFDocument())
        {
            oDoc.Info.Title = "Ticket";
            TsgcPDFPage oPage = oDoc.AddPage(595, 842);
            oPage.DrawText("Ticket 2026-001", 50, 780, TsgcPDFStandardFont.sfHelveticaBold, 24);
            oPage.DrawLine(50, 770, 545, 770, 1.5);

            // Code 128 barcode in a 250 x 60 point box, black on white
            TsgcPDFBarcodeSymbol oSymbol = new TsgcPDFBarcodeSymbol();
            oSymbol.Symbology = TsgcPDFBarcodeType.bcCode128;
            oSymbol.Text = "TKT-2026-001";
            oSymbol.DrawToPDF(oPage, 50, 680, 250, 60, 0x000000, 0xFFFFFF);

            // QR Code in a 120 x 120 point box
            oSymbol.Symbology = TsgcPDFBarcodeType.bcQRCode;
            oSymbol.QRErrorLevel = TsgcPDFQRErrorLevel.qrecQ;
            oSymbol.Text = "https://www.esegece.com";
            oSymbol.DrawToPDF(oPage, 50, 540, 120, 120, 0x000000, 0xFFFFFF);

            oDoc.SaveToFile("ticket.pdf");
        }
    }
}

.NET 클래스는 WinForms나 GDI에 의존하지 않으므로 서버와 콘솔 도구에서도 실행됩니다. .NET API 차이점을 참고하십시오.

using System;
using esegece.sgcPDF;

class Program
{
    static void Main()
    {
        // Create a one page A4 document and save it
        using (TsgcPDFDocument oDoc = new TsgcPDFDocument())
        {
            TsgcPDFPage oPage = oDoc.AddPage(595, 842);
            oPage.DrawText("Hello from sgcPDF", 50, 780, TsgcPDFStandardFont.sfHelveticaBold, 24);
            oPage.DrawLine(50, 770, 545, 770, 1.0);
            oPage.DrawText("Created with sgcPDF .NET.", 50, 740, TsgcPDFStandardFont.sfHelvetica, 12);
            oDoc.SaveToFile("hello.pdf");
        }

        // Load it again and extract the text of every page
        using (TsgcPDFDocument oDoc = new TsgcPDFDocument())
        {
            oDoc.LoadFromFile("hello.pdf");
            for (int i = 0; i < oDoc.PageCount(); i++)
                Console.WriteLine(oDoc.ExtractTextW(i));
        }
    }
}
Code 128, Code 39, EAN-13, EAN-8, UPC-A, ITF, Codabar, QR Code, DataMatrix, PDF417, GS1-128 심볼을 보여 주는 TsgcPDFBarcodeControl
하나의 바코드 컨트롤로 QR Code, DataMatrix, PDF417을 포함한 11가지 심볼 체계 지원

sgcPDF 팔레트의 20개 컴포넌트

폼이나 데이터 모듈에 놓거나 코드에서 생성하세요. 모든 컴포넌트는 폼 없이도 콘솔 앱과 서비스에서 사용할 수 있습니다.

모든 컴포넌트

체험판 및 라이선스

sgcPDF는 단독으로 라이선스되며 개발자 1인 기준 €249부터 시작합니다. 모든 라이선스에는 전체 소스 코드, 1년 업데이트, 50%에서 70%까지 갱신 할인이 포함됩니다. 먼저 체험해 보려면 무료 체험판을 다운로드하세요. sgcPDF는 sgcUI Enterprise와 All-Access 번들에도 포함됩니다.

sgcPDF

€249

Single, Team, Site 라이선스를 제공합니다.

  • 20개 컴포넌트 전체와 sgcPDF_*.pas 유닛
  • Delphi 7~13 및 C++ Builder
  • Windows, Linux, macOS, iOS, Android
  • 전체 소스 코드
  • 1년 업데이트

sgcPDF .NET

€249

Single, Team, Site 라이선스를 제공합니다.

  • NuGet: esegece.sgcPDF
  • .NET Standard 2.0, .NET Framework 4.7.2, .NET 6, .NET 8, .NET 9, .NET 10
  • 전체 소스 코드
  • 1년 업데이트

.NET용 sgcPDF

sgcPDF는 Delphi 라이브러리와 동일한 클래스 이름을 사용하는 완전 관리형 C# 포트로 .NET에서도 제공됩니다. .NET Standard 2.0, .NET Framework 4.7.2, .NET 6, .NET 8, .NET 9, .NET 10용 NuGet 패키지로 배포되며 네이티브 DLL이 필요하지 않습니다.

esegece.sgcPDF

라이브러리: 문서 모델, 파서, writer, 편집기, 렌더링 코어, 폰트, 이미지, 폼, 서명, 암호화, 텍스트 및 이미지 추출, 프리프레스, PDF/A(PDF/A-4 포함), PDF/UA-2.

esegece.sgcPDF.WinForms

Windows Forms 애드온: GDI 렌더러와 캔버스, EMF 재생, 페이지의 이미지 내보내기, TsgcPDFViewerControl(대화형 주석과 댓글 답글 포함), TsgcPDFThumbnailView, TsgcPDFOutlineView 컨트롤, 페이지 박스와 측정 도구 포함.

esegece.sgcPDF.Wpf

WPF 뷰어: TsgcWpfPDFViewer, TsgcWpfPDFThumbnailView, TsgcWpfPDFOutlineView이며, 확대 모드, 영역 확대, 텍스트 선택, 검색, 링크, 페이지 박스, 측정 도구를 지원합니다. 주석과 양식 필드는 표시됩니다.

esegece.sgcPDF.Avalonia

Avalonia 뷰어: TsgcAvaloniaPDFViewer, TsgcAvaloniaPDFThumbnailView, TsgcAvaloniaPDFOutlineView이며, WPF 뷰어와 같은 보기 기능에 핀치 확대가 추가됩니다.

esegece.sgcPDF.sgcSign

sgcSign .NET에 대한 선택적 브리지: TsgcPDFPAdESSigner는 모든 sgcSign 키 공급자로 PAdES B-B, B-T, B-LT, B-LTA에 서명합니다.

dotnet add package esegece.sgcPDF
dotnet add package esegece.sgcPDF.WinForms
dotnet add package esegece.sgcPDF.Wpf
dotnet add package esegece.sgcPDF.Avalonia
dotnet add package esegece.sgcPDF.sgcSign

모든 패키지는 .Community 접미사가 붙은 무료 Community 버전으로도 제공됩니다. 예를 들어 dotnet add package esegece.sgcPDF.Community입니다. 두 버전 모두 동일한 기능을 제공합니다. Community 버전은 연간 총매출이 100만 유로 미만이고 개발자가 5명 이하인 개인 및 조직에게 무료이며, 시작 시 짧은 알림을 표시합니다. 등록 버전은 이 알림을 제거하고 상업용 라이선스를 포함합니다.

NuGet에서 보기 .NET 다운로드

sgcPDF는 sgcUI Enterprise에 포함됩니다

sgcPDF는 Delphi와 C++ Builder 컴포넌트 스위트인 sgcUI에 속하며, 다른 모든 sgcUI 제품과 함께 sgcUI Enterprise 에디션에 포함됩니다. 개별 패키지로도 제공됩니다. 가격은 sgcUI 가격 페이지와 sgcPDF 가격 페이지에서 확인할 수 있습니다.

sgcReports

sgcPDF를 통해 완성된 리포트를 PDF로 내보내는 리포트 디자이너 및 엔진입니다.

sgcReports 살펴보기 →

sgcGrid

Delphi와 C++ Builder용 고성능 데이터 그리드입니다.

sgcGrid 살펴보기 →

sgcCharts

대시보드와 리포트를 위한 차트입니다.

sgcCharts 살펴보기 →

sgcDashboard

대시보드를 위한 타일, KPI, 레이아웃입니다.

sgcDashboard 살펴보기 →

온라인 도움말: 소개, 빠른 시작, 설치, .NET 설치.

eSeGeCe의 다른 제품

sgcPDF를 다른 Delphi 및 C++ Builder 컴포넌트 라이브러리와 함께 사용해 보세요.

sgcSign

기업용 디지털 서명. XAdES, PAdES, CAdES, ASiC를 지원하며 10개 키 공급자와 21개 EU 국가 프로파일을 갖첔습니다.

자세히 보기 →

sgcWebSockets

Delphi, C++ Builder, .NET용 기업용 WebSocket, HTTP/2, MQTT, AMQP, WebRTC 컴포넌트.

자세히 보기 →

sgcHTML

Bootstrap와 htmx 기반의 Delphi 및 C++ Builder용 서버측 HTML/UI 컴포넌트.

자세히 보기 →

sgcCrypto

순수 Object Pascal로 구현된 현대적 암호학: AES-GCM, SHA-3, Ed25519, X.509, 포스트 퀴텀 ML-KEM 및 ML-DSA.

자세히 보기 →
3,000+개발자
20+년
761+컴포넌트
30+API 통합
5플랫폼
30일 환불 보장만족하지 않으세요? 구매 후 30일 이내에 전액 환불을 요청하세요. 환불 정책 보기

DLL 없는 PDF

이미 보유한 Delphi 또는 C++ Builder 코드로 PDF 파일을 생성, 보기, 서명, 보관하세요.