بينما يُعرف PDFium بشكل أساسي بعرض ومعالجة ملفات PDF، فإن PDFium VCL يوفر أيضًا قدرات قوية لإنشاء ملفات PDF. إنشاء ملف PDF. يوضح العرض التوضيحي كيفية إنشاء مستندات PDF برمجيًا باستخدام النصوص والأشكال والجداول والعلامات المائية.
نظرة عامة
يقوم هذا العرض التوضيحي بإنشاء مستند PDF جديد مع عناصر مختلفة بما في ذلك النصوص المنسقة والأشكال الهندسية وجدول بسيط وعلامة مائية قطرية. وهو يوضح واجهات برمجة التطبيقات الأساسية لإنشاء ملفات PDF المتاحة في PDFium VCL.
الميزات الرئيسية
- إنشاء مستندات جديدة. – إنشاء ملفات PDF من البداية.
- إضافة نص. – إدراج نصوص منسقة بخطوط وأحجام وألوان مخصصة.
- ارسم الأشكال. - أنشئ مستطيلات، ومسارات، وأشكال هندسية أخرى.
- أنشئ الجداول. - أنشئ جداول نصية بسيطة.
- أضف علامات مائية. - أدرج نصًا شفافًا ومائلًا.
متطلبات ملف PDFium DLL.
قبل تشغيل أي تطبيق PDFium VCL، تأكد من تثبيت ملفات PDFium DLL:
pdfium32.dll/pdfium64.dll– الإصدارات القياسية (حوالي 5-6 ميجابايت).pdfium32v8.dll/pdfium64v8.dll– مع محرك JavaScript V8 (حوالي 23-27 ميجابايت).
التثبيت: تشغيل PDFiumVCL\DLLs\CopyDlls.bat بصلاحيات المسؤول لنسخ ملفات DLL تلقائيًا إلى مجلدات نظام Windows.
إنشاء مستند 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 |
procedure CreateNewPdf; var Pdf: TPdf; begin Pdf := TPdf.Create(nil); try // Create empty document Pdf.CreateDocument; Pdf.Active := True; // Add first page (A4 size: 595 x 842 points) Pdf.AddPage(1, 595, 842); Pdf.PageNumber := 1; // Add content here... // Save the document Pdf.SaveAs('output.pdf'); finally Pdf.Active := False; Pdf.Free; end; end; |
إضافة نص.
الـ AddText الطريقة تضيف نصًا منسقًا إلى الصفحة الحالية.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
procedure TPdf.AddText( const Text, Font: WString; // Text content and font name FontSize: Single; // Font size in points X, Y: Double; // Position (from bottom-left) Color: TColor = clBlack; // Text color Alpha: Byte = $FF; // Transparency (0-255) Angle: Double = 0.0 // Rotation angle in degrees ); // Examples Pdf.AddText('Hello World', 'Arial', 24, 50, 750, clBlack, $FF, 0.0); Pdf.AddText('Subtitle', 'Times New Roman', 14, 50, 720, clGray, $FF, 0.0); Pdf.AddText('Rotated Text', 'Arial', 18, 300, 400, clRed, $80, 45.0); |
مثال كامل لإنشاء ملف 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 33 34 35 36 37 |
procedure TFormMain.CreateSimplePDF; begin Pdf.CreateDocument; Pdf.Active := True; try // Add A4 page Pdf.AddPage(0, 595, 842); // Title Pdf.AddText(EditTitle.Text, 'Arial', 18, 50, 750, clBlack, $FF, 0.0); // Author line Pdf.AddText('By: ' + EditAuthor.Text, 'Arial', 12, 50, 720, clGray, $FF, 0.0); // Body text Pdf.AddText('This is a simple PDF document created with PDFium VCL.', 'Arial', 12, 50, 680, clBlack, $FF, 0.0); Pdf.AddText('You can add various elements to your PDF:', 'Arial', 12, 50, 650, clBlack, $FF, 0.0); // Optional features if CheckShapes.Checked then AddShapes; if CheckTable.Checked then AddTable; if CheckWatermark.Checked then AddWatermark; // Save Pdf.SaveAs('Sample.pdf'); finally Pdf.Active := False; end; end; |
رسم الأشكال باستخدام CreatePath.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
// Create a path starting at (X, Y) procedure TPdf.CreatePath( X, Y: Single; // Starting point FillMode: TPdfFillMode = fmNone; // None, Alternate, or Winding FillColor: TColor = clBlack; // Fill color FillAlpha: Byte = $FF; // Fill transparency Stroke: Boolean = True; // Draw outline StrokeColor: TColor = clBlack; // Outline color StrokeAlpha: Byte = $FF; // Outline transparency StrokeWidth: Single = 1.0; // Line width LineCap: TPdfLineCap = lcDefault; // Line end style LineJoin: TPdfLineJoin = ljDefault; // Line join style BlendMode: TPdfBlendMode = bmDefault // Color blending ); // Create a rectangle path procedure TPdf.CreatePath( X, Y, Width, Height: Single; // Rectangle bounds // Same optional parameters as above... ); |
أمثلة لرسم الأشكال.
|
1 2 3 4 5 6 7 8 9 10 11 12 |
procedure TFormMain.AddShapes; begin // Filled rectangle with blue color at 50% opacity Pdf.CreatePath(100, 550, 150, 80, fmWinding, $FFCCAA, $80); Pdf.AddPath; Pdf.AddText('Rectangle', 'Arial', 10, 120, 580, clBlack, $FF, 0.0); // Another filled shape (green) Pdf.CreatePath(350, 590, 80, 80, fmWinding, $CCFFCC, $80); Pdf.AddPath; Pdf.AddText('Shape', 'Arial', 10, 370, 580, clBlack, $FF, 0.0); end; |
إنشاء مسارات معقدة.
|
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 |
procedure DrawTriangle(Pdf: TPdf); begin // Start path at first vertex Pdf.CreatePath(200, 300, fmWinding, clBlue, $80, True, clNavy, $FF, 2.0); // Draw lines to other vertices Pdf.LineTo(300, 300); Pdf.LineTo(250, 400); // Close the path Pdf.ClosePath; // Add to page Pdf.AddPath; end; procedure DrawCurve(Pdf: TPdf); begin Pdf.CreatePath(100, 200, fmNone, clBlack, $FF, True, clRed, $FF, 2.0); Pdf.MoveTo(100, 200); // Bezier curve with control points Pdf.BezierTo( 150, 250, // Control point 1 200, 250, // Control point 2 250, 200 // End point ); Pdf.AddPath; end; |
إنشاء جداول بسيطة.
|
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 |
procedure TFormMain.AddTable; var X, Y: Double; I: Integer; begin X := 100; Y := 450; // Table header Pdf.AddText('Item', 'Arial', 10, X, Y, clBlack, $FF, 0.0); Pdf.AddText('Quantity', 'Arial', 10, X + 100, Y, clBlack, $FF, 0.0); Pdf.AddText('Price', 'Arial', 10, X + 200, Y, clBlack, $FF, 0.0); // Draw header underline Pdf.CreatePath(X, Y - 5, 250, 0.5, fmNone, clBlack, $FF, True, clBlack, $FF, 1.0); Pdf.AddPath; // Table rows for I := 1 to 3 do begin Y := Y - 20; Pdf.AddText('Item ' + IntToStr(I), 'Arial', 9, X, Y, clBlack, $FF, 0.0); Pdf.AddText(IntToStr(I), 'Arial', 9, X + 100, Y, clBlack, $FF, 0.0); Pdf.AddText('$' + IntToStr(I * 10) + '.00', 'Arial', 9, X + 200, Y, clBlack, $FF, 0.0); end; end; |
إضافة علامات مائية.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
procedure TFormMain.AddWatermark; begin // Large, semi-transparent, rotated text Pdf.AddText('SAMPLE', 'Arial', 72, 200, 200, clGray, $30, 45.0); end; // More sophisticated watermark procedure AddDiagonalWatermark(Pdf: TPdf; const Text: string); begin // Center of A4 page Pdf.AddText(Text, 'Arial', 60, 595 / 2 - 100, // X centered 842 / 2, // Y centered $CCCCCC, // Light gray $40, // 25% opacity 45.0 // 45 degree rotation ); end; |
إضافة صور.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
procedure AddImageToPdf(Pdf: TPdf; const ImageFile: string); var Picture: TPicture; begin Picture := TPicture.Create; try Picture.LoadFromFile(ImageFile); // Add at position with automatic sizing Pdf.AddPicture(Picture, 50, 400); // Or with specific dimensions Pdf.AddPicture(Picture, 50, 400, 200, 150); finally Picture.Free; end; end; |
المستندات متعددة الصفحات.
|
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 |
procedure CreateMultiPagePdf; var Pdf: TPdf; I: Integer; begin Pdf := TPdf.Create(nil); try Pdf.CreateDocument; Pdf.Active := True; for I := 1 to 5 do begin // Add page Pdf.AddPage(I, 595, 842); Pdf.PageNumber := I; // Add content Pdf.AddText('Page ' + IntToStr(I), 'Arial', 24, 250, 400, clBlack, $FF, 0.0); end; Pdf.SaveAs('multipage.pdf'); finally Pdf.Active := False; Pdf.Free; end; end; |
أحجام الصفحات.
| Format | Width (pts) | Height (pts) |
|---|---|---|
| A4 Portrait | 595 | 842 |
| A4 Landscape | 842 | 595 |
| Letter Portrait | 612 | 792 |
| Letter Landscape | 792 | 612 |
| Legal Portrait | 612 | 1008 |
حالات الاستخدام.
- إنشاء التقارير. – إنشاء تقارير منسقة من البيانات.
- إنشاء الفواتير. – إنشاء الفواتير والإيصالات.
- إنشاء الشهادات. – إنشاء شهادات باستخدام قوالب.
- قوالب المستندات. - املأ القوالب بمحتوى ديناميكي.
الخلاصة.
يوضح عرض "إنشاء ملف PDF" أن PDFium VCL ليس مخصصًا للعرض فقط، بل هو مجموعة أدوات PDF كاملة. مع دعم النصوص والأشكال والصور والمستندات متعددة الصفحات، يمكنك إنشاء ملفات PDF احترافية بالكامل من التعليمات البرمجية.
بالإضافة إلى قدرات العرض والتلاعب الخاصة بالمكون، يوفر PDFium VCL كل ما تحتاجه للتعامل الشامل مع ملفات PDF في تطبيقات Delphi.
استكشف إنشاء ملفات PDF. مع مكون PDFium VCL. وأضف إمكانية إنشاء المستندات الديناميكية إلى تطبيقاتك.