diff options
3 files changed, 27 insertions, 12 deletions
| diff --git a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFBoxTable.java b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFBoxTable.java index e35e3994..17ee60be 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFBoxTable.java +++ b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFBoxTable.java @@ -85,8 +85,22 @@ public class PDFBoxTable {  					case Entry.TYPE_CAPTION:  					case Entry.TYPE_VALUE:  						String value = (String) cell.getValue(); -						cell.setValue(StringUtils -								.convertStringToPDFFormat(value)); +						 +						//Check if the used value font supports all characters in string +						PDFont f = null; +						try{ +							if(valueFont != null){ +								f = valueFont.getFont(); +								f.getStringWidth(value); +							} +						}catch(IllegalArgumentException | IOException e){ +							if(f!=null){ +								logger.warn("Font "+f.getName()+" doesnt support a character in the value "+value); +							} +							value = StringUtils.convertStringToPDFFormat(value); +							cell.setValue(value); +						} +						  						break;  					}  				} @@ -99,11 +113,6 @@ public class PDFBoxTable {  	private void initializeStyle(Table abstractTable, PDFBoxTable parent,  			PDFBOXObject pdfBoxObject) throws IOException {  		this.table = abstractTable; -		try { -			normalizeContent(abstractTable); -		} catch (PdfAsException e) { -			throw new PdfAsWrappedIOException(e); -		}  		if (parent != null) {  			style = Style.doInherit(abstractTable.getStyle(), parent.style); @@ -148,6 +157,12 @@ public class PDFBoxTable {  		padding = style.getPadding();  		bgColor = style.getBgColor(); +		 +		try { +			normalizeContent(abstractTable); +		} catch (PdfAsException e) { +			throw new PdfAsWrappedIOException(e); +		}  	}  	public PDFBoxTable(Table abstractTable, PDFBoxTable parent, float fixSize, diff --git a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/TableDrawUtils.java b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/TableDrawUtils.java index aa2a397d..5162b287 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/TableDrawUtils.java +++ b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/TableDrawUtils.java @@ -246,8 +246,9 @@ public class TableDrawUtils {  			contentStream.moveTextPositionByAmount(tx, (ty - fontSize + (descent * (-1))));  			contentStream.appendRawCommands(fontSize + " TL\n"); +			  			for (int k = 0; k < tlines.length; k++) { -				contentStream.drawString(tlines[k]); +				contentStream.showText(tlines[k]);  				if (k < tlines.length - 1) {  					contentStream.appendRawCommands("T*\n");  				} diff --git a/pdf-as-web/build.gradle b/pdf-as-web/build.gradle index 0fb333eb..ae27c7db 100644 --- a/pdf-as-web/build.gradle +++ b/pdf-as-web/build.gradle @@ -173,7 +173,7 @@ task putConfigIntoTomcat(dependsOn: putTemplateIntoTomcat)<<{  task putWebConfigIntoTomcat(dependsOn: putConfigIntoTomcat)<<{  	deployVersions.each{ -		String targetDir = "build/tomcat-##VERSION##/apache-tomcat-##VERSION##/conf/pdf-as"; +		String targetDir = "build/tomcat-##VERSION##"+it+"/apache-tomcat-##VERSION##/conf/pdf-as";  		targetDir = targetDir.replaceAll("##VERSION##", project.tomcatVersion);  		copy{ @@ -203,7 +203,7 @@ task createPdfbox2War(type:War){  		sourceSets.test.compileClasspath -= configurations.pdfbox1  		sourceSets.main.compileClasspath += configurations.pdfbox2  		sourceSets.test.compileClasspath += configurations.pdfbox2 -		classpath=sourceSets.main.compileClasspath +		classpath+=sourceSets.main.compileClasspath  	}  } @@ -283,14 +283,13 @@ task releaseConfig(type: Copy) { -  war{  	doFirst{  		sourceSets.main.compileClasspath -= configurations.pdfbox2  		sourceSets.test.compileClasspath -= configurations.pdfbox2  		sourceSets.main.compileClasspath += configurations.pdfbox1  		sourceSets.test.compileClasspath += configurations.pdfbox1 -		classpath=sourceSets.main.compileClasspath +		classpath+=sourceSets.main.compileClasspath  	}  } | 
