2015-04-14 9 views
5

sto usando ColdFusion 11 e Java (com.lowagie.text.pdf.PdfStamper) per riempire in pdf, ma quando entro in un valore con un singolo apostrofo come 32' si salva solo nel PDF come 32 invece di 32'. Il valore sta andando in un'area di testo su più righe nel PDF. Ho provato con e senza RTF abilitato.mancante citazione singolo quando si utilizza PDFStamper

Ho provato a sostituire ' con &#39&#59;, '', &apos&#59; e \u0027; ma tutti scompaiono. Ho anche provato xmlFormat ma si presenta come &apos&#59;.

La copia e incolla dello da MS Word non ha funzionato come valore di sostituzione.

Ecco il codice che sto utilizzando

this.pdfFile = this.pdfService.read(source=infile); 
this.pdfReader = createObject("java","com.lowagie.text.pdf.PdfReader").init(tobinary(this.pdffile)); 
this.pdfWriter = createObject("java", "java.io.FileOutputStream").init(CreateObject("java", "java.io.File").init(this.outfile)); 
this.pdfStamper = createObject("java", "com.lowagie.text.pdf.PdfStamper").init(this.pdfReader, this.PdfWriter); 
this.acroForm = this.pdfStamper.getAcroFields(); 
//this.misc.text = replace(this.misc.text, "'", "&##39;", "all"); 
//this.misc.text = replace(this.misc.text, "'", "\u0027;", "all"); 
//this.misc.text = replace(this.misc.text, "'", "’", "all"); 
//this.misc.text = replace(this.misc.text, "'", "'", "all"); 
//this.misc.text = PreserveSingleQuotes(this.misc.text); 
this.acroForm.setField("text", this.misc.text); 
+1

Si può fare un manuale 'convertToString (this.misc.text, PdfObject.TEXT_PDFDOCENCODING)' e controllare se la citazione è scomparsa in quel punto? – usr2564301

+0

@Jongware Ho provato quanto segue ma non ha funzionato. this.misc.text = this.PdfEncodings.convertToBytes (this.misc.text, this.PdfObject.TEXT_PDFDOCENCODING); this.misc.text = this.PdfEncodings.convertToString (this.misc.text, this.PdfObject.TEXT_PDFDOCENCODING); – Aaron

+0

convertToString prevede un byte [] non una stringa. – Aaron

risposta

1

Il problema ha finito per essere che il tipo di carattere Times che è stato selezionato come il tipo di carattere per le caselle di immissione non ha avuto il carattere di apostrofo. La modifica del font in Arial o Verdana ha risolto il problema.

Problemi correlati