في هذا البرنامج التعليمي، سنستكشف كيفية إنشاء تطبيق عرض ملفات PDF احترافي باستخدام. PDFium VCL، مكون Delphi قوي يغلف محرك عرض PDFium الخاص بـ Google. يوضح هذا العرض التوضيحي القدرات الأساسية للعرض التي تشكل أساس أي تطبيق PDF.
نظرة عامة
يوضح نموذج "PDF Viewer" الوظائف الأساسية اللازمة لعرض مستندات PDF في تطبيق Delphi. إنه يوفر حلاً كاملاً وجاهزًا للاستخدام لعرض ملفات PDF، مع ميزات مماثلة لقارئات PDF التجارية.
الميزات الرئيسية
- تحميل المستندات. – افتح ملفات PDF مع دعم الحماية بكلمة مرور.
- التنقل بين الصفحات. – أولاً، أزرار "السابق"، "التالي"، "الأول"، و"الأخير" مع اختصارات لوحة المفاتيح.
- عناصر التحكم في التكبير. - مستويات تكبير متعددة، بما في ذلك التكبير ليناسب الصفحة والتكبير ليناسب العرض.
- تدوير الصفحات - قم بتدوير الصفحات 90 درجة إلى اليسار أو اليمين.
- تحديد النص. - حدد وانسخ النص من مستندات PDF.
- علامات مرجعية. - التنقل باستخدام جدول محتويات المستند.
- بحث النص. ابحث عن النص داخل المستند.
- الطباعة. طباعة المستندات مع تحديد نطاق الصفحات.
- حفظ باسم. تصدير المستند إلى ملف PDF جديد.
متطلبات ملف PDFium DLL.
قبل تشغيل أي تطبيق PDFium VCL، يجب تثبيت ملفات PDFium DLL. تقع ملفات DLL في: DLLs مجلد حزمة PDFium VCL:
pdfium32.dllالإصدار 32 بت (حوالي 5 ميجابايت).pdfium64.dllالإصدار 64 بت (حوالي 6 ميجابايت).pdfium32v8.dll– 32 بت مع محرك JavaScript V8 (~23 ميجابايت).pdfium64v8.dll– 64 بت مع محرك JavaScript V8 (~27 ميجابايت).
التثبيت: تشغيل PDFiumVCL\DLLs\CopyDlls.bat بصفتك مسؤولاً. هذا البرنامج النصي يقوم تلقائيًا بنسخ ملفات DLL المناسبة إلى مجلدات النظام في نظام التشغيل Windows:
|
1 2 3 4 5 6 |
@echo off REM On 64-bit Windows: REM - 32-bit DLLs → %SystemRoot%\SysWOW64\ REM - 64-bit DLLs → %SystemRoot%\System32\ REM On 32-bit Windows: REM - 32-bit DLLs → %SystemRoot%\System32\ |
ملاحظة: استخدم ملفات DLL القياسية (pdfium32.dll/pdfium64.dllبالنسبة لمعظم التطبيقات، لا يلزم استخدام إصدارات V8. الإصدارات الخاصة بـ V8 مطلوبة فقط إذا كانت ملفات PDF الخاصة بك تحتوي على JavaScript يتطلب التنفيذ.
المكونات الأساسية.
يستخدم هذا العرض التوضيحي مكونين رئيسيين من PDFium VCL:
|
1 2 |
Pdf: TPdf; // Non-visual component for PDF operations PdfView: TPdfView; // Visual component for rendering PDF pages |
مكون TPdf.
الـ TPdf هذا المكون يتعامل مع جميع عمليات مستندات PDF، بما في ذلك التحميل والحفظ والوصول إلى خصائص المستند مثل البيانات الوصفية والعلامات والمواقع ومعلومات الصفحة.
مكون TPdfView.
الـ TPdfView هذا المكون هو عنصر تحكم مرئي قابل للتمرير يقوم بعرض صفحات PDF مع دعم التمرير السلس والتكبير والتعامل مع تفاعلات المستخدم.
تحميل مستند PDF.
فتح ملف PDF أمر بسيط:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
procedure TFormMain.SpeedButtonOpenPdfClick(Sender: TObject); var Password: string; begin if OpenDialog.Execute then begin Pdf.FileName := OpenDialog.FileName; Pdf.Password := ''; Pdf.PageNumber := 0; try PdfView.Active := True; except on Error: EPdfError do if Error.Message = 'Password required or incorrect password' then begin if InputQuery('Enter Password', 'Password: ', Password) then begin Pdf.Password := Password; PdfView.Active := True; end else raise; end else raise; end; if PdfView.PageCount > 0 then PdfView.PageNumber := 1; end; end; |
التنقل بين الصفحات.
تنفيذ التنقل بين الصفحات بسيط باستخدام. PageNumber التمرير المستمر
|
1 2 3 4 5 6 7 8 9 10 11 |
// Navigate to first page PdfView.PageNumber := 1; // Navigate to last page PdfView.PageNumber := PdfView.PageCount; // Previous page PdfView.PageNumber := PdfView.PageNumber - 1; // Next page PdfView.PageNumber := PdfView.PageNumber + 1; |
التحكم في التكبير.
الـ TPdfView المكون يوفر خيارات تكبير مرنة:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// Set specific zoom levels PdfView.Zoom := 1.0; // 100% PdfView.Zoom := 0.5; // 50% PdfView.Zoom := 2.0; // 200% // Fit to page width PdfView.Zoom := PdfView.PageWidthZoom[PdfView.PageNumber]; // Fit entire page in view PdfView.Zoom := PdfView.PageZoom[PdfView.PageNumber]; // Actual size (based on DPI) PdfView.Zoom := PdfView.ActualSizeZoom[PdfView.PageNumber]; |
تدوير الصفحات
قم بتدوير الصفحات باستخدام Rotation التمرير المستمر
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// Rotate right (clockwise) case PdfView.Rotation of ro0: PdfView.Rotation := ro90; ro90: PdfView.Rotation := ro180; ro180: PdfView.Rotation := ro270; ro270: PdfView.Rotation := ro0; end; // Rotate left (counter-clockwise) case PdfView.Rotation of ro0: PdfView.Rotation := ro270; ro90: PdfView.Rotation := ro0; ro180: PdfView.Rotation := ro90; ro270: PdfView.Rotation := ro180; end; |
عرض معلومات المستند
الوصول إلى بيانات وصف المستند من خلال TPdf المكون:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
procedure TFormMain.SpeedButtonShowInfoClick(Sender: TObject); begin ShowMessage( 'Author: ' + Pdf.Author + #13#10 + 'Creator: ' + Pdf.Creator + #13#10 + 'Keywords: ' + Pdf.Keywords + #13#10 + 'Producer: ' + Pdf.Producer + #13#10 + 'Subject: ' + Pdf.Subject + #13#10 + 'Title: ' + Pdf.Title + #13#10 + 'Creation date: ' + Pdf.CreationDate + #13#10 + 'Modified date: ' + Pdf.ModifiedDate ); end; |
العمل مع الإشارات المرجعية
يعرض النموذج شجرة عرض (TreeView) تحتوي على إشارات مرجعية المستند لتسهيل التنقل:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
procedure TFormMain.AddBookmarks(Node: TTreeNode; Bookmarks: TBookmarks); var ChildNode: TTreeNode; I: Integer; begin for I := 0 to Length(Bookmarks) - 1 do begin ChildNode := TreeViewBookmarks.Items.AddChildObject( Node, Bookmarks[I].Title, Bookmarks[I].Handle ); ChildNode.HasChildren := Pdf.HasBookmarkChildren[Bookmarks[I]]; if ChildNode.HasChildren then AddBookmarks(ChildNode, Pdf.BookmarkChildren[Bookmarks[I]]); end; end; |
خيارات العرض.
قم بتخصيص طريقة العرض باستخدام خيارات متنوعة.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
// Available render options type TRenderOption = ( reAnnotations, // Render annotations reLcd, // LCD optimized rendering reNoNativeText, // Don't use native text output reGrayscale, // Render in grayscale reLimitCache, // Limit image cache size reHalftone, // Use halftone for image stretching rePrinting, // Optimize for printing reNoSmoothText, // Disable text anti-aliasing reNoSmoothImage, // Disable image anti-aliasing reNoSmoothPath // Disable path anti-aliasing ); // Apply options to the view PdfView.Options := [reAnnotations, reLcd]; |
الخلاصة.
يوفر نموذج "عارض PDF" أساسًا قويًا لبناء وظائف عرض ملفات PDF في تطبيقات Delphi الخاصة بك. باستخدام PDFium VCL، يمكنك الوصول إلى نفس محرك عرض PDF المستخدم في Google Chrome، مما يضمن عرضًا عالي الجودة ودقيقًا لملفات PDF.
يتعامل المكون تلقائيًا مع ميزات PDF المعقدة مثل التعليقات والحقول والنصوص المضمنة، مما يسمح لك بالتركيز على بناء الميزات الفريدة لتطبيقك بدلاً من تحليل PDF على مستوى منخفض.
قم بتنزيل PDFium VCL. من loslab.com للبدء في تطوير PDF في Delphi.