Breadcrumbs

signoAPI Android – Klasse STSignoUtils

Die Klasse STSignoUtils ist eine Utility Klasse in der libSignoPDFSigner und besteht aus statischen Methoden. Diese Klasse kann verwendet werden, um die PDF-Dokumente zu bearbeiten und neue PDF-Dokumente zu erzeugen, ohne sie anzuzeigen. Die Klasse ist Bestandteil der libSignoPDFSigner.

Methode appendPage

Mit dieser Methode kann eine leere Seite an ein Dokument angehängt werden. Optional können Bilder auf dieser Seite eingefügt werden.

Java
public static byte[] appendPage(STRectDTO size, byte[] document, List<STImageDTO> images);

Parameter

Bedeutung

STRectDTO size

Die Größe der neuen Seite.

byte[] document

Das Dokument als Byte-Array.

List<STImageDTO> images

Eine Liste von STImageDTO-Objekten. Darf null sein, dann werden keine Bilder hinzugefügt.

Rückgabewert

Bedeutung

byte[]

Das geänderte Dokument als Byte-Array.

Anwendung:

Java
STRectDTO size = new STRectDTO();
size.setUnit(STRectDTO.Unit. UnitMillimetres);
size.setRectangle(new RectF(0.0f, 0.0f, 210.0f, 297.0f));

STImageDTO imageDTO = new STImageDTO();
Bitmap myimage = BitmapFactory.decodeResource(this.getResources(), R.drawable.myimage);
imageDTO.setImage(myimage);
imageDTO.setRectDTO(size);

List<STImageDTO> images = new ArrayList<>();
images.add(imageDTO);
byte[] changedDoc = STSignoUtils.appendPage(size, document, images);

Methode createDocument

Mit dieser Methode kann ein Dokument aus leeren Seiten erzeugt werden. Optional können Bilder auf den Seiten eingefügt werden.

Java
public static byte[] createDocument(STRectDTO size, int pages, PdfACompliance compliance, List<STImageDTO> images);

Parameter

Bedeutung

STRectDTO size

Die Größe der neuen Seite.

int pages

Die Anzahl der Seiten.

PdfACompliance compliance

PDF/A-Konformität

List<STImageDTO> images

Eine Liste von STImageDTO-Objekten. Darf null sein, dann werden keine Bilder hinzugefügt.

Rückgabewert

Bedeutung

byte[]

Das geänderte Dokument als Byte-Array.

Die Enumeration PdfACompliance ist in der Klasse STSignoUtils wie folgt definiert:

Java
public enum PdfACompliance {
    None,
    PdfA1b,
    PdfA3b
}

Wert

Bedeutung

None

Keine PDF/A-Konformität

PdfA1b

PDF/A1b-Konformität

PdfA3b

PDF/A3b-Konformität

Anwendung:

Java
STRectDTO size = new STRectDTO();
size.setUnit(STRectDTO.Unit.UnitMillimetres);
size.setRectangle(new RectF(0.0f, 0.0f, 210.0f, 297.0f));

STImageDTO imageDTO = new STImageDTO();
Bitmap myimage = BitmapFactory.decodeResource(this.getResources(), R.drawable.myimage);
imageDTO.setImage(myimage);
imageDTO.setRectDTO(size);

List<STImageDTO> images = new ArrayList<>(); 
images.add(imageDTO);
byte[] createdDoc = STSignoUtils.createDocument(size, 1, STSignoUtils.PdfACompliance.None, images);

Methode getDocumentMetaDataFromFile

Diese Methode liest die Metadaten des Dokuments aus, ohne dass eine ggf. vorhandene Instanz der Klasse STSignoViewer beeinflusst wird.

Java
public static String getDocumentMetaDataFromFile(byte[] document);

Parameter

Bedeutung

byte[] document

Das Dokument als Byte-Array.

Rückgabewert

Bedeutung

String

„Metadata“-Eintrag aus dem „Document Catalog“

Anwendung:

Java
String metaData = STSignoUtils.getDocumentMetaDataFromFile(document);

Methode getFormFieldsInfoFromFile

Diese Methode ist veraltet und nur noch aus Kompatibilitätsgründen enthalten. Bitte verwenden Sie stattdessen die Methode getFormFieldsFromFile().

Methode getFormFieldsFromFile

Mit dieser Methode können Informationen über die im Dokument enthaltenen Formularfelder abgerufen werden, ohne dass eine ggf. vorhandene Instanz der Klasse STSignoViewer beeinflusst wird.

Java
public static <T extends STFormFieldInfoDTO> List<T> getFormFieldsFromFile(EnumSet<STFormFieldType> formFieldTypes, byte[] document);

Parameter

Bedeutung

EnumSet<STFormFieldType> formFieldTypes

EnumSet-Objekt der Enum-Klasse STFormFieldType

byte[] document

Das Dokument als Byte-Array.

Rückgabewert

Bedeutung

<T extends STFormFieldInfoDTO> List<T>

Eine Liste mit je einem STFormFieldInfoDTO-Objekt oder einem Objekt der Klasse, die von der Klasse STFormFieldInfoDTO abgeleitet ist, pro Formularfeld oder eine leere Liste, wenn das Dokument keine Formularfelder enthält, die den gesuchten Formularfeldtypen entsprechen.

Anwendung:

Java
byte[] document = ...
List<STFormFieldInfoDTO> allFields = STSignoUtils.getFormFields(EnumSet.allOf(STFormFieldType.class), document);
List<STEditableFieldInfoDTO> allEditableFields = STSignoUtils.getFormFields(EnumSet.of(STFormFieldType.TEXT, STFormFieldType.CHOICE, STFormFieldType.BUTTON), document);
List<STSignatureFieldInfoDTO> signatureFields = STSignoUtils.getFormFields(EnumSet.of(SIGNATURE), document);
List<STTextFieldInfoDTO> textFields = STSignoUtils.getFormFields(EnumSet.of(TEXT), document);
List<STButtonFieldInfoDTO> buttonFields = STSignoUtils.getFormFields(EnumSet.of(BUTTON), document);
List<STButtonFieldInfoDTO> choiceFields = STSignoUtils.getFormFields(EnumSet.of(CHOICE), document);
List<STFormFieldInfoDTO> allEditableFields = STSignoUtils.getFormFields(EnumSet.of(STFormFieldType.TEXT, STFormFieldType.CHOICE, STFormFieldType.BUTTON), document);
List<STFormFieldInfoDTO> signatureFields = STSignoUtils.getFormFields(EnumSet.of(SIGNATURE), document);
List<STFormFieldInfoDTO> textFields = STSignoUtils.getFormFields(EnumSet.of(TEXT), document);
List<STFormFieldInfoDTO> buttonFields = STSignoUtils.getFormFields(EnumSet.of(BUTTON), document);
List<STFormFieldInfoDTO> choiceFields = STSignoUtils.getFormFields(EnumSet.of(CHOICE), document);

Methode setFormFieldsInfoToFile

Mit dieser Methode können der Inhalt und die „read only“-Eigenschaft von Formularfeldern geändert werden.

Java
public static byte[] setFormFieldsInfoToFile(List<STFormFieldInfoDTO> formFieldsInfo, byte[] document);

Parameter

Bedeutung

List<STFormFieldInfoDTO> formFieldsInfo

Formularfelder, deren Eigenschaften geändert werden sollen, in Form einer Liste von STFormFieldInfoDTO-Objekten. Von den Objekten werden derzeit nur die Eigenschaften name, value und readOnly ausgewertet.

byte[] document

Das Dokument als Byte-Array.

Rückgabewert

Bedeutung

byte[]

Das geänderte Dokument als Byte-Array.

Anwendung:

Java
List<STFormFieldInfoDTO> formFields = STSignoUtils.getFormFieldsInfoFromFile(document);
for (STFormFieldInfo formField : formFields) {
  if (formField.getName().equals("MyField")) {
      formFields.setValue("My value");
      formField.setReadOnly(true);
  }
}
byte[] changedDoc = STSignoUtils.setFormFieldsInfo(formFields, document);

Methode getSignatureInfoFromFile

Diese Methode ist veraltet und nur noch aus Kompatibilitätsgründen enthalten. Bitte verwenden Sie stattdessen die Methode getFormFieldsFromFile().

Methode appendPages

Mit dieser Methode können mehrere leere Seiten an ein Dokument angehängt und optional Bilder auf dieser Seite eingefügt werden.

Java
public static byte[] appendPages(STRectDTO size, byte[] document, int pages, List<STImageDTO> images);

Parameter

Bedeutung

STRectDTO size

Die Größe der neuen Seite.

byte[] document

Das Dokument als Byte-Array.

int pages

Die Anzahl der anzuhängenden Seiten.

List<STImageDTO> images

Eine Liste von STImageDTO-Objekten. Darf null sein, dann werden keine Bilder hinzugefügt.

Rückgabewert

Bedeutung

byte[]

Das geänderte Dokument als Byte-Array.

Anwendung:

Java
STRectDTO size = new STRectDTO();
size.setUnit(STRectDTO.Unit. UnitMillimetres);
size.setRectangle(new RectF(0.0f, 0.0f, 210.0f, 297.0f));

STImageDTO imageDTO = new STImageDTO();
Bitmap myimage = BitmapFactory.decodeResource(this.getResources(), R.drawable.myimage);
imageDTO.setImage(myimage);
imageDTO.setRectDTO(size);

List<STImageDTO> images = new ArrayList<>(); 
images.add(imageDTO);
byte[] changedDoc = STSignoUtils.appendPages(size, document, 2, images);