Attachment store for embedded files; add, rename, and remove files, with single ZUGFeRD/Factur‑X invoice support when present.
Definition
Namespace:Telerik.Windows.Documents.Fixed.Model.Collections
Assembly:Telerik.Windows.Documents.Fixed.dll
Syntax:
public sealed class EmbeddedFilesCollection : NamedCollectionBase<EmbeddedFile>, IEnumerable<EmbeddedFile>, IEnumerable
Inheritance: objectNamedCollectionBase<EmbeddedFile>EmbeddedFilesCollection
Implements:
Methods
Creates and adds a new embedded file with the specified name and binary data to the collection.
public EmbeddedFile Add(string name, byte[] data)
The name to assign to the embedded file.
databyte[]The binary data content of the embedded file.
Returns:The newly created embedded file instance.
Exceptions:Thrown when the name is null or empty.
Thrown when the data is null.
DuplicatedEmbeddedFileNameException
Thrown when an embedded file with the same name already exists in the collection.
Creates and adds a ZUGFeRD-compliant embedded invoice file to the collection with basic conformance level.
public EmbeddedFile AddZugferdInvoice(byte[] data, ZugferdConformanceLevel level = ZugferdConformanceLevel.Basic)
The raw XML bytes of the invoice to embed. This should contain a valid ZUGFeRD/Factur-X compliant XML document.
levelZugferdConformanceLevelThe ZUGFeRD/Factur-X conformance level to apply when exporting the PDF. Defaults to Basic. Supported values are Minimum, Basic, Comfort, Extended and XRechnung.
Returns:The newly created embedded file representing the invoice.
Exceptions:Thrown when data is null.
Thrown when an invoice attachment is already present. Only one ZUGFeRD/Factur-X invoice per document is allowed.
- If an invoice already exists (detected by common invoice filenames such as "ZUGFeRD-invoice.xml", "zugferd-invoice.xml", "factur-x.xml", or "xrechnung.xml"), the method throws.
- The specified
levelis stored in the collection and used during PDF export. - For XRechnung, the embedded invoice file name is fixed to "xrechnung.xml".
- To replace an existing invoice, call RemoveZugferdInvoice() before adding a new one.
Removes all embedded files from the collection.
public void Clear()
Determines whether an embedded file with the specified name exists in the collection.
public bool ContainsName(string name)
The name to search for in the collection.
Returns:True if an embedded file with the specified name exists; otherwise, false.
Exceptions:Thrown when the name parameter is null.
Returns an enumerator that iterates through the collection.
public override IEnumerator<EmbeddedFile> GetEnumerator()
An enumerator for the collection.
Overrides:
Generates an incremented version of the provided name if it already exists in the collection.
protected override string IncrementFileNameOverride(ref int counter, string[] splitName, string fileName, string newName)
The current counter value used for generating unique suffixes.
splitNamestring[]The name components split by dot separators.
fileNamestringThe base file name without extension or numeric suffix.
newNamestringThe candidate new name to check for uniqueness.
Returns:A unique name that doesn't conflict with existing names in the collection.
Overrides:
Removes the embedded file with the specified name from the collection and cleans up its parent associations.
public bool Remove(string name)
The name of the embedded file to remove.
Returns:True if the embedded file was successfully found and removed; otherwise, false.
Exceptions:Thrown when the name parameter is null.
Removes all ZUGFeRD invoice files from the collection.
public bool RemoveZugferdInvoice()
True if any ZUGFeRD invoice files were successfully found and removed; otherwise, false.
Verifies that the collection has not exceeded its maximum capacity limit.
protected override void VerifyCollectionLimit()
Thrown when the collection size exceeds the maximum allowed limit.
Overrides:
Properties
Indicates whether the collection contains a ZUGFeRD (or Factur‑X) invoice file.
public bool ContainsZugferdInvoice { get; }
True if the collection contains a ZUGFeRD invoice file; otherwise, false.
Collection of names of the embedded files.
public IEnumerable<string> Names { get; }
Get the embedded file associated with the specified name.
public EmbeddedFile this[string name] { get; }
The name of the embedded file to retrieve.
Property Value:The embedded file with the specified name.
Exceptions:Thrown when no embedded file with the specified name exists in the collection.