Attachments

Attachments

Ця сторінка охоплює вбудовування файлів у PDF. Існує два різні механізми: вкладення на рівні документа, які є вбудованими файлами без видимої присутності на будь-якій сторінці, та анотації вкладень, закріплених за сторінкою, які розміщують клікабельну іконку на певній сторінці.


Вкладення на рівні документа

Document.AddAttachment() вбудовує bytes під name, виконуючи upsert у дерево імен вбудованих файлів документа — додавання ще раз з тим же іменем перезаписує існуючий запис. Він повертає дескриптор Attachment. Document.GetAttachments() повертає всі вкладення на рівні документа у вигляді масиву дескрипторів Attachment, відсортованих за іменем, а Document.RemoveAttachment() видаляє одне за іменем.

Дескриптор Attachment надає Name, Description, MimeType, Size, CreationDate та ModDate як властивості, GetBytes() для читання необробленого вмісту вбудованого файлу, і GetField() / SetField() / RemoveField() для нижчого рівня доступу до окремих полів /Filespec. Необов’язковий AttachmentOptions, переданий у AddAttachment(), приймає mimeType, description, compress, creationDate та modDate.

Для цього API у поточному знімку знань цієї платформи немає перевіреного прикладу коду — перегляньте підсумок API Reference нижче, щоб дізнатися точні назви методів і властивостей.


Вкладення файлів, закріплені за сторінкою

Page.AddFileAttachment() вбудовує файл і розміщує анотацію іконки /FileAttachment у заданому rect на конкретній сторінці, повертаючи FileAttachmentAnnotation. На відміну від вкладення рівня документа, це видиме та клікабельне у PDF-переглядачі. FileAttachmentAnnotation має спільні властивості анотації (Rect, Color, Contents, Name, Flags, Print, Hidden, Opacity) плюс власні Icon та FileName, і підтримує GetBytes() для читання вбудованого вмісту та Flatten() для запікання його іконки у статичний вміст сторінки.


Поради та кращі практики

  • Використовуйте документне вкладення (Document.AddAttachment()) для файлу, який має подорожувати разом з PDF без появи на будь-якій сторінці; використовуйте Page.AddFileAttachment(), коли файл має бути представлений клікабельною іконкою у конкретному місці.
  • Document.AddAttachment() перезаписує існуюче вкладення з тим же name — спочатку перевірте Document.GetAttachments(), якщо потрібно уникнути випадкового заміни.
  • Прочитайте вміст вкладення за допомогою GetBytes() для будь-якого типу дескриптора — метод доступний і в Attachment, і в FileAttachmentAnnotation.

Поширені проблеми

ПроблемаПричинаВиправлення
Новий доданий вкладений файл замінив існуючийDocument.AddAttachment() був викликаний з уже використаним nameСпочатку викличте Document.GetAttachments(), щоб перевірити колізію імен
Вкладення не має видимого значка на сторінціDocument.AddAttachment() був використаний, що є рівнем документа і за задумом не має присутності на сторінціВикористовуйте Page.AddFileAttachment() замість цього, щоб отримати видимий, прив’язаний до сторінки значок
Document.RemoveAttachment() повертає falseУ дереві імен немає вкладення з заданим nameПідтвердіть точну назву за допомогою Document.GetAttachments() перед видаленням

FAQ

Яка різниця між Document.AddAttachment і Page.AddFileAttachment?

Document.AddAttachment() вбудовує файл на рівні документа без видимої іконки на будь-якій сторінці. Page.AddFileAttachment() вбудовує файл і розташовує клікабельну /FileAttachment іконку-анотацію у певному місці на одній сторінці.

Як я можу перелічити всі вкладення, які вже вбудовані в документ?

Викличте Document.GetAttachments(), який повертає всі вкладення на рівні документа у вигляді масиву Attachment дескрипторів, відсортованих за назвою.

Як прочитати вміст файлу вкладення?

Викличте GetBytes() на дескрипторі Attachment (або FileAttachmentAnnotation) — він доступний в обох випадках.

Чи можу я видалити вкладення?

Так — Document.RemoveAttachment(name) видаляє вкладення на рівні документа за назвою і повертає, чи було таке знайдено та видалено.


API Reference Підсумок

Клас/МетодОпис
Document.AddAttachment()Вбудуйте байти як іменоване вкладення рівня документа
Document.GetAttachments()Перелічити всі вкладення на рівні документа
Document.RemoveAttachment()Видалити вкладення рівня документа за назвою
AttachmentОбробити більше одного вбудованого файлу; Name, Description, MimeType, Size, GetBytes()
Page.AddFileAttachment()Вбудувати файл як прив’язану до сторінки, клікабельну іконку-анотацію
FileAttachmentAnnotationРучка анотації прикріплення, прив’язаного до сторінки; додає Icon, FileName

Дивіться також

 Українська