2015-04-14 4 views
5

Я использую ColdFusion 11 и Java (com.lowagie.text.pdf.PdfStamper) для заполнения в формате PDF, но когда я ввожу значение с одним апостроф, таких как 32' он сохраняет только в формате PDF, как 32 вместо 32'. Значение входит в многострочную текстовую область в PDF. Я пробовал с включенным и без богатого текста.Missing апостроф при использовании PdfStamper

Я попытался заменить ' с &#39&#59;, '', &apos&#59; и \u0027;, но все они исчезают. Я также пробовал xmlFormat, но он отображается как &apos&#59;.

Копирование и вставка из MS Word не работает ни в качестве замены.

Вот код, я использую

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

Можете ли вы сделать ручную 'convertToString (this.misc.text, PdfObject.TEXT_PDFDOCENCODING)' и проверить, исчезла ли цитата в этот момент? – usr2564301

+0

@Jongware Я пробовал следующее, но это не сработало. 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 ожидает байта [], а не строку. – Aaron

ответ

1

Проблема закончилась тем, что шрифт Таймс, который был выбран в качестве шрифта для поля ввода не имеют апостроф. Проблема заключалась в замене шрифта на Arial или Verdana.

Смежные вопросы