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 |