Given an earlier reply from Maruan: "you can get the width of a string using PDFont.getStringWidth(String text)"
Is it not true one needs to know the font size to determine the string width? My goal is to determine if a field value will fit in a field at the specified font size on the form. ... //get field size - 1 unit = 1/72 inch float fieldSize = field.getWidgets().get(0).getRectangle().getWidth(); //get field value size PDFont font = PDType1Font.HELVETICA; float fieldLength = font.getStringWidth(someValue); ... 1. How can an accurate length be calculated without a Font Size?? 2. And, the getStringWidth() method returns a value such as 2780.0 for a 5 character field .. what does that number represent? Thanks again. > On Jun 16, 2016, at 2:19 PM, Tilman Hausherr <thaush...@t-online.de> wrote: > > Am 16.06.2016 um 20:56 schrieb Barry Neu: >> Thank you Tilman. >> >> I was poking around trying to find where to get the Font and Font size for a >> PDTextField but not having any luck. >> Is it in the CosDictionary or what is the proper way to find those 2 pieces >> of information? > > getDefaultAppearance() > > you would have to parse that. > > I see there's also getDefaultAppearanceString() which is more advanced, but > this isn't public. See the source code of PDDefaultAppearanceString to see > what can be done with that, and make a copy for yourself. > > PDDefaultAppearanceString getDefaultAppearanceString() throws IOException > { > COSString da = (COSString) getInheritableAttribute(COSName.DA); > PDResources dr = getAcroForm().getDefaultResources(); > return new PDDefaultAppearanceString(da, dr); > } > > > Tilman > > >> >> Really appreciate the support. >> >>> On Jun 13, 2016, at 2:51 PM, Tilman Hausherr <thaush...@t-online.de> wrote: >>> >>> Am 13.06.2016 um 22:36 schrieb Barry Neu: >>>> Thank you for the reply. >>>> I could store meta data about the fields’ capacity as a last resort. >>>> However, there are about 50 different forms to work with and the number >>>> will continue to grow. >>>> >>>> Including Tilman’s reply here: >>>> "Calculate the width of the /Rectangle. 1 unit = 1/72 inch.” >>>> >>>> Are the /Rect coordinates represented in the following order? >>>> Left rectangle boundary, Top, Right, Bottom >>>> >>>> So, 91.095 - 51.855 = 39.24/72s inch wide (or a little over a 1/2 inch)?? >>>> >>>> And, how does one get to the /Rect data? >>> Get the widgets of the field >>> >>> PDField.getWidgets(). Usually there is only one (unless you have several >>> widgets, i.e. that the field appears several times in the PDF. So do this >>> call: >>> >>> getWidgets().get(0).getRectangle().getWidth() >>> >>> What is in the PDF shouldn't matter, unless for debugging. I.e. don't try >>> to parse the PDF yourself. >>> >>> I suggest you have a look at the examples in the source download, >>> especially in org.apache.pdfbox.examples.interactive.form. >>> >>> Tilman >>> >>>> I have a debug session open in Eclipse but am not seeing the /Rect data in >>>> ether the PDField or PDAcroForm. >>>> >>>>> On Jun 13, 2016, at 12:32 PM, Aaron Mulder <ammul...@gmail.com> wrote: >>>>> >>>>> If the form isn't changing, can you just check out the field >>>>> definition in the PDF doc? Here's one from the PDF form I'm working >>>>> with: >>>>> >>>>> << /Type /Annot /T (SlotsTotal 19) /V () /Rect [ 51.855 457.452 91.095 >>>>> 478.332 >>>>> ] /DV () /FT /Tx /DA (/Helvetica 12 Tf 0 g) /F 4 /MK 1972 0 R /Q 1 >>>>> /Subtype >>>>> /Widget >> >>>>> >>>>> The /Rect units aren't in pixels but I assume the text width >>>>> calculation would be the same so it would work out. >>>>> >>>>> My PDF was originally a Linearized mess but I opened it and saved it >>>>> in Preview on OS X and then all the form elements came out in plain >>>>> text which made it easy to inspect in a text editor. >>>>> >>>>> Thanks, >>>>> Aaron >>>>> >>>>> >>>>> On Mon, Jun 13, 2016 at 1:32 PM, Barry Neu <barry....@gmail.com> wrote: >>>>>> Hello. >>>>>> >>>>>> Is it possible to calculate the pixel width of a text field on a >>>>>> fillable PDF? >>>>>> If so, is there an example available or where can I look to research? >>>>>> >>>>>> Some context: >>>>>> I’m working with PDFBox 2.0. >>>>>> Data for a fillable form is collected in a web user interface. If the >>>>>> value for a given field exceeds the field capacity on the form, the >>>>>> value should be populated on an addendum form. The font size of the >>>>>> field cannot scale down below a particular value. >>>>>> >>>>>> The font and font size are known in advance so the length of the Value >>>>>> can be calculated. But I need to know the pixel capacity of the field to >>>>>> know if the value will “fit”. >>>>>> Also open to an alternate strategy if someone has solved differently. >>>>>> >>>>>> Thanks for any help. >>>>>> --------------------------------------------------------------------- >>>>>> To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org >>>>>> For additional commands, e-mail: users-h...@pdfbox.apache.org >>>>>> >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org >>>>> For additional commands, e-mail: users-h...@pdfbox.apache.org >>>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org >>>> For additional commands, e-mail: users-h...@pdfbox.apache.org >>>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org >>> For additional commands, e-mail: users-h...@pdfbox.apache.org >>> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org >> For additional commands, e-mail: users-h...@pdfbox.apache.org >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org > For additional commands, e-mail: users-h...@pdfbox.apache.org >