Αυτός ο οδηγός θα σε βοηθήσει να ξεκινήσεις με τα στοιχεία PDFium VCL μέσα σε λίγα μόνο λεπτά
Pdf του TPdfView ώστε να δείχνει στο στοιχείο TPdfΑπλή φόρτωση PDF
// Φόρτωση ενός αρχείου PDF
Pdf1.FileName := 'C:\Sample.pdf';
Pdf1.Active := True;
ShowMessage('Pages: ' + IntToStr(Pdf1.PageCount));
// Ή φόρτωση από ροή μνήμης
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;
// Μετάβαση στην επόμενη σελίδα
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 με κείμενο
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;
// Ανάγνωση μεταδεδομένων εγγράφου
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)));
// Άνοιγμα PDF με προστασία κωδικού
Pdf1.FileName := 'C:\Protected.pdf';
Pdf1.Password := 'mypassword';
Pdf1.Active := True;
Για PDF πολλών GB ή απομακρυσμένες πηγές / πηγές με βάση δεδομένων, χρησιμοποίησε
LoadCustomDocument ώστε το PDFium να τραβά μπλοκ κατ' απαίτηση
αντί να αποθηκεύει ολόκληρο το αρχείο στη μνήμη
var
FileStream: TFileStream;
begin
FileStream := TFileStream.Create('C:\Huge.pdf', fmOpenRead or fmShareDenyWrite);
Pdf1.LoadCustomDocument(FileStream, True); // AOwnsStream
Pdf1.Active := True;
end;
FitMode κρατά τα μεγάλα έγγραφα αυτόματα πλαισιωμένα
στο Resize και όταν αλλάζει η τρέχουσα σελίδα
PdfView1.FitMode := pfmFitPage; // ολόκληρη σελίδα στο παράθυρο προβολής
// pfmFitWidth — το πλάτος της σελίδας ταιριάζει με το πλάτος του παραθύρου προβολής
// pfmActualSize — 100%
// pfmNone — χειροκίνητο ζουμ
// μοτίβο προβολέα σκοτεινής λειτουργίας: σκοτεινή περιοχή κύλισης, PDF σε χρώμα χαρτιού
PdfView1.Color := clBlack;
PdfView1.PageColor := clWhite;
HighlightSearchText σαρώνει την τρέχουσα σελίδα προβολής και
ζωγραφίζει μια μάσκα HighlightColor πάνω σε κάθε αντιστοίχιση σε κάθε
ανανέωση
var
MatchCount: Integer;
begin
PdfView1.HighlightColor := clYellow;
MatchCount := PdfView1.HighlightSearchText('invoice');
Status.Caption := IntToStr(MatchCount) + ' matches';
end;
// Η μετάβαση σε άλλη σελίδα καθαρίζει αυτόματα την επισήμανση
SaveAsPdfA επεξεργάζεται εκ των υστέρων τη βασική αποθήκευση με
μια σταδιακή ενημέρωση που εισάγει μια ροή μεταδεδομένων XMP, ένα sRGB
ICC OutputIntent και έναν ενημερωμένο κατάλογο εγγράφου
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;