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.
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:
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.
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:
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:
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.
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:
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.
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:
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.
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:
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.
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:
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);