مرجع HotPDF

تحمّل THotPDF.ImportRTF ملف RTF إلى RichEdit في Windows، بينما تقسّم THotPDF.ImportRichEdit عنصر تحكم موجود إلى صفحات PDF

نموذج الرسم

يستخدم التقسيم إلى صفحات EM_FORMATRANGE بمستطيل صفحة محدود، ويُصدِر كل صفحة عبر enhanced metafile

يبقى النص وتغييرات الخط وتنسيق الفقرات والخطوط المتجهية وعمليات GDI الأخرى عوامل نص أو متجهات PDF كلما عرضتها خطوط أنابيب RichEdit وEMF بهذا الشكل

تُنقَل بيانات pict في RTF وعروض OLE الثابتة المدعومة من RichEdit عبر نفس مسار EMF، لذا لا حاجة إلى تحويل الصفحة كاملة إلى raster

الخيوط (Threading) ودورة الحياة

الخيوط (Threading) ودورة الحياة

تحدّ THPDFRTFImportOptions.Default المدخل بـ16 ميبيبايت، والنص بـ4,000,000 حرف، والإخراج بـ1,000 صفحة، وبيانات EMF المتراكمة بـ256 ميبيبايت

ينبغي قصر تفعيله على ملفات RTF الموثوقة لأن RichEdit في Windows يملك سطح معالج OLE المثبَّت، ويكون OLE المضمّن معطلًا افتراضيًا ويتطلب AllowOLE=True

يُفحص CancellationToken بين الصفحات ويُرجع risCancelled دون رسم صفحات إضافية

الخيوط (Threading) ودورة الحياة

تُبلغ THPDFRTFImportStatistics ببايتات المدخل، ونطاق الأحرف، وعدد الصفحات المرسومة والمضافة، وبايتات metafile المتراكمة، ووجود OLE، والاقتطاع، وقيمة THPDFRTFImportStatus مستقرة

يُرجع استنفاد الميزانية، وشكل الصفحة الهندسي غير الصالح، والاستدعاءات من thread خاطئ، وتقسيم الصفحات بلا تقدم، وأخطاء الرسم القيمة False مع حالة محددة

الخيوط (Threading) ودورة الحياة

Options := THPDFRTFImportOptions.Default;
Options.PageWidth := 612;
Options.PageHeight := 792;
Options.MarginLeft := 54;
Options.MarginRight := 54;

Document.BeginDoc;
RTFStream.Position := 0;
if not Document.ImportRTF(RTFStream, Options, Statistics) then
  raise Exception.CreateFmt(
    'RTF import failed with status %d',
    [Ord(Statistics.Status)]
  );

انظر أيضًا: THotPDF.ImportRTF، THotPDF.ImportRichEdit، استيراد SVG كـForm XObject