Thanks for your attention to this, Tilman. I see now (I had to dig a little):
3.2.2 Numeric Objects PDF provides two types of numeric objects: integer and real. TABLE 8.17 Entries in a border style dictionary simply says: W number (Optional) The border width in points. If this value is 0, no border is drawn. Default value: 1. Versus, for example: Q Integer So, "number" always means "real" (despite the "0" and "1" in the description for W.). Perhaps the implementer of Reader was a "beginning reader" of the spec, same as me. Gary -----Original Message----- From: Tilman Hausherr [mailto:[email protected]] Sent: Saturday, September 9, 2017 8:47 AM To: [email protected] Subject: Re: PDBorderStyleDictionary.setWidth (was RE: QUADDING constants) Done in https://issues.apache.org/jira/browse/PDFBOX-3929 Tilman Am 08.09.2017 um 21:51 schrieb Tilman Hausherr: > Ok, I got it: > PDBorderStyleDictionary.setWidth() doesn't work at all in your example > because Adobe secretly wants integer numbers. > > However... in the AddAnnotations example, it is possible to use float > numbers and the effect is different (6 and 6.5) when displaying with > Adobe Reader. > > So maybe the effect is only with widget annotations (which are used > for Acroform). > > So I don't know what to do for now. You can either set the style > directly, or set a border array instead of the /BS. Maybe this should > be reported to Adobe. Or we should identify float numbers, and then > set an integer. Or include a warning in the javadoc. Or all of the > above... > https://stackoverflow.com/questions/4727569/how-to-check-whether-input > -value-is-integer-or-float > > https://stackoverflow.com/questions/5502548/checking-if-a-number-is-an > -integer-in-java > > > Tilman > > > Am 07.09.2017 um 16:16 schrieb Gary Grosso: >> Very sorry, I see that was confusing as heck. I must have overstayed >> my caffeine. >> >> I'm calling setQ with 0, 1, or 2 for now. End of subject. >> >> >> New subject: PDBorderStyleDictionary.setWidth() >> >> It seems this produces output like >> http://aapro.net/PDF/BorderWeightTest.pdf but I need it to produce >> output like http://aapro.net/PDF/BorderWeightTestAcrobat.pdf in order >> for Acrobat/Reader to display different border thicknesses. >> >> I'm doing the following which makes Adobe products happy: >> >> private static void setBorderWeight(PDBorderStyleDictionary >> borderStyle, String string) { >> int wt; >> try { >> wt = Integer.parseInt(string); >> } catch (NumberFormatException exc) { >> wt = 1; >> } >> COSDictionary dict = borderStyle.getCOSObject(); >> dict.setInt("W", wt); >> //borderStyle.setWidth(wt); >> } >> >> Hopefully I'm making sense this time. >> >> >> Thanks, >> Gary >> >> >> >> -----Original Message----- >> From: Tilman Hausherr [mailto:[email protected]] >> Sent: Thursday, September 7, 2017 2:29 AM >> To: [email protected] >> Subject: Re: QUADDING constants >> >> ??? >> >> Is this about width or about Q ? >> >> Tilman >> >> Am 06.09.2017 um 22:42 schrieb Gary Grosso: >>> I can call PDBorderStyleDictionary.setWidth with 0, 1, or 2, for >>> now, but it looks to me like setWidth() sets the COSObject to a >>> float, e.g., 0.0, 1.0, etc., which Acrobat XI and Reader DC ignore. >>> It should be set to an integer. >>> >>> See http://aapro.net/PDF/BorderWeightTestAcrobat.pdf vs >>> aapro.net/PDF/BorderWeightTest.pdf. >>> >>> The BorderWeightTestAcrobat.pdf was created by opening >>> BorderWeightTest.pdf in Acrobat, setting the borders, and saving. >>> >>> It's a little awkward, since setWidth should really take an int >>> argument, not a float to begin with. The PDF spec, to my reading, is >>> looking for an integer number of points. So truly fixing it would >>> break any applications trying to pass in a float. OTOH, I don't see >>> how any such applications could be working, even though they'd >>> compile. I suppose non-Adobe PDF renderers might work with float data. >>> >>> Gary >>> >>> -----Original Message----- >>> From: Tilman Hausherr [mailto:[email protected]] >>> Sent: Wednesday, September 6, 2017 12:48 PM >>> To: [email protected] >>> Subject: Re: QUADDING constants >>> >>> Am 06.09.2017 um 17:11 schrieb Gary Grosso: >>>> Thanks Tilman, I thought they were public but not visible, which >>>> was disturbing my fragile sense of competency. >>> I first thought you were using Netbeans (which requires to press >>> CTRL SPACE twice to see the statics sometimes) but then I saw the >>> missing public. I'll create an issue later tonight or tomorrow >>> (unless you do) to put it back in. I don't see a reason why this was >>> removed. >>> >>> Tilman >>> >>> >>>> -----Original Message----- >>>> From: Tilman Hausherr [mailto:[email protected]] >>>> Sent: Wednesday, September 6, 2017 11:03 AM >>>> To: [email protected] >>>> Subject: Re: QUADDING constants >>>> >>>> Am 06.09.2017 um 16:54 schrieb Gary Grosso: >>>>> Sigh. This must be something about Java I need to understand >>>>> better. I get "The field PDVariableText.QUADDING_LEFT is not >>>>> visible". >>>> You're right... these are not public. That explains why google >>>> found it only for an older version. >>>> >>>> Tilman >>>> >>>> >>>>> -----Original Message----- >>>>> From: Tilman Hausherr [mailto:[email protected]] >>>>> Sent: Wednesday, September 6, 2017 2:13 AM >>>>> To: [email protected] >>>>> Subject: Re: QUADDING constants >>>>> >>>>> Am 06.09.2017 um 02:42 schrieb Gary Grosso: >>>>>> PDVariableText.setQ (and various other methods) suggest seeing >>>>>> the "QUADDING constants". >>>>>> >>>>>> Can someone please post a link? Or tell me what class to look at? >>>>>> I've searched, googled, etc., for close to a half hour. I suspect >>>>>> this is something that everyone "just knows" but I have to admit >>>>>> ignorance. >>>>> It's also mentioned in the PDF 32000 specification: >>>>> >>>>> A code specifying the form of quadding (justification) that shall >>>>> be used in displaying the annotation's text: >>>>> 0 Left-justified >>>>> 1 Centered >>>>> 2 Right-justified >>>>> Default value: 0 (left-justified). >>>>> >>>>> And then I enter "PDVariableText quadding" (without quotes) in >>>>> google I find the constants that Andreas mentioned, although for >>>>> an older version. If you don't get these, check if some plugin >>>>> manipulated your browser's search results. >>>>> >>>>> Tilman >>>>> >>>>> >>>>> ------------------------------------------------------------------ >>>>> -- >>>>> - To unsubscribe, e-mail: [email protected] >>>>> For additional commands, e-mail: [email protected] >>>>> >>>>> >>>>> ------------------------------------------------------------------ >>>>> -- >>>>> - To unsubscribe, e-mail: [email protected] >>>>> For additional commands, e-mail: [email protected] >>>>> >>>> ------------------------------------------------------------------- >>>> -- To unsubscribe, e-mail: [email protected] >>>> For additional commands, e-mail: [email protected] >>>> >>>> >>>> ------------------------------------------------------------------- >>>> -- To unsubscribe, e-mail: [email protected] >>>> For additional commands, e-mail: [email protected] >>>> >>> -------------------------------------------------------------------- >>> - To unsubscribe, e-mail: [email protected] >>> For additional commands, e-mail: [email protected] >>> >>> >>> -------------------------------------------------------------------- >>> - To unsubscribe, e-mail: [email protected] >>> For additional commands, e-mail: [email protected] >>> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]

