pdfbox-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Maruan Sahyoun <sahy...@fileaffairs.de>
Subject Re: Unable to Set a String containing New Line Character into PDFBox PDTextField Object
Date Thu, 11 Aug 2016 15:50:19 GMT
Hi,

I did a quick test using PDFBox 2.0.3-SNAPSHOT with the folliwing lines of code:


		String billingAddress = "First line\nsecond line\nthird line";
		
		PDDocument pdfDocument = PDDocument.load(new File("invoice_template.pdf"));
		PDAcroForm acroForm = pdfDocument.getDocumentCatalog().getAcroForm();
		acroForm.getField("invoice.to.address").setValue(billingAddress);
		pdfDocument.save("invoice_template.pdfbox.pdf");
		pdfDocument.close();

Worked fine for me.

I need to do a quick test using 2.0.1 and 2.0.2 to verify if that was an issue with a previous
version (from top of my had I can't remember a specific bug report).

BR
Maruan


> Am 11.08.2016 um 17:36 schrieb Yoav Tsoref <yoav.ts@intango.com>:
> 
> The field is set as multiline. The font is declared in the PDF - Helvetica. I'm not changing
the font programmatically...
> 
>> On 11 Aug 2016, at 17:43, Gilad Denneboom <gilad.denneboom@gmail.com> wrote:
>> 
>> Is the field set as multiline? Also, what font are you using for the text
>> in that field?
>> 
>>> On Thu, Aug 11, 2016 at 3:46 PM, Yoav Tsoref <yoav.ts@intango.com> wrote:
>>> 
>>> Hi,
>>> I placed the PDF template at:
>>> https://drive.google.com/file/d/0B__NK1_B6ccjVXgxekNLLUxKMzMyS0c5LTBEO
>>> VVVYUJhVk04/view?usp=sharing
>>> <https://drive.google.com/file/d/0B__NK1_B6ccjVXgxekNLLUxKMzMyS0c5LTBEO
>>> VVVYUJhVk04/view?usp=sharing>
>>> (in this shared folder
>>> <https://drive.google.com/folderview?id=0B__NK1_B6ccjUXRSZVdpSEkyYzg&usp=
>>> sharing>
>>> )
>>> 
>>> You are right regarding the \n of course, this is my mistake. But I am not
>>> generating the \n character in the String, it is generated correctly ("\n")
>>> because it is generated from the keyboard (from the user input).
>>> I tried with \n and \r. "\r" throws an exception that the  ('controlLF') is
>>> missing.
>>> 
>>> Thanks,
>>> Yoav
>>> 
>>> On Thu, Aug 11, 2016 at 4:34 PM, Gilad Denneboom <
>>> gilad.denneboom@gmail.com>
>>> wrote:
>>> 
>>>> The new-line character is "\n", not "/n"... And maybe it will work with
>>>> "\r", instead.
>>>> 
>>>> On Thu, Aug 11, 2016 at 3:14 PM, Maruan Sahyoun <sahyoun@fileaffairs.de>
>>>> wrote:
>>>> 
>>>>> Hi,
>>>>> 
>>>>>> Am 11.08.2016 um 14:56 schrieb Yoav Tsoref <yoav.ts@intango.com>:
>>>>>> 
>>>>>> Hi,
>>>>>> 
>>>>>> I am using PDFBox version 2.0.1 to dynamically update the fields
of
>>> an
>>>>>> existing PDF document. When I'm trying to fill one of the fields
>>> with a
>>>>>> String that contains New Line character the following exception is
>>>>> thrown:
>>>>>> 
>>>>>> java.lang.IllegalArgumentException: U+000D ('controlCR') is not
>>>>> available
>>>>>> in this font's encoding: StandardEncoding with differences
>>>>>> at org.apache.pdfbox.pdmodel.font.PDType1Font.encode(
>>>>> PDType1Font.java:345)
>>>>>> at org.apache.pdfbox.pdmodel.font.PDFont.encode(PDFont.java:286)
>>>>>> at org.apache.pdfbox.pdmodel.font.PDFont.getStringWidth(
>>>> PDFont.java:315)
>>>>>> at
>>>>>> org.apache.pdfbox.pdmodel.interactive.form.PlainText$
>>>>> Paragraph.getLines(PlainText.java:169)
>>>>>> at
>>>>>> org.apache.pdfbox.pdmodel.interactive.form.
>>> PlainTextFormatter.format(
>>>>> PlainTextFormatter.java:182)
>>>>>> at
>>>>>> org.apache.pdfbox.pdmodel.interactive.form.
>>> AppearanceGeneratorHelper.
>>>>> insertGeneratedAppearance(AppearanceGeneratorHelper.java:373)
>>>>>> at
>>>>>> org.apache.pdfbox.pdmodel.interactive.form.
>>> AppearanceGeneratorHelper.
>>>>> setAppearanceContent(AppearanceGeneratorHelper.java:237)
>>>>>> at
>>>>>> org.apache.pdfbox.pdmodel.interactive.form.
>>> AppearanceGeneratorHelper.
>>>>> setAppearanceValue(AppearanceGeneratorHelper.java:144)
>>>>>> at
>>>>>> org.apache.pdfbox.pdmodel.interactive.form.PDTextField.
>>>>> constructAppearances(PDTextField.java:263)
>>>>>> at
>>>>>> org.apache.pdfbox.pdmodel.interactive.form.
>>>> PDTerminalField.applyChange(
>>>>> PDTerminalField.java:225)
>>>>>> at
>>>>>> org.apache.pdfbox.pdmodel.interactive.form.PDTextField.
>>>>> setValue(PDTextField.java:218)
>>>>>> at
>>>>>> com.myadwise.db.dao.FinancialTransactionMgr.createInvoice(
>>>>> FinancialTransactionMgr.java:525)
>>>>>> 
>>>>>> The API call that I'm using to insert the string into the field is:
>>>>>> 
>>>>>> PDDocument pdfDocument = PDDocument.load(<PATH_TO_
>>> TEMPLATE_PDF_FILE);
>>>>> //PDF
>>>>>> file was created as a template using Adobe DC
>>>>>> 
>>>>>> PDAcroForm acroForm = pdfDocument.getDocumentCatalog().
>>> getAcroForm();
>>>>>> 
>>>>>> acroForm.getField("invoice.to.address").setValue(billingAddress)
>>>>> 
>>>>> could you upload a sample form to a public location?
>>>>> 
>>>>> BR
>>>>> Maruan
>>>>> 
>>>>>> 
>>>>>> 
>>>>>> The last line is the one that throws the exception if the
>>>> billingAddress
>>>>>> String contains a '/n' or a New Line (or Carriage Return) character.
>>>>>> I have searched for similar issues but couldn't find many references.
>>>>>> 
>>>>>> Any help would be appreciated!
>>>>>> Thanks,
>>>>>> Yoav
>>>>> 
>>>>> 
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe@pdfbox.apache.org
>>>>> For additional commands, e-mail: users-help@pdfbox.apache.org
>>> 
>>> 
>>> 
>>> --
>>> 
>>> <http://intango.com/>
>>> 
>>> 
>>> *Yoav Tsoref**R&D Projects Manager*
>>> T: +972.3.533.0760 | M: +972.54.227.7208
>>> E: yoav.ts@intango.com | Skype: yoav.ts
>>> www.intango.com
>>> <https://www.facebook.com/Intango-855010531283314>
>>> <https://www.linkedin.com/company/intango>
>>> <https://twitter.com/IntangoMedia>
>>> <https://plus.google.com/u/0/114134833470766396949/about>
>>> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: users-help@pdfbox.apache.org


Mime
View raw message