AddEmbeddedFileA
ویژگیهای سند
توضیحات
حرف A انتهایی نشاندهنده نقطه ورودی ANSI (char) در DLL است؛ رابط ActiveX/COM تنها فرم Unicode را نشان میدهد. رفتار آن با AddEmbeddedFile یکسان است و آرگومانهای رشتهای با استفاده از صفحه کد فعلی SetAnsiMode تفسیر میشوند
فایلی را بهعنوان استریم فایل تعبیهشده درون PDF تعبیه میکند اما بهخودیخود فایل را در هیچ فهرست catalog ثبت یا حاشیهنویسی قابل کلیکی رسم نمیکند. تابع هندل EmbeddedFileIDای برمیگرداند که میتوان به AddFileAttachment (برای چسباندن آیکن گیرهٔ کاغذ روی صفحه) یا AddLinkToEmbeddedFile (برای ساختن نقطهٔ داغ قابل کلیکی که فایل را باز میکند) پاس داد. برای تعبیه و ثبت همزمان فایل بهعنوان پیوست سطح سند با یک فراخوانی، بهجای آن از EmbedFile استفاده کنید
نحو
Delphi
Function DLAddEmbeddedFileA(InstanceID: Integer; FileName, MIMEType: PAnsiChar): Integer;
DLL
int DLAddEmbeddedFileA(int InstanceID, const char * FileName, const char * MIMEType);
پارامترها
| FileName | مسیر و نام کامل فایل منبع روی دیسک. بایتهای آن بدون هیچ تغییری در یک stream فایل embedشده در PDF کپی میشوند |
|---|---|
| MIMEType | MIME type فایل، مثلاً image/jpeg یا application/xml. وقتی MIME type ناشناخته است ممکن است رشتهٔ خالی باشد |
مقادیر بازگشتی
| 0 | فایل باز نشد یا سند فعالی وجود ندارد |
|---|---|
| Non-zero | هندل EmbeddedFileID برای استفاده با AddFileAttachment، AddLinkToEmbeddedFile یا SetEmbeddedFileStrProperty |
ملاحظات
رفتار نسخهٔ PDF: استریمهای فایل تعبیهشده و دیکشنریهای مشخصات فایل به PDF 1.3 نیاز دارند. اگر نسخهٔ فعلی سند پایینتر باشد و نسخهٔ ذخیره قفل نشده باشد، AddEmbeddedFile سند را خودکار به PDF 1.3 میبرد. فراخوانیهایی که فایل را بهعنوان پیوست سطح سند ثبت میکنند ممکن است به نسخهٔ بالاتری نیاز داشته باشند: AddFileAttachment و EmbedFile از درخت نام /Names /EmbeddedFiles مربوط به PDF 1.4 و AddLinkToEmbeddedFile از کدری/شفافیت ظاهر حاشیهنویسی PDF 1.4 استفاده میکنند
فایلی که فقط با AddEmbeddedFile تعبیه شده بخشی از PDF است اما تا وقتی در فهرست پیوست سند ثبت نشده یا توسط حاشیهنویسی صفحهای ارجاع نشده برای UI خواننده نامرئی است. استفادهٔ دوباره از همان EmbeddedFileID با AddFileAttachment و AddLinkToEmbeddedFile اجازه میدهد یک فایل تعبیهشده هم از طریق UI سطح سند و هم سطح صفحه عرضه شود بدون تکرار بایتهای تعبیهشده
PDF/A compatibility:
- PDF/A-1, PDF/A-2 (SetPDFAMode modes 1–4) — embedded files are forbidden; the call is rejected.
- PDF/A-3 (SetPDFAMode modes 5, 6, and 7) — embedded files of any MIME type are permitted. Set the file's relationship via SetEmbeddedFileAFRelationship before saving.
مثال
// Expose the same embedded file through the document attachment list and a page annotation
var
FileID: Integer;
begin
PDF.NewDocument;
PDF.AddStandardFont('Helvetica');
FileID := PDF.AddEmbeddedFile('C:\reports\sales.csv', 'text/csv');
if FileID = 0 then Exit;
PDF.AddFileAttachment('Source data', FileID);
PDF.AddPage;
PDF.PrintText(50, 750, 'See attached source data');
PDF.AddLinkToEmbeddedFile(50, 720, 16, 16, FileID, 'Source data', 'Open source CSV', 4, 0);
PDF.SaveToFile('with-attachment.pdf');
end;همچنین ببینید
AddFileAttachment, AddLinkToEmbeddedFile, EmbedFile, SetEmbeddedFileAFRelationship, SetEmbeddedFileStrProperty, EmbeddedFileCount