PDFium Component Docs

מדריך התחלה מהירה

המדריך הזה יעזור לכם להתחיל לעבוד עם רכיבי PDFium VCL בתוך כמה דקות

שלב 1: יצירת פרויקט חדש

  1. צרו יישום VCL Forms חדש ב-IDE שלכם
  2. שמרו את הפרויקט במיקום נוח

שלב 2: הוספת רכיבים לטופס

  1. פתחו את לוח הרכיבים losLab
  2. גררו רכיב TPdf אל הטופס שלכם
  3. גררו רכיב TPdfView אל הטופס שלכם
  4. קבעו את מאפיין Pdf של TPdfView כך שיפנה אל רכיב TPdf שלכם

שלב 3: טעינת ה-PDF הראשון שלכם

טעינת PDF פשוטה

// Load a PDF file
Pdf1.FileName := 'C:\Sample.pdf';
Pdf1.Active := True;
ShowMessage('Pages: ' + IntToStr(Pdf1.PageCount));

// Or load from memory stream
var
  Stream: TMemoryStream;
begin
  Stream := TMemoryStream.Create;
  try
    Stream.LoadFromFile('C:\Sample.pdf');
    Pdf1.LoadDocument(Stream, True);
    Pdf1.Active := True;
  finally
    Stream.Free;
  end;
end;

שלב 4: פעולות PDF בסיסיות

ניווט בין עמודים

// עבור לדף הבא
if PdfView1.PageNumber < Pdf1.PageCount then
  PdfView1.PageNumber := PdfView1.PageNumber + 1;

// עבור לדף הקודם
if PdfView1.PageNumber > 1 then
  PdfView1.PageNumber := PdfView1.PageNumber - 1;

חילוץ טקסט

// חלץ את כל הטקסט מהדף הנוכחי
Pdf1.PageNumber := 1;
Memo1.Text := Pdf1.Text;

// חלץ טקסט מאזור מלבני
var
  RectText: WString;
begin
  RectText := Pdf1.TextInRectangle(100, 100, 500, 200);
  ShowMessage(RectText);
end;

חיפוש טקסט

// חפש טקסט במסמך
var
  Position: Integer;
begin
  Position := Pdf1.FindFirst('search term');
  if Position >= 0 then
    ShowMessage('Found at position: ' + IntToStr(Position))
  else
    ShowMessage('Not found');
end;

יצירת PDF חדש

// צור PDF חדש עם טקסט
Pdf1.CreateDocument;
Pdf1.Compressed := True; // אפשר דחיסת זרם
Pdf1.Active := True;
Pdf1.AddPage(0, 595, 842); // גודל A4
Pdf1.AddText('Hello World!', 'Arial', 24, 100, 700, clBlack, $FF, 0.0);
Pdf1.SaveAs('C:\NewDocument.pdf');
Pdf1.Active := False;

זום ותצוגה

// קביעת רמת תקריב (1.0 = 100%)
PdfView1.Zoom := 1.5; // 150%

// קביעת מצב תצוגה
PdfView1.DisplayMode := dmSingleContinuous;

// סיבוב עמוד
PdfView1.Rotation := ro90;

שלב 5: מאפייני מסמך

// קרא מטא-נתונים של מסמך
ShowMessage('Title: ' + Pdf1.Title);
ShowMessage('Author: ' + Pdf1.Author);
ShowMessage('Creator: ' + Pdf1.Creator);
ShowMessage('Producer: ' + Pdf1.Producer);
ShowMessage('Pages: ' + IntToStr(Pdf1.PageCount));
ShowMessage('Version: ' + IntToStr(Ord(Pdf1.PdfVersion)));

שלב 6: מסמכים מוגני סיסמה

// פתיחת PDF מוגן בסיסמה
Pdf1.FileName := 'C:\Protected.pdf';
Pdf1.Password := 'mypassword';
Pdf1.Active := True;

שלב 7: מסמכים גדולים (טעינה בזרימה)

עבור PDF בנפח של כמה גיגה-בייט או עבור מקורות מרוחקים או מבוססי מסד נתונים, השתמשו ב-LoadCustomDocument כדי ש-PDFium ישלוף בלוקים לפי דרישה במקום לשמור את כל הקובץ בזיכרון:

var
  FileStream: TFileStream;
begin
  FileStream := TFileStream.Create('C:\Huge.pdf', fmOpenRead or fmShareDenyWrite);
  Pdf1.LoadCustomDocument(FileStream, True); // AOwnsStream
  Pdf1.Active := True;
end;

שלב 8: פריסת עמודים (FitMode של TPdfView)

FitMode שומר על מסמכים ארוכים ממוסגרים באופן אוטומטי בעת Resize וכאשר העמוד הנוכחי משתנה:

PdfView1.FitMode := pfmFitPage; // עמוד שלם באזור התצוגה
// pfmFitWidth — רוחב העמוד תואם לרוחב אזור התצוגה
// pfmActualSize — 100%
// pfmNone — תקריב ידני

// תבנית צופה במצב כהה: אזור גלילה כהה, עמוד PDF לבן כנייר
PdfView1.Color := clBlack;
PdfView1.PageColor := clWhite;

שלב 9: הדגשת חיפוש

HighlightSearchText סורק את העמוד הנוכחי בתצוגה ומצייר מסכת HighlightColor על כל התאמה בכל רענון:

var
  MatchCount: Integer;
begin
  PdfView1.HighlightColor := clYellow;
  MatchCount := PdfView1.HighlightSearchText('invoice');
  Status.Caption := IntToStr(MatchCount) + ' matches';
end;

// מעבר לעמוד אחר מנקה את ההדגשה באופן אוטומטי

שלב 10: פלט ארכיוני PDF/A

SaveAsPdfA מבצע עיבוד לאחר השמירה הבסיסית עם עדכון מצטבר שמוסיף זרם מטא-נתונים של XMP, יעד פלט ICC מסוג sRGB, וקטלוג מסמך מעודכן:

if Pdf1.SaveAsPdfA('C:\Report.pdfa.pdf', pac1b) then
  ShowMessage('Saved PDF/A-1b');

// בדוק תאימות של מסמך נכנס
case Pdf1.PdfAConformance of
  pac1b: Log.Add('PDF/A-1b');
  pacNone: Log.Add('Not PDF/A');
end;

השלבים הבאים