Tilman wrote:
>
> From: Tilman Hausherr [mailto:[email protected]]
> Sent: Thursday, June 11, 2015 4:27 PM
> To: [email protected]
> Subject: Re: Setting a border color on a PDTextBox
>
> Am 11.06.2015 um 22:44 schrieb Kevin Ternes:
> > I am using PDFBox 1.8.9 to change an existing PDF.
> > The requirement is to change an existing field so that the text is
> > Helvetica Bold and bordered with a given color.
> > A mockup of the desired PDF is here:
> >
> > https://dl.dropboxusercontent.com/u/3103884/dev/PdfBoxMockupCapture.png
> >
> > Given PDDocument pdDocument...:
> >
> > PDDocumentCatalog catalog = pdDocument.getDocumentCatalog();
> > PDAcroForm pdAcroForm = catalog.getAcroForm();
> > PDField pdField = pdAcroForm.getField(fieldName);
> >
> > COSDictionary pdFieldDictionary = pdField.getDictionary();
> > COSString defaultAppearance = (COSString)
> > pdFieldDictionary.getDictionaryObject(COSName.DA);
> > if (defaultAppearance != null) {
> > pdFieldDictionary.setString(COSName.DA, "/HeBo 9 Tf 0 g");
> > }
> >
> > PDGamma pdGamma = new PDGamma();
> > pdGamma.setR(0);
> > pdGamma.setG(1);
> > pdGamma.setB(0);
> > PDAppearanceCharacteristicsDictionary pdApDict = new
> > PDAppearanceCharacteristicsDictionary(pdFieldDictionary);
> > pdApDict.setBorderColour(pdGamma);
> >
> > PDTextbox pdTextBox = new PDTextbox(pdAcroForm, pdFieldDictionary);
> > PDAppearance pdAppearance = new PDAppearance(pdAcroForm, pdTextBox);
> >
> > pdAppearance.setAppearanceValue(PDLayoutAttributeObject.BORDER_STYLE_S
> > OLID);
> >
> > I am getting the Helvetica Bold change but I am missing the colored border.
> > Can anyone tell me what I am missing or doing wrong?
>
> Try this:
>
> http://qnalist.com/questions/4842300/form-elements-not-visible
> PDAnnotationWidget fieldAnnot = pdTextBox.getWidget();
> fieldAnnot.setAppearanceCharacteristics(pdApDict);
>
> Tilman
That is not working for me either.
I stole all the code on the referenced qnalist page (see below) but I still do
not get the solid colored border that I am looking for.
PDDocumentCatalog catalog = pdDocument.getDocumentCatalog();
PDAcroForm pdAcroForm = catalog.getAcroForm();
PDField pdField = pdAcroForm.getField(fieldName);
COSDictionary pdFieldDictionary = pdField.getDictionary();
PDTextbox pdTextBox = new PDTextbox(pdAcroForm, pdFieldDictionary);
PDAnnotationWidget fieldAnnot = pdTextBox.getWidget();
PDAppearanceCharacteristicsDictionary fieldAppearance = new
PDAppearanceCharacteristicsDictionary(new COSDictionary());
PDGamma colourGreen = new PDGamma();
colourGreen.setR(0);
colourGreen.setG(1);
colourGreen.setB(0);
fieldAppearance.setBorderColour(colourGreen);
PDBorderStyleDictionary fieldBorderStyle = new PDBorderStyleDictionary();
fieldBorderStyle.setStyle(PDBorderStyleDictionary.STYLE_SOLID);
fieldBorderStyle.setWidth(2f);
fieldAnnot.setAppearanceCharacteristics(fieldAppearance);
fieldAnnot.setBorderStyle(fieldBorderStyle);
If anyone can give me another hint, it would be much appreciated.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]