diff options
| author | Emina Ahmetovic <emina.ahmetovic@egiz.gv.at> | 2021-01-18 16:07:28 +0100 | 
|---|---|---|
| committer | Emina Ahmetovic <emina.ahmetovic@egiz.gv.at> | 2021-01-18 16:07:28 +0100 | 
| commit | a3bef06e6b3f2e465703aa8b64ab36f6e3d76de7 (patch) | |
| tree | f7cf0bc30c40598b6420283d7c51da11a9f41703 /pdf-as-pdfbox-2/src/main/java/at | |
| parent | 78a01744e1fc3e8d45348b623a3a80906d31e373 (diff) | |
| download | pdf-as-4-a3bef06e6b3f2e465703aa8b64ab36f6e3d76de7.tar.gz pdf-as-4-a3bef06e6b3f2e465703aa8b64ab36f6e3d76de7.tar.bz2 pdf-as-4-a3bef06e6b3f2e465703aa8b64ab36f6e3d76de7.zip | |
update placeholder search
Diffstat (limited to 'pdf-as-pdfbox-2/src/main/java/at')
2 files changed, 16 insertions, 10 deletions
| diff --git a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/pdfbox2/placeholder/SignaturePlaceholderExtractor.java b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/pdfbox2/placeholder/SignaturePlaceholderExtractor.java index 9043aae7..0998a2eb 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/pdfbox2/placeholder/SignaturePlaceholderExtractor.java +++ b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/pdfbox2/placeholder/SignaturePlaceholderExtractor.java @@ -106,8 +106,6 @@ public class SignaturePlaceholderExtractor extends PDFStreamEngine implements Pl  	private static List<SignaturePlaceholderData> placeholders = new ArrayList<>();  	private int currentPage = 0;  	private PDDocument doc; -	 -	  	private SignaturePlaceholderExtractor(String placeholderId,  			int placeholderMatchMode, PDDocument doc) throws IOException, ClassNotFoundException, InstantiationException, IllegalAccessException { @@ -128,13 +126,18 @@ public class SignaturePlaceholderExtractor extends PDFStreamEngine implements Pl  		this.doc = doc;  	} -	public  static List<SignaturePlaceholderData> listPlaceholders() { +	public static List<SignaturePlaceholderData> getPlaceholders() {  		return placeholders;  	} -	public static void clearPlaceholders(){ +	public void setPlaceholders(List<SignaturePlaceholderData> placeholders) { +		this.placeholders = placeholders; +	} + +	public static void clearPlaceholders() {  		placeholders.clear();  	} +  	/**  	 * Search the document for placeholder images and possibly included  	 * additional info.<br/> diff --git a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox2/PADESPDFBOXSigner.java b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox2/PADESPDFBOXSigner.java index 82c48d96..cff5fc7f 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox2/PADESPDFBOXSigner.java +++ b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox2/PADESPDFBOXSigner.java @@ -107,6 +107,7 @@ public class PADESPDFBOXSigner implements IPdfSigner, IConfigurationConstants {  			PDFASSignatureInterface genericSigner) throws PdfAsException {  		PDFAsVisualSignatureProperties properties = null; +		List<SignaturePlaceholderData> placeholders;  		String placeholder_id = "";  		if(PlaceholderWebConfiguration.getValue(PLACEHOLDER_WEB_ID) != null  && !PlaceholderWebConfiguration.getValue(PLACEHOLDER_WEB_ID).equalsIgnoreCase("")){ @@ -155,11 +156,9 @@ public class PADESPDFBOXSigner implements IPdfSigner, IConfigurationConstants {  			signature.setSubFilter(COSName.getPDFName(signer.getPDFSubFilter()));  			SignaturePlaceholderData signaturePlaceholderDataInit = PlaceholderFilter.checkPlaceholderSignatureLocation(pdfObject.getStatus(), pdfObject.getStatus().getSettings(), placeholder_id); -			//gives a list of all placeholders -			List<SignaturePlaceholderData> placeholders = SignaturePlaceholderExtractor.listPlaceholders(); -			if(placeholders!=null){ -				SignaturePlaceholderExtractor.clearPlaceholders(); -			} +            placeholders = SignaturePlaceholderExtractor.getPlaceholders(); + +  			if(placeholder_id.equalsIgnoreCase("")){  				if(checkAvailablePlaceholders(placeholders,existingSignatureLocations(doc))!=null)  				{ @@ -177,7 +176,8 @@ public class PADESPDFBOXSigner implements IPdfSigner, IConfigurationConstants {  			if (signaturePlaceholderData != null) {  				// Placeholder found! -				logger.info("Placeholder data found."); +                placeholders.clear(); +                logger.info("Placeholder data found.");  				if (signaturePlaceholderData.getProfile() != null) {  					logger.debug("Placeholder Profile set to: " + signaturePlaceholderData.getProfile());  					requestedSignature.setSignatureProfileID(signaturePlaceholderData.getProfile()); @@ -900,12 +900,15 @@ public class PADESPDFBOXSigner implements IPdfSigner, IConfigurationConstants {  	//find first available placeholder  	public SignaturePlaceholderData checkAvailablePlaceholders(List<SignaturePlaceholderData> placeholders, List<String> existingPlaceholders) {  		SignaturePlaceholderData result = null; + +		if(placeholders!=null){  		for(int i = 0; i < placeholders.size(); ++i) {              if(!existingPlaceholders.contains(placeholders.get(i).getPlaceholderName())) {  				result = placeholders.get(i);  				break;  			}  		} +	}  		return result;  	}  }
\ No newline at end of file | 
